Заголовок сегмента TCP | ||||
Бит | 0 — 3 | 4 — 9 | 10 — 15 | 16 — 31 |
Порт источника | Порт назначения | |||
Номер последовательности | ||||
Номер подтверждения | ||||
Смещение данных | Зарезервировано | Флаги | Размер Окна | |
Контрольная сумма | Указатель важности | |||
Опции (необязательное, но используется практически всегда) | ||||
160/192+ | Данные |
Порт источника
Порт источника идентифицирует приложение клиента, с которого отправлены пакеты. По возвращении данные передаются клиенту на основании номера порта источника.
Порт назначения
Порт назначения идентифицирует порт, на который отправлен пакет.
TCP-порты
Существует набор служб (использующих для передачи данных TCP), за которыми закреплены определенные порты:
- 20/21 — FTP
- 22 — SSH
- 23 — Telnet
- 25 — SMTP
- 80 — HTTP
- 110 — POP3
- 194 — IRC (Internet Relay Chat)
- 443 — HTTPS (Secure HTTP)
- 1863 — MSN Messenger
- 2000 — Cisco SCCP (VoIP)
- 3389 — RDP
- 8080 — альтернативный порт HTTP
Номер последовательности
Номер последовательности выполняет две задачи:
- Если установлен флаг SYN, то это начальное значение номера последовательности — ISN (Initial Sequence Number), и первый байт данных, которые будут переданы в следующем пакете, будет иметь номер последовательности, равный ISN + 1.
- В противном случае, если SYN не установлен, первый байт данных, передаваемый в данном пакете, имеет этот номер последовательности.
Поскольку поток TCP в общем случае может быть длиннее, чем число различных состояний этого поля, то все операции с номером последовательности должны выполняться по модулю 2^32. Это накладывает практическое ограничение на использование TCP. Если скорость передачи коммуникационной системы такова, чтобы в течение MSL (максимального времени жизни сегмента) произошло переполнение номера последовательности, то в сети может появиться два сегмента с одинаковым номером, относящихся к разным частям потока, и приёмник получит некорректные данные.
|
|
Номер подтверждения
Если установлен флаг ACK, то это поле содержит номер последовательности, ожидаемый получателем в следующий раз. Помечает этот сегмент как подтверждение получения.
Смещение данных
Это поле определяет размер заголовка пакета TCP в 4-байтных (4-октетных) словах. Минимальный размер составляет 5 слов, а максимальный — 15, что составляет 20 и 60 байт соответственно. Смещение считается от начала заголовка TCP.