Заголовок ТСР-сегмента

Заголовок TCP сегмента состоит из 32-разрядных слов (32 бита) и имеет переменную длину, зависящую от размера поля «Options» и «Padding», но всегда кратную 32 битам. Формат заголовка TCP сегмента представлен в таблице 6.

Таблица 6 - Формат заголовка TCP сегмента

Source Port Destination Port
Sequence Number (SN)
Acknowledgment Number (ACK)
Data Offset (0-3) Reserved (4-9) U R G A C K P S H R S T S Y N F I N Window
Checksum Urgent Pointer
Options Padding
Data
                 

Поле «Source Port» и поле «Destination Port» (порт отправителя и получателя) указывает номера портов источника и получателя cooтветственно.

Поле «Sequence Number» (номер последовательности) определяет порядковый номер первого байта в поле данных сегмента среди всех октетов потока данных для текущего логического соединения (TCP сессия). Если в TCP сегменте передаются октеты с 5- го по 87-ой, то SN = 5. В случае начальной установки соединения (TCP сегмент с флагом «SYN») в поле SN записывается случайный номер ISN (Initial Sequence Number = начальный номер последовательности), в первом TCP сегменте без флага «SYN» поле SN = ISN + 1.

Поле «Acknowledgment Number» (номер подтверждения) указывает (в совокупности с флагом «АСК») порядковый номер октета, который отправитель данного сегмента желает получить подразумевая тем самым, что все предыдущие байты (с номерами от ISN+1 до АСК-1) были успешно получены.

Поле «Data Offset» (смещение данных, 4 бита) указывает смещение начала данных TCP в сегменте относительно начала сегмента. Поле указывает длину TCP заголовка. Минимальная длина заголовка без параметров может быть равна 5-ти 32-х битным словам или 160 байтам. Максимальная длина заголовка - 480 байт.

Поле «Reserved» (зарезервировано, 6 бит) зарезервировано для дальнейшего использования, заполняется нулями.

Поле «Flags» (флаги, 6 бит) содержит управляющие биты, для контроля над соединением.

• Флаг URG (Urgent - срочно) указывает срочность доставки сегмента;

• Флаг АСК (Acknowledgment - подтверждение) указывает, что поле «Acknowledgment Number» указывает следующий октет, который предполагает принять получатель;

• Флаг PSH (Push - протолкнуть) указывает на незамедлительность отправки данных из TCP сегмента процессу прикладного уровня, даже, если приёмный TCP буфер не заполнен. Используется при передаче данных интерактивных приложений;

• Флаг RST (Reset - перезагрузка) указывает на необходимость перезагрузки текущего TCP соединения;

• Флаг SYN (Synchronization - синхронизация) указывает на то, что данный TCP сегмент является запросом на установление соединения;

• Флаг FIN (Finish - конец) указывает на закрытие TCP соединения;

Поле «Window» (окно) указывает размер TCP «окна» в октетах. Размер «окна» указывает отправителю максимально возможное число TCP сегментов, которые могут быть отправлены без подтверждения.

Поле «Checksum» (контрольная сумма) содержит контрольную сумму всего TCP сегмента. Обеспечивает поразрядную проверку целостности.

Поле «Urgent Pointer» (указатель срочности) используется для указания длины срочных данных, которые размещаются в начале поля данных сегмента. Число в этом поле указывает смещение октета срочных данных относительно первого октета данных в сегменте. Например, если в TCP сегменте передаются окном с 5-го по 87-ой и первые 15 из них срочные, то поле «Urgent Pointer» = 15. Протокол TCP не регламентирует, как должны обрабатываться срочные данные, определено только, что они должны быть максимально быстро отправлены прикладному процессу. Поле «Urgent Pointer» действует в совокупности флагом «URG».

Поле «Options» (опции, поле переменной длины) поле указывает на реализацию работы дополнительных услуг (опций) протокола TCР. Поле конкретной опции в поле «Options» состоит из октета «Option Kind» (тип опции), октета «Option Length» (длина опции) и октетов «Option Octets» (октетов с данными опции). Стандарт протокола TCP определяет три опции:

«End of Option List» (конец списка опций) имеет тип опции, равный «О», и длину в один октет. Определяет конец списка опций. Не используется, если набор опций TCP выходит за 32-битную границу.

«No Operation» (бездействие) имеет тип опции, равный «1», и длину в один октет. Используется между TCP опциями для 32- битного выравнивания.

«Maximum Segment Size» имеет тип опции, равный «2», и длину в четыре октета. Описывает максимальный размер сегмента, который может быть передан по TCP соединению. Вычисляется на основании MTU (Maximum Transfer Unit - максимальный блок передачи), который может быть передан по соединению за вычетом IP и TCP заголовков. Данная опция включается только на стадии установки соединения, вместе с флагом «SYN».

Поле «Padding» (заполнение) заполняется нулями до выравнивания по 32-битной границе в случае, если поле «Options» не укладывается в 32-битное слово.


Понравилась статья? Добавь ее в закладку (CTRL+D) и не забудь поделиться с друзьями:  



double arrow
Сейчас читают про: