Внеполосные данные

Внеполосные данные являются логически независимым каналом передачи между парой поточных сокетов. В компьютерных сетях под внеполосными данными понимаются данные, передающиеся через поток, отличный от основного (in-band). Данная технология предоставляет независимый с точки зрения программиста канал и позволяет разграничить данные. Физически внеполосные данные передаются по тому же каналу, что и обыкновенные данные.[1] Термин, вероятно, происходит от внеполосных сигналов, используемых в телекоммуникационной отрасли.[2]

ИспользованиеПравить

Протокол Serial Advanced Technology Attachment реализует внеполосные данные.[3]

В TCPПравить

TCP реализует внеполосные данные, используя «указатель срочности», который отмечает определенные данные в переданный поток в качестве внеполосных. К сожалению, длительно существующие несоответствия RFC 793 и RFC 1122 ограничивают удобство использования этой функции протокола TCP; тем не менее, она активно используется некоторыми прикладными протоколами, в частности Telnet. TCP позволяет передавать лишь один байт внеполосных данных.

Также примером использования внеполосных данных является протокол FTP. Предположим, клиент инициировал передачу большого файла на сервер и в какой-то момент решил отменить передачу. Файл может содержать любые последовательности байт, а дополнительный заголовок в каждом пакете прикладного уровня снижает производительность. Поэтому передаётся специально маркированный пакет TCP и передача данных прекращается.

Для отправки (send) и приёма (recv) внеполосных данных в сокетах Беркли в битовой маске флагов должен быть указан флаг MSG_OOB. Системный вызов poll позволяет следить за появлением внеполосных данных с помощью флага POLLPRI. Также эти данные можно получать в асинхронном режиме с помощью сигнала SIGURG. Для этого надо установить флаг F_SETOWN на файловый дескриптор сокета с помощью системного вызова fcntl.

ПримечанияПравить

  1. Serverframework.com Out of band data, TCPUrgent mode and overlapped I/O. Дата обращения 21 февраля 2014.
  2. Chapter 11: Signaling Systems. George Mason University. Дата обращения 21 февраля 2014.
  3. Altera Corporation AN-635-1.0 Application Note Implementing SATA and SAS Protocols in Altera Devices (недоступная ссылка). Дата обращения 21 февраля 2014. Архивировано 4 марта 2016 года.

СсылкиПравить