- •3.6 Приоритет и безопасность
- •3.8 Интерфейсы
- •1. Введение
- •1.1 Мотивация
- •1.2 Цель
- •1.3 О данном документе
- •1.4 Интерфейсы
- •1.5 Действие
- •2. Идеология протокола
- •2.1 Элементы системы объединенных сетей
- •2.2 Модель действия
- •2.3 Программное обеспечение хост-компьютера
- •2.4 Интерфейсы
- •2.5 Связь с другими протоколами
- •2.6 Надежные коммуникации
- •2.7 Установка соединения и его отмена
- •2.8 Коммуникация данных
- •2.9 Приоритет и безопасность
- •2.10 Принцип устойчивости
- •3 Спецификация для функций протокола
- •3.1 Формат заголовка
- •3.2 Терминология
- •3.3 Номер очереди
- •3.4 Установление соединения
- •3.5 Закрытие соединения
- •3.6 Приоритет и безопасность
- •3.7 Передача данных
- •3.8 Интерфейсы
- •3.9 Обработка событий
- •Словарь
2.8 Коммуникация данных
Набор данных, передаваемых по соединению, можно рассматривать как поток октетов. Пользователь, отправляющий данные, указывает при запросе по посылку, следует ли данные, отправляемые при этом запросе, немедленно проталкивать через сеть к получателю. Указание осуществляется установкой флага PUSH (проталкивание).
Программа протокола TCP может собирать данные, принимаемые от пользователя, а затем передавать их в сеть по своему усмотрению в виде сегментов. Если же выставлен запрос на проталкивание, то протокол должен передать все не отправленные ранее данные. Когда программа протокола TCP, принимающая данные, сталкивается с флагом проталкивания, ей не следует ожидать получения новых данных по сети до тех пор, пока уже имеющиеся данные не будут переданы ждущему их местному процессу.
Нет нужды привязывать функции проталкивания к границам сегмента. Данные, содержащиеся в каком-либо сегменте, могут быть результатом одного или нескольких запросов на посылку. Или же один запрос может породить несколько сегментов.
Целью функции проталкивания и флага PUSH является проталкивание данных через сеть от отправителя к получателю. Функция не осуществляет обработки самих данных.
Существует связь между функцией проталкивания и использованием буферов данных в интерфейсе между пользователем и протоколом TCP. Каждый раз, когда в буфер получателя приходят данные с флагом PUSH, содержимое этого буфера передается пользователю на обработку, даже если буфер и не был заполнен. Если приходящие данные заполняют буфер пользователя до того, как получена команда проталкивания, пользователю отправляется блок данных, соответствующий размеру буфера. Протокол TCP имеет также средства для сообщения получателю, что с некоторого момента он имеет дело со срочными данными. Протокол TCP не пытается определить, что именно пользователь делает со ждущими обработки срочными данными. Однако обычно предполагается, что получающий данные процесс будет предпринимать усилия для быстрой обработки срочных данных.
2.9 Приоритет и безопасность
Протокол TCP использует тип сервиса и опцию безопасности протокола Internet с тем, чтобы пользователям протокола TCP обеспечить приоритет и безопасность на каждом соединении. Не все модули протокола TCP обязательно будут действовать в многоуровневой системе обеспечения безопасности. Некоторые модули ограничиваются только обычными, неспецифическими соединениями, другие ограничиваются лишь первым уровнем безопасности и закрытости. Следовательно, некоторые реализации протокола TCP и услуг для пользователей могут использовать лишь часть многоуровневой системы безопасности.
Модули TCP, действующие в многоуровневой системе безопасности, должны адекватным образом выставлять в отсылаемых сегментах флаги безопасности и приоритета. Такие модули TCP должны также позволять своим клиентам или вышестоящим протоколам, таким как Telnet и THP, указывать требуемый уровень безопасности, закрытости и приоритета для устанавливаемых соединений.
2.10 Принцип устойчивости
Все реализации протокола TCP будут следовать общему принципу устойчивости: быть консервативным в своих действиях и предоставлять свободу для других.
