2.7 Формат TCP сегмента

Transmission Control Protocol (TCP) (протокол управления передачей) — один из основных сетевых протоколов Интернета, предназначенный для управления передачей данных в сетях и подсетях TCP/IP.

 

Выполняет функции протокола транспортного уровня модели OSI.

 

TCP — это транспортный механизм, предоставляющий поток данных, с предварительной установкой соединения, за счёт этого дающий уверенность в достоверности получаемых данных, осуществляет повторный запрос данных в случае потери данных и устраняет дублирование при получении двух копий одного пакета (см. также T/TCP). В отличие от UDP гарантирует, что приложение получит данные точно в такой же последовательности, в какой они были отправлены, и без потерь.

 

Заголовок TCP сегмента

Описание: t17_2_2.jpg

Порт источника

Порт источника идентифицирует приложение клиент, с которого отправлены пакеты. По возвращении данные передаются клиенту на основании номера порта источника.

 

Порт назначения

Это просто порт.

 

TCP-порты

Существует набор служб (использующих для передачи данных TCP), за которыми закреплены определенные порты:

·                     20/21 — FTP

·                     23 — Telnet

·                     25 — SMTP

·                     80 — HTTP

·                     110 — POP3

·                     443 — HTTPS (Secure HTTP)

·                     8080 — альтернативный порт HTTP

 

Номер последовательности

Номер последовательности выполняет две задачи:

   1. Если установлен флаг SYN, то это начальное значение номера последовательности — ISN (Initial Sequence Number), и первый байт данных, которые будут переданы в следующем пакете, будет иметь номер последовательности равный ISN + 1.

   2. В противном случае, если SYN не установлен, первый байт данных, передаваемый в данном пакете, имеет этот номер последовательности.

Поскольку поток TCP в общем случае может быть длиннее, чем число различных состояний этого поля, то все операции с номером последовательности должны выполняться по модулю 2^32. Это накладывает практическое ограничение на использование TCP. Если скорость передачи коммуникационной системы такова, чтобы в течение MSL (максимального времени жизни сегмента) произошло переполнение номера последовательности, то в сети может появиться два сегмента с одинаковым номером, относящихся к разным частям потока, и приёмник получит некорректные данные.

 

Номер подтверждения

Если установлен флаг ACK, то это поле содержит номер последовательности, ожидаемый получателем в следующий раз. Помечает этот сегмент как подтверждение получения.

 

Смещение данных

Это поле определяет размер заголовка пакета TCP в 32-битных словах. Минимальный размер составляет 5 слов, а максимальный — 15, что составляет 20 и 60 байт соответственно. Смещение считается от начала заголовка TCP.

 

Зарезервировано

Зарезервировано (6 бит) для будущего использования и должно устанавливаться в ноль. Из них два (5-й и 6-й) уже определены:

·                     CWR (Congestion Window Reduced) — Поле «Окно перегрузки уменьшено» — флаг установлен отправителем, чтоб указать, что получен пакет с установленным флагом ECE (RFC 3168)

·                     ECE (ECN-Echo) — Поле «Эхо ECN» — указывает, что данный узел способен на ECN (явное уведомление перегрузки) и для указания отправителю о перегрузках в сети (RFC 3168)

 

Флаги (управляющие биты)

Это поле содержит 6 битовых флагов:

    * URG — Поле «Указатель важности» задействовано (англ. Urgent pointer field is significant)

    * ACK — Поле «Номер подтверждения» задействовано (англ. Acknowledgement field is significant)cvcbcvb

    * PSH — (англ. Push function) инструктирует получателя протолкнуть данные, накопившиеся в приемном буфере, в приложение пользователя

    * RST — Оборвать соединения, сбросить буфер (очистка буфера) (англ. Reset the connection)

    * SYN — Синхронизация номеров последовательности (англ. Synchronize sequence numbers)

    * FIN (англ. final, бит) — флаг, будучи установлен, указывает на завершение соединения (англ. FIN bit used for connection termination).

 

Окно

В этом поле содержится число, определяющее в байтах размер данных, которые получатель готов принять.

 

Контрольная сумма

Поле контрольной суммы — это 16-битное дополнение к сумме всех 16-битных слов заголовка и текста. Если сегмент, по которому вычисляется контрольная сумма, имеет длину не кратную 16-ти битам, то длина сегмента увеличивается до кратной 16-ти, за счет дополнения к нему справа нулевых битов заполнения. Биты заполнения (0) не передаются в сообщении и служат только для расчёта контрольной суммы. При расчёте контрольной суммы значение самого поля контрольной суммы принимается равным 0.

 

Указатель важности

16-битовое значение положительного смещения от порядкового номера в данном сегменте. Это поле указывает порядковый номер октета которым заканчиваются важные (urgent) данные. Поле принимается во внимание только для пакетов с установленным флагом URG.

Hosted by uCoz