Incomputer networking,out-of-band datais the data transferred through a stream that is independent from the mainin-banddata stream. An out-of-band data mechanism provides a conceptually independent channel, which allows any data sent via that mechanism to be kept separate from in-band data. The out-of-band data mechanism should be provided as an inherent characteristic of the data channel and transmission protocol, rather than requiring a separate channel and endpoints to be established.[1]The term "out-of-band data" probably derives fromout-of-band signaling,as used in thetelecommunicationsindustry.[2]

Example case

edit

Consider a networking application thattunnelsdata from a remote data source to a remote destination. The data being tunneled may consist of any bit patterns. The sending end of the tunnel may at times have conditions that it needs to notify the receiving end about. However, it cannot simply insert a message to the receiving end because that end will not be able to distinguish the message from data sent by the data source. By using an out-of-band mechanism, the sending end can send the message to the receiving end out of band. The receiving end will be notified in some fashion of the arrival of out-of-band data, and it can read the out of band data and know that this is a message intended for it from the sending end, independent of the data from the data source.

Implementations

edit

It is possible to implement out-of-band data transmission using a physically separate channel, but most commonly out-of-band data is a feature provided by a transmission protocol using the same channel as normal data. A typical protocol might divide the data to be transmitted into blocks, with each block having a header word that identifies the type of data being sent, and a count of the data bytes or words to be sent in the block. The header will identify the data as being in-band or out-of-band, along with other identification and routing information. At the receiving end, the protocol looks at the header and routes the data to the normal reception endpoint if it is in-band, and to a separate mechanism if it is out-of-band. Depending on the implementation, there may be some mechanism for notifying or interrupting the receiving application when out-of-band data has arrived.

The most commonly used protocol containing an out-of-band data mechanism is the Internet'sTransmission Control Protocol.It implements out-of-band data using an "urgent pointer," which marks certain data in the transmitted data stream as out-of-band. Unfortunately, a long-existing discrepancy betweenRFC 793andRFC 1122limits the usability of this feature of TCP;[3]nonetheless, it is heavily used by certain standard application protocols, notably theTelnetprotocol.[4]

On Unix-like computers, out-of-band data can be read with the recv() system call. A process or process group can be configured to receive SIGURGsignalswhen out-of-band data is available for reading on asocket,by using the F_SETOWN command of the fcntl() system call. This is a form ofasynchronous I/O.

TheSerial Advanced Technology Attachment(SATA) protocol commonly used to connectdisk drivesto computers implements an out-of-band data protocol.[5]

TheConsultative Committee for Space Data Systems' Space Data Link Protocol implements an out-of-band mechanism via the "command" flag. When set, the received data is to be interpreted and acted on by the data link receiver, rather than being telemetry/telecommand information to be passed to the destination.[6]

Issues

edit

Some sources define "out-of-band data" as including the characteristic that out-of-band data should be prioritized ahead of queued in-band data.[7]This is reinforced by TCP's (RFC 793) referring to the out-of-band data mechanism as "urgent data." However, prioritization is neither an essential nor a necessarily desirable characteristic of out-of-band data; moreover, TCP implementations vary greatly on how they treat the urgency of out-of-band data.[1]

See also

edit
  • Delimiterinvolving in-band and out-of-band data viewed on the level of symbolic representation.
  • Out-of-band managementinvolving the use of a dedicated management channel for device maintenance.
  • DOCSIS Set-top Gateway(or DSG), a specification describing how out-of-band data is delivered to a cable set-top box

References

edit
  1. ^abLen (October 20, 2011)."Out of band data, TCP Urgent mode and overlapped I/O".Serverframework.com.Retrieved21 February2014.
  2. ^"Chapter 11: Signaling Systems".George Mason University.Retrieved21 February2014.
  3. ^On the implementation of the TCP urgent mechanism.sec. 2.2. I-D draft-ietf-tcpm-urgent-data-01.
  4. ^TELNET PROTOCOL SPECIFICATION.doi:10.17487/RFC0854.RFC854.
  5. ^Altera Corporation."AN-635-1.0 Application Note Implementing SATA and SAS Protocols in Altera Devices"(PDF).Archived fromthe original(PDF)on 4 March 2016.Retrieved21 February2014.
  6. ^"TC Space Data Link Protocol"(PDF).CCSDS 232.0-B-1.Consultative Committee for Space Data Systems.Retrieved21 February2014.
  7. ^Stevens, W. Richard; Rago, Stephen A. (2005). "16.7".Advanced Programming in the Unix Environment: Second Edition.Addison-Wesley Professional. p. 960.ISBN0201433079.Retrieved21 February2014.