|
TCP/IP (англ.
Transmission Control Protocol /Internet Protocol— протокол управления передачей) — один из основных сетевых протоколов Internet, предназначенный для управления
передачей данных в сетях и подсетях TCP/IP.
Выполняет функции протокола транспортного уровня упрощенной модели OSI. IP-идентификатор — 6.
TCP — это транспортный механизм, предоставляющий
поток данных,
с предварительной установкой соединения, за счёт этого дающий
уверенность в безошибочности получаемых данных, осуществляет повторный
запрос данных в случае потери
пакетов и устраняет дублирование при получении двух копий одного пакета (см. также T/TCP). В отличие от UDP, TCP гарантирует, что приложение получит данные точно в такой же последовательности, в какой они были отправлены, и без потерь.
Формат TCP-сегмента
Формат TCP-сегмента
|
Бит |
0 - 3 |
4 - 9 |
10 - 15 |
16 - 31 |
|
0 |
Порт источника |
Порт назначения |
|
32 |
Номер последовательности |
|
64 |
Номер подтверждения |
|
96 |
Смещение данных |
Зарезервировано |
Флаги |
Окно |
|
128 |
Контрольная сумма |
Указатель важности |
|
160 |
Опции (необязательное) |
|
160/192+ |
Данные
|
Порт источника
Порт назначения
Порт назначения идентифицирует порт, на который отправлен пакет
Номер последовательности
Номер последовательности выполняет две задачи:
-
Если установлен флаг SYN, то это начальное значение номера
последовательности и первый байт данных - это номер последовательности
плюс 1.
-
В противном случае, если SYN не установлен, первый байт данных - номер последовательности
Номер подтверждения
Если установлен флаг ACK, то это поле содержит номер
последовательности, ожидаемый отправителем в следующий раз. Помечает
этот пакет как подтверждение получения.
Смещение данных
Это поле определяет размер заголовка пакета TCP в 32-битных словах.
Минимальный размер составляет 5 слов, а максимальный - 15, что
составляет 20 и 60 байт соответственно. Смещение считается от начала
заголовка TCP.
Зарезервировано
6 бит зарезервированы для будущего использования и должны устанавливаться в ноль.
Флаги (управляющие биты)
Это поле содержит 6 битовых флагов:
-
URG - Поле
Указатель важности значимо (англ.
Urgent pointer field is significant)
-
ACK - Поле
Номер подтверждения значимо (англ.
Acknowledgement field is significant)
-
PSH - (англ.
Push function)
-
RST - Оборвать соединения (англ.
Reset the connection)
-
SYN - Синхронизация номеров последовательности (англ.
Synchronize sequence numbers)
-
FIN (англ.
final, бит) - флаг, будучи установлен, указывает на завершение соединения (англ.
FIN bit used for connection termination).
Контрольная сумма
Поле контрольной суммы - это 16-битное дополненение суммы всех
16-битных слов заголовка и текста. Если сегмент содержит нечетное число
октетов в заголовке /или тексте, последние октеты дополняются справа 8
нулями для выравнивания по 16-битовой границе. Биты заполнения (0) не
передаются в сегменте и служат только для расчета контрольной суммы.
При расчете контрольной суммы значение самого поля контрольной суммы
принимается равным 0.
Указатель важности
16-битовое значение положительного смещения от порядкового номера в
данном сегменте. Это поле указывает порядковый номер октета, с которого
начинаются важные (urgent) данные. Поле принимается во внимание только
для пакетов с установленным флагом U.
источник: wikipedia.org |