Текстовые данные
- 1 year ago
- 0
- 0
Внеполосные данные являются логически независимым каналом передачи между парой поточных сокетов. В компьютерных сетях под внеполосными данными понимаются данные, передающиеся через поток, отличный от основного (in-band). Данная технология предоставляет независимый с точки зрения программиста канал и позволяет разграничить данные. Физически внеполосные данные передаются по тому же каналу, что и обыкновенные данные. Термин, вероятно, происходит от внеполосных сигналов , используемых в телекоммуникационной отрасли.
Протокол Serial Advanced Technology Attachment реализует внеполосные данные.
TCP реализует внеполосные данные, используя «указатель срочности», который отмечает определенные данные в переданный поток в качестве внеполосных. К сожалению, длительно существующие несоответствия и ограничивают удобство использования этой функции протокола TCP; тем не менее, она активно используется некоторыми прикладными протоколами, в частности Telnet . TCP позволяет передавать лишь один байт внеполосных данных.
Также примером использования внеполосных данных является протокол FTP . Предположим, клиент инициировал передачу большого файла на сервер и в какой-то момент решил отменить передачу. Файл может содержать любые последовательности байт, а дополнительный заголовок в каждом пакете прикладного уровня снижает производительность. Поэтому передаётся специально маркированный пакет TCP и передача данных прекращается.
Для отправки (
send
) и приёма (
recv
) внеполосных данных в
сокетах Беркли
в
битовой маске
флагов должен быть указан флаг
MSG_OOB
. Системный вызов
poll
позволяет следить за появлением внеполосных данных с помощью флага
POLLPRI
. Также эти данные можно получать в асинхронном режиме с помощью
сигнала
SIGURG
. Для этого надо установить флаг F_SETOWN на файловый дескриптор сокета с помощью системного вызова
fcntl
.