TCP

Материал из Cetki Wiki.

Перейти к: навигация, поиск
TCP
Название: Transmission Control Protocol
Уровень (по модели OSI): Транспортный
Семейство: TCP/IP
Создан в: {{{Создан}}} г.
Порт/ID: 6/IP
Назначение протокола: {{{Назначение}}}
Спецификация: RFC 793 / STD 7
Основные реализации: Windows, Linux
Основные реализации (клиенты): {{{Клиенты}}}
Основные реализации (серверы): {{{Серверы}}}
Расширяемость: Опции
Основные расширения: {{{Основные расширения}}}

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

Выполняет функции протокола транспортного уровня упрощенной модели OSI. IP-идентификатор — 6.

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

Содержание

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

Формат TCP-сегмента
Бит 0 - 3 4 - 7 8 - 15 16 - 31
0 Порт источника Порт назначения
32 Номер последовательности
64 Номер подтверждения
96 Смещение данных Зарезервировано Флаги Окно
128 Контрольная сумма Указатель важности
160 Опции (необязательное)
160/192+  
Данные
 

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

Порт источника идентифицирует порт, с которого отправлен пакет.

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

Порт назначения идентифицирует порт, на который отправлен пакет

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

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

  1. Если установлен флаг SYN, то это начальное значение номера последовательности и первый байт данных - это номер последовательности плюс 1.
  2. В противном случае, если SYN не установлен, первый байт данных - номер последовательности

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

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

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

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

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

4 бита зарезервировано для будущего использования и должны устанавливаться в ноль.

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

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

  • CWR - Поле ' из man tcpdump (8) 18 April 2005 Linux 2.6.20-15-server
  • ECE - Поле ' из man tcpdump (8) 18 April 2005 Linux 2.6.20-15-server
  • 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.

Источник — «http://wiki.cetki.com:777/wiki/TCP»
Личные инструменты