Протокол TCP и ТСР-сегменты

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

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

Заголовок TCP-сегмента содержит значительно больше полей, чем заголовок UDP, что отражает более развитые возможности протокола TCP (рис. 2). Краткие описания большинства полей помещены на рисунке, а более подробно мы их рассмотрим, когда будем изучать функции протокола TCP.

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

  • URG — срочное сообщение;
  • АСК — квитанция на принятый сегмент;
  • PSH — запрос на отправку сообщения без ожидания заполнения буфера;
  • RST — запрос на восстановление соединения;
  • SYN — сообщение, используемое для синхронизации счетчиков переданных данных при установлении соединения;
  • FIN — признак достижения передающей стороной последнего байта в потоке передаваемых данных.

Рис. 2 Формат заголовка ТСР-сегмента