Русская Википедия:Внеполосные данные

Материал из Онлайн справочника
Перейти к навигацииПерейти к поиску

Внеполосные данные являются логически независимым каналом передачи между парой поточных сокетов. В компьютерных сетях под внеполосными данными понимаются данные, передающиеся через поток, отличный от основного (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.

Примечания

Шаблон:Примечания

Ссылки

Шаблон:Ссылки