Как показано на рисунке 6.17 сегмент TCP состоит из заголовка и поля данных. Минимальная длина заголовка составляет 20 байт. Для определения назначения большинства полей предназначены специальные управляющие биты заголовка.
Формат и значения поля «управляющие биты» показаны в таблице 6.1.
Таблица 6.1.
Номер бита | ||||||
Назва-ние | URG | ASK | PSH | RST | SYN | FIN |
Назна- чение | Поле «указатель срочности» задейство-вано | Поле «номер подтвер-ждения» задейст-вовано | Включена функция протал-кивания | Перезаг-рузка данного соедине-ния | Синхро-низация номеров в очереди | Данных для передачи нет |
q URG — (Urgent) – сигнализация о срочных данных
q ASK — (Acknowledgment) – указывает на то, что используется поле «подтверждения».
q PSH — (Push) – включена функция проталкивания потока данных. Обычно используется для передачи последнего сегмента в потоке данных и этот сегмент будет без очереди доставлен к приложению-получателю.
q RST — (Reset) – указывает на сброс и последующую перезагрузку данного соединения.
|
|
q SYN — (Synchronization) – флаг синхронизации. Когда он установлен, поле «номер в последовательности» содержит начальный номер байта в последовательности.
q FIN — (Final) – указывает на отсутствие данных для передачи.
Основные поля заголовка.
«Номер в последовательности» (Sequence number) – номер первого байта в текущем сегменте.
«Номер подтверждения» (Acknowledgment number) – номер следующего байта, который ожидает приемник. Тем самым подтверждается получение байтов с номерами до {AN-1}.
«Смещение данных» (Data offset) – указывает количество 32-битных слов в заголовке TCP.
«Резерв» (Reserved) – заполнено нулями и предназначено для будущего расширения протокола.
«Окно» (Window) – объявляет размер W окна в байтах.
«Контрольная сумма» (Checksum) – сумма всех 16 битовых слов заголовка и поля данных.
«Указатель срочности» (Urgent pointer) – используется совместно с флагом URG. Указывает размер в байтах поля срочных данных.
Рис.6.17.
Options) – имеет переменную длину и может отсутствовать. Его размер всегда кратен 8 байтам. Здесь могут, к примеру, указываться: максимальный размер сегмента, дополнительные услуги и т.д.
«Выравнивание» (Padding) – заполнение нулями до 32-битовой длины.