TCP
Материал из Википедии — свободной энциклопедии
- Прикладной уровень
- HTTP, SMTP, FTP, TFTP, DHCP, SSH, IRC, SNMP, DNS,
IMAP, NNTP, SIP, Telnet, BitTorrent, XDR, rlogin… - Транспортный уровень
- TCP, UDP, SCTP, DCCP, RTP, RUDP…
- Сетевой уровень
- IPv4, IPv6, ARP, RARP, ICMP, IGMP
- Канальный уровень
- Ethernet, 802.11 WiFi, Token ring, FDDI, PPP,
SLIP, ATM, DTM, Frame Relay, SMDS… - Физический уровень
- RS-232, EIA-422, RS-449, EIA-485…
TCP (англ. Transmission Control Protocol — протокол управления передачей) — один из основных сетевых протоколов Internet, предназначенный для управления передачей данных в сетях TCP/IP.
Выполняет функции протокола транспортного уровня упрощенной модели OSI. IP-идентификатор — 6.
TCP — это транспортный механизм, предоставляющий поток данных, с предварительной установкой соединения, за счёт этого дающий уверенность в безошибочности получаемых данных, осуществляет перезапрашивание данных в случае потери пакетов и устраняет дублирование при получении двух копий одного пакета (см. также T/TCP). В отличие от UDP, TCP гарантирует, что приложение получит данные точно в такой же последовательности, в какой они были отправлены, и без потерь.
Содержание |
[править] Формат TCP-пакета
Бит | 0 — 3 | 4 — 9 | 10 — 15 | 16 — 31 | ||||||||||||||||||||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
0 | Порт источника | Порт назначения | ||||||||||||||||||||||||||||||
32 | Номер последовательности | |||||||||||||||||||||||||||||||
64 | Номер подтверждения | |||||||||||||||||||||||||||||||
96 | Смещение данных | Зарезервировано | Флаги | Окно | ||||||||||||||||||||||||||||
128 | Контрольная сумма | Указатель важности | ||||||||||||||||||||||||||||||
160 | Опции (необязательное) | |||||||||||||||||||||||||||||||
192 | Опции (продолжение) | Заполнение (до 32) | ||||||||||||||||||||||||||||||
224 | Data |
[править] Порт источника
Порт источника идентифицирует порт, с которого отправлен пакет
[править] Порт назначения
Порт назначения идентифицирует порт, на который отправлен пакет
[править] Номер последовательности
Номер последовательности выполняет две задачи:
- Если установлен флаг 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.
[править] Ссылки
- RFC 793 — Transmission Control Protocol
- Спецификация протокола TCP