Введение
Тип передачи данных в компьютерной сети
В компьютерных сетях данные, передаваемые вне полосы (out-of-band), – это данные, передаваемые по потоку, независимому от основного потока данных в полосе (in-band). Механизм передачи данных вне полосы предоставляет концептуально независимый канал, позволяющий хранить любые данные, отправленные через этот механизм, отдельно от данных в полосе. Механизм передачи данных вне полосы должен быть предусмотрен как неотъемлемая характеристика канала данных и протокола передачи, а не требовать установления отдельного канала и конечных точек. Термин "данные вне полосы" вероятно происходит от внеполосной сигнализации, используемой в телекоммуникационной отрасли.
In computer networking, out of band data is the data transferred through a stream that is independent from the main in band data 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. The term "out of band data" probably derives from out of band signaling, as used in the telecommunications industry.
Пример
Рассмотрим сетевое приложение, которое создает туннель для передачи данных из удаленного источника данных в удаленный пункт назначения. Передаваемые данные могут представлять собой любые последовательности битов. Отправляющая сторона туннеля может периодически нуждаться в уведомлении принимающей стороны о каких-либо условиях. Однако она не может просто вставить сообщение для принимающей стороны, поскольку та не сможет отличить его от данных, отправленных источником данных. Используя внеполосный механизм, отправляющая сторона может отправить сообщение принимающей стороне вне полосы передачи данных. Принимающая сторона будет уведомлена о поступлении внеполосных данных и сможет прочитать их, понимая, что это сообщение, предназначенное для нее от отправляющей стороны, и не связанное с данными от источника данных.
Реализация
Возможно осуществление передачи данных вне полосы с использованием физически отдельного канала, но чаще всего данные вне полосы являются функцией, предоставляемой протоколом передачи, использующим тот же канал, что и обычные данные. Типичный протокол может разделить данные, предназначенные для передачи, на блоки, причем каждый блок имеет заголовок, идентифицирующий тип передаваемых данных, и счетчик байтов или слов данных в блоке. Заголовок указывает, находятся ли данные в полосе или вне полосы, а также содержит другую идентификационную и маршрутизационную информацию. На принимающей стороне протокол анализирует заголовок и направляет данные в обычную конечную точку приема, если они находятся в полосе, и в отдельный механизм, если они вне полосы. В зависимости от реализации, может существовать механизм уведомления или прерывания принимающего приложения о поступлении данных вне полосы. Наиболее часто используемым протоколом, содержащим механизм передачи данных вне полосы, является протокол управления передачей (TCP) в Интернете. Он реализует данные вне полосы с помощью "указателя срочности" (urgent pointer), который помечает определенные данные в передаваемом потоке как внеполосные. К сожалению, давнее несоответствие между RFC 793 и RFC 1122 ограничивает удобство использования этой функции TCP; тем не менее, она широко используется некоторыми стандартными прикладными протоколами, в частности протоколом Telnet. В Unix-подобных системах данные вне полосы можно прочитать с помощью системного вызова recv. Процесс или группа процессов может быть настроена на получение сигналов SIGURG при наличии данных вне полосы для чтения на сокете, используя команду F_SETOWN системного вызова fcntl. Это форма асинхронного ввода-вывода. Протокол Serial Advanced Technology Attachment (SATA), обычно используемый для подключения дисковых накопителей к компьютерам, реализует протокол передачи данных вне полосы. Протокол канала связи космических данных Консультативного комитета по системам космических данных реализует механизм вне полосы с помощью флага "команда". При установке этого флага, полученные данные должны быть интерпретированы и обработаны приемником канала связи данных, а не рассматриваться как телеметрическая/телекомандная информация, предназначенная для конечного пункта назначения.
Проблемы
Некоторые источники определяют "данные вне полосы" как включающие в себя свойство, согласно которому данные вне полосы должны иметь приоритет перед данными в полосе, ожидающими обработки в очереди. Это подтверждается тем, что в RFC 793 протокол TCP именует механизм передачи данных вне полосы как "срочные данные". Однако приоритизация не является ни обязательной, ни всегда желательной характеристикой данных вне полосы; более того, реализации TCP значительно различаются в отношении обработки срочности данных вне полосы.