24.4. Резюме по теме внеполосных данных TCP

24.4. Резюме по теме внеполосных данных TCP

Все приведенные до сих пор примеры, иллюстрирующие использование внеполосных данных, были весьма тривиальны. К сожалению, когда мы начинаем учитывать возможные проблемы, связанные с согласованием во времени при пересылке внеполосных данных, ситуация заметно усложняется. В первую очередь, нужно осознать, что концепция внеполосных данных подразумевает передачу получателю трех различных фрагментов информации:

1. Сам факт того, что отправитель вошел в срочный режим. Принимающий процесс получает уведомление об этом либо с помощью сигнала SIGURG, либо с помощью функции select. Это уведомление передается сразу же после того, как отправитель посылает байт внеполосных данных, поскольку, как показано в листинге 24.9, TCP посылает уведомление, даже если поток каких-либо данных от сервера к клиенту остановлен функциями управления потоком. В результате получения такого уведомления получатель может входить в определенный специальный режим обработки последующих данных.

2. Позиция байта, содержащего внеполосные данные, то есть расположение этого байта по отношению к остальным данным, посланным отправителем, иначе говоря, отметка внеполосных данных.

3. Фактическое значение внеполосного байта. Поскольку TCP является потоковым протоколом, который не интерпретирует данные, посланные приложением, это может быть любое 8-разрядное значение.

Говоря о срочном режиме TCP, мы можем рассматривать флаг URG как уведомление, а срочный указатель как внеполосную отметку.

Проблемы, связанные с концепцией внеполосных данных, сформулированы в следующих пунктах:

1. Для каждого соединения имеется только один срочный указатель.

2. Для каждого соединения допускается только одна отметка внеполосных данных.

3. Для каждого соединения имеется только один однобайтовый буфер, предназначенный для внеполосных данных (это имеет значение, только если внеполосные данные не считываются вместе с обычными данными).

В листинге 24.10 показано, что вновь прибывшая отметка внеполосных данных отменяет все предыдущие отметки, до которых принимающий процесс еще не дошел. Если внеполосные данные считываются вместе с обычными данными, то в случае прибытия новых внеполосных данных предыдущие не теряются, но теряются их отметки.

Типичный пример использования внеполосных данных — протокол Rlogin, задействующий эту концепцию в ситуации, когда клиент прерывает программу, выполняемую на стороне сервера [111, с. 393–394]. Сервер должен сообщить клиенту, что нужно сбросить все данные, принятые от сервера, буферизованные и предназначенные для вывода на терминал. Сервер посылает клиенту специальный байт внеполосных данных, указывая тем самым, что необходимо сбросить все полученные данные. Когда клиент получает сигнал SIGURG, он просто считывает данные из сокета, пока не встречает отметку внеполосных данных, после чего он сбрасывает все данные вплоть до этой отметки. (В [111, с. 398–401] показан пример подобного использования внеполосных данных вместе с выводом программы tcpdump.) Если в этом сценарии сервер посылает несколько внеполосных байтов, следующих с небольшими промежутками друг за другом, то такая последовательность не оказывает влияния на клиента, поскольку тот просто сбрасывает все данные, расположенные до последней отметки внеполосных данных.

В итоге можно сказать, что польза применения внеполосных данных зависит от того, для каких целей они служат в приложении. Если их назначение в том, чтобы сообщить собеседнику о необходимости сбросить все обычные данные, расположенные до отметки, то утрата промежуточных внеполосных данных и их отметок не повлечет никаких последствий. Но если потеря внеполосных данных недопустима, то эти данные следует получать вместе с обычными данными. Более того, байты, посланные как внеполосные данные, требуется каким-то образом отличать от обычных данных, так как промежуточные отметки могут быть перезаписаны при получении новых внеполосных данных. Telnet, например, посылает свои собственные команды в потоке обычных данных между клиентом и сервером, но ставит перед этими командами байт, содержащий 255 (поэтому для отправки этого значения требуется послать последовательно два байта, содержащих 255). Эти байты позволяют отличить команды сервера от обычных пользовательских данных, но при этом для обнаружения команд сервера требуется, чтобы клиент и сервер обрабатывали каждый байт данных.

Поделитесь на страничке

Следующая глава >

Похожие главы из других книг

Вариации по теме: Сбор кредитных карт

Из книги Искусство обмана автора Митник Кевин

Вариации по теме: Сбор кредитных карт Строя доверие не обязательно требуется делать целую серию звонков, как в предыдущей истории. Я расскажу один случай, где мне потребовалось всего пять минут.Сюрприз для ПапыЯ один раз сидел за столом в ресторане с Генри и его отцом. В


Вариации по теме

Из книги Язык программирования С# 2005 и платформа .NET 2.0. [3-е издание] автора Троелсен Эндрю

Вариации по теме В эту эру Интернета, существует вид мошенничества, который перенаправляет вас совсем не на тот вэб-сайт, который вы ожидали. Это случается регулярно и имеет разнообразные формы проявлений. Этот пример является типичным.С Новым Годом…Отставной страховой


Обновление базы данных с помощью объекта адаптера данных

Из книги Обработка баз данных на Visual Basic®.NET автора Мак-Манус Джеффри П

Обновление базы данных с помощью объекта адаптера данных Адаптеры данных могут не только заполнять для вас таблицы объекта DataSet. Они могут также поддерживать набор объектов основных SQL-команд, используя их для возвращения модифицированных данных обратно в хранилище


Проверка введенных данных на уровне процессора баз данных

Из книги Microsoft Windows SharePoint Services 3.0. Русская версия. Главы 9-16 автора Лондер Ольга

Проверка введенных данных на уровне процессора баз данных Помимо проверки данных во время ввода информации, следует знать о том, что можно также выполнять проверку и на уровне процессора баз данных. Такая проверка обычно более надежна, поскольку применяется независимо


Экспорт данных из базы данных Access 2007 в список SharePoint

Из книги Моделирование бизнес-процессов с BPwin 4.0 автора Маклаков Сергей Владимирович

Экспорт данных из базы данных Access 2007 в список SharePoint Access 2007 позволяет экспортировать таблицу или другой объект базы данных в различных форматах, таких как внешний файл, база данных dBase или Paradox, файл Lotus 1–2–3, рабочая книга Excel 2007, файл Word 2007 RTF, текстовый файл, документ XML


Перемещение данных из базы данных Access 2007 на узел SharePoint

Из книги Цифровой журнал «Компьютерра» № 173 автора Журнал «Компьютерра»

Перемещение данных из базы данных Access 2007 на узел SharePoint Потребности многих приложений Access 2007 превышают простую потребность в управлении и сборе данных. Часто такие приложения используются многими пользователями организации, а значит, имеют повышенные потребности в


О гуманитарном и естественнонаучном подходе к взрывоопасной теме: обсуждению причин гомосексуального поведения Дмитрий Шабанов

Из книги Инфобизнес за один день автора Ушанов Азамат

О гуманитарном и естественнонаучном подходе к взрывоопасной теме: обсуждению причин гомосексуального поведения Дмитрий Шабанов Опубликовано 16 мая 2013 Эта моя колонка (перебившая даже развитие разговора об обонянии) является реакцией на яркую


Резюме: основные типы данных

Из книги UNIX: разработка сетевых приложений автора Стивенс Уильям Ричард

Резюме: основные типы данных Ключевые слова      Данные основных типов вводятся в программу при помощи следующих семи ключевых слов: int, long, short, unsigned, char, float, double.


5. Возможность создания нескольких инфопродуктов по одной теме

Из книги Архитекторы компьютерного мира автора Частиков Аркадий

5. Возможность создания нескольких инфопродуктов по одной теме Далее возьмите свою тему, напишите и обведите ее на листе бумаги. Подумайте, можно ли в этой сфере делать не один продукт, а много, целую линейку. Ваша сфера представляет собой коллекцию нюансов – чтобы


8. Заработок в вашей теме

Из книги автора

8. Заработок в вашей теме У нас есть знакомый фотограф. Он взял за основу не то, как классно снимать – об этом рассказывают многие – а обучает, как зарабатывать в фотобизнесе: как его выстроить, получить много клиентов, рекламировать себя (самопродвижение).Возможно, у вас


1. Узкая специфика по теме

Из книги автора

1. Узкая специфика по теме Так сделал Сергей Жуковский, когда пришел в тему бизнеса в Сети. Он сделал курс о том, как создать прибыльный блог. Про блоги в то время информации практически не было. А Сергей Жуковский подготовил специализированный продукт и вышел с ним на


Пример: особенности отметки внеполосных данных

Из книги автора

Пример: особенности отметки внеполосных данных Далее мы приводим простой пример, иллюстрирующий следующие две особенности отметки внеполосных данных:1. Отметка внеполосных данных всегда указывает на один байт дальше конечного байта обычных данных. Это означает, что,


Пример: дополнительные свойства внеполосных данных

Из книги автора

Пример: дополнительные свойства внеполосных данных Теперь мы покажем другой столь же простой пример, иллюстрирующий две дополнительные особенности внеполосных данных, о которых мы уже упоминали ранее.1. TCP посылает уведомление об отправке внеполосных данных (их срочный


Пример: единственность отметки внеполосных данных в TCP

Из книги автора

Пример: единственность отметки внеполосных данных в TCP Нашим очередным примером мы иллюстрируем тот факт, что для данного соединения TCP существует всего одна отметка внеполосных данных, и если новые внеполосные данные прибудут прежде, чем принимающий процесс начнет