Формат сообщений TCP

Единицей данных протокола TCP является сегмент. Информация, поступающая к протоколу TCP в рамках логического соединения от протоколов более высокого уровня, рассматривается протоколом TCP как неструктурированный поток байт. Поступающие данные буферизуются средствами TCP. Для передачи на сетевой уровень из буфера "вырезается" некоторая непрерывная часть данных, которая и называется сегментом. Сегменты состоят из заголовка и блока данных. Заголовок сегмента имеет следующие поля:


  1. Порт источника (SOURS PORT) занимает 2 байта, идентифицирует процесс-отправитель;
  2. Порт назначения (DESTINATION PORT) занимает 2 байта, идентифицирует процесс-получатель;
  3. Последовательный номер (SEQUENCE NUMBER) занимает 4 байта, указывает номер байта, который определяет смещение сегмента относительно потока отправляемых данных;
  4. Подтвержденный номер (ACKNOWLEDGEMENT NUMBER) занимает 4 байта, содержит максимальный номер байта в полученном сегменте, увеличенный на единицу; именно это значение используется в качестве квитанции;
  5. Длина заголовка (HLEN) занимает 4 бита, указывает длину заголовка сегмента TCP, измеренную в 32-битовых словах. Длина заголовка не фиксирована и может изменяться в зависимости от значений, устанавливаемых в поле Опции;
  6. Резерв (RESERVED) занимает 6 битов, поле зарезервировано для последующего использования;
  7. Кодовые биты (CODE BITS) занимают 6 битов, содержат служебную информацию о типе данного сегмента, задаваемую установкой в единицу соответствующих бит этого поля:

В протоколе TCP предусмотрен случай, когда приложение обращается с запросом о срочной передаче данных (бит PSH в запросе установлен в 1). В этом случае протокол TCP передает указанные данные в сеть немедленно, не ожидая заполнения буфера до уровня размера сегмента. О таких данных говорят, что они передаются вне потока - out of band.

Не все сегменты, посланные через соединение, будут одного и того же размера, однако оба участника соединения должны договориться о максимальном размере сегмента, который они будут использовать. Этот размер выбирается таким образом, чтобы при упаковке сегмента в IP-пакет он помещался туда целиком, то есть максимальный размер сегмента не должен превосходить максимального размера поля данных IP-пакета. В противном случае пришлось бы выполнять фрагментацию, то есть делить сегмент на несколько частей, для того, чтобы он вместился в IP-пакет.

Аналогичные проблемы решаются и на сетевом уровне. Для того, чтобы избежать фрагментации, должен быть выбран соответствующий максимальный размер IP-пакета. Однако при этом должны быть приняты во внимание максимальные размеры поля данных кадров всех протоколов канального уровня, используемых в сети. Максимальный размер сегмента не должен превышать минимальное значение на множестве всех MTU составной сети.

  1. Слушать на английском:
  2. Названия комплектующих ПК
  3. Названия тегов HTML
  4. Цветов CSS
  5. Названия редакторов на английском языке
Оглавление
  1. Раздел «Стек протоколов TCP/IP»
  2. Реферат «Стек протоколов TCP/IP». Введение
  3. Структура стека TCP/IP
  4. Адресация в IP-сетях
  5. Протокол межсетевого взаимодействия IP
  6. Управление фрагментацией
  7. Маршрутизация с помощью IP-адресов
  8. Фиксированная маршрутизация
  9. Пример взаимодействия узлов с использованием протокола IP
  10. Транспортный уровень - протоколы UDP и TCP
  11. Формат сообщений UDP
  12. Формат сообщений TCP
  13. Порты и установление TCP-соединений
  14. Протоколы прикладного уровня
  15. Протокол TELNET
  16. Реферат «Стек протоколов TCP/IP». Оглавление