Архитектура и принципы построения современных сетей и систем телекоммуникаций. Кулябов Д.С - 168 стр.

UptoLike

Рубрика: 

168 Глава 6. Транспортный уровень
6.2. Протокол TCP
Протокол управления передачей (Transmission Control Protocol, TCP) являет-
ся, в отличие от UDP, «настоящим» протоколом транспортного уровня, который
имеет средства управления потоком и коррекции ошибок. Он ориентирован на
установление соединения, поэтому клиент обязан установить соединение с сер-
вером до начала передачи данных TCP в любом из направлений (RFC 793 [31])
1
.
6.2.1. Формат пакета TCP
На рис. 6.4 показана структура заголовка сегмента TCP.
0 8 16 24 31
Порт источника Порт получателя
Порядковый номер
Номер подтверждения
Длина
заголовка
Резерв
Флаги
Размер окна
Контрольная сумма
Указатель на срочные данные
Параметры
20 байт
Рис. 6.4. Формат заголовка пакета TCP
Поля Порт источника (Source Port) (длина 16 бит) и Порт получателя (Des-
tination Port) (длина 16 бит) аналогичны таким же полям в заголовке пакета UDP
(см. раздел 6.1) и идентифицируют процесс или приложение, использующее про-
токол TCP.
Поля Порядковый номер (Sequence Number) (длина 32 бита) и Номер под-
тверждения (Acknowledgement Number) (длина 32 бита) нумеруют каждый от-
правленный или полученный байт данных. Эти поля реализуются как целые чис-
ла без знака, которые сбрасываются, когда достигают максимального значения.
Каждая сторона ведёт собственную порядковую нумерацию.
Поле Длина заголовка (Offset) (длина 4 бита) содержит размер TCP-заголовка
в 32-битных словах. Эта информация необходима, так как поле Параметры (Op-
tion) может быть переменной длины. Можно сказать, что это поле задаёт смеще-
ние от начала сегмента до начала данных в 32-битных словах.
Следом идёт неиспользуемое поле (Resrvd) длиной 6 бит.
Затем идёт поле Флаги (длина 6 бит), содержащее шесть 1-битовых флагов
(рис. 6.5).
Флаг Указатель срочности (Urgent Pointer, URG) устанавливается в 1 в слу-
чае использования поля Указатель на срочные данные.
1
Также в следующих RFC: 1323, 1644, 2018, 2581, 2582, 2861, 2873, 2883, 2923, 2988, 3293,
3448, 3465, 3481.