<<
>>

Формат ТСР-сегмента

Информация, поступающая к протоколу TCP от протоколов более высокого уровня, рассматривается протоколом TCP как неструктурированный, поток байтов. Поступающие данные буферизуются средствами TCP.
Для передачи на сетевой уровень из буфера «вырезается» некоторая непрерывная часть данных, которая называется сегментом[42] и снабжается заголовком (рис. 19.4).

Рис. 19.4. Формирование TCP-сегментов из потока байтов

Заголовок TCP-сегмента содержит значительно больше полей, чем заголовок ƯDP,

что отражает более развитые возможности первого протокола:

? Порт источника (sourc port) занимает 2 байта и идентифицирует процесс-отправитель.

? Порт приемника (destination port) занимает 2 байта и идентифицирует процесс-получатель.

? Последовательный номер (sequence number) занимает 4 байта и представляет собой номер байта, который определяет смещение сегмента относительно потока отправляемых данных (другими словами, номер первого байта данных в сегменте).

? Подтвержденный номер (acknowledgement number) занимает 4 байта и содержит максимальный номер байта в полученном сегменте, увеличенный на единицу. Именно это значение используется в качестве квитанции. Если установлен контрольный бит АСК, то это поле содержит следующий номер очереди, который отправитель данного сегмента желает получить в обратном направлении.

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

? Резерв (reserved) занимает 6 бит.

? Кодовые биты (code bits) числом 6 содержат служебную информацию о типе данного сегмента. Положительное значение сигнализируется установкой этих битов в единицу:

О URG — срочное сообщение;

О АСК — квитанция на принятый сегмент;

О PSH — запрос на отправку сообщения без ожидания заполнения буфера (протокол TCP может выжидать заполнения буфера перед отправкой сегмента, но если требуется срочная передача, то приложение сообщает об этом протоколу TCP с помощью данного бита);

О RST — запрос на восстановление соединения;

О SYN — сообщение, используемое для синхронизации счетчиков переданных данных при установлении соединения;

О FIN — признак достижения передающей стороной последнего байта в потоке передаваемых данных.

? Окно (window) занимает 2 байта и задает количество байтов данных, ожидаемых отправителем данного сегмента, начиная с байта, номер которого указан в поле подтвержденного номера.

? Контрольная сумма (checksum) занимает 2 байта.

? Указатель срочности (urgent pointer) занимает 2 байта и указывает на конец данных, которые необходимо срочно принять, несмотря на переполнение буфера. Указатель срочности используется совместно с кодовым битом ƯRG. То есть если какие-то данные необходимо переслать приложению-получателю вне очереди, то приложение-отправитель должно сообщить об этом протоколу TCP путем установки в единицу бита URG.

? Параметры (options) имеют переменную длину и могут вообще отсутствовать. Максимальная величина поля составляет 3 байта; оно используется для решения вспомогательных задач, например для выбора максимального размера сегмента. Поле параметров может располагаться в конце заголовка TCP, а его длина кратна 8 бит.

? Заполнитель (padding) может иметь переменную длину. Это фиктивное поле, используемое для доведения размера заголовка до целого числа 32-битовых слов.

<< | >>
Источник: В. Г. Олифер, Н. А. Олифер. 54 Компьютерные сети. Принципы, технологии, протоколы: Учебник для вузов. 3-е изд. 2006

Еще по теме Формат ТСР-сегмента:

  1. Жанры и форматы
  2. ЗАБЫТЫЕ ФОРМАТЫ
  3. МОЗГ СПИННОЙ
  4. ЖИВОТНОЕ: ДЕЯТЕЛЬНОСТЬ КОНСТРУКТИВНАЯ
  5. в) Позиционирование
  6. б) Сегментирование
  7. Эксперимент
  8. Дело вкуса
  9. Стиль
  10. ДВЕНАДЦАТИПЕРСТНАЯ КИШКА (ЯЗВА)
  11. Сила уединения
  12. Задачи и упражнения