📌 TCP

Transmission Control Protocol TCP — транспортный протокол уровня 4 модели OSI, обеспечивающий надёжную, упорядоченную и контролируемую доставку потока байт между двумя узлами.

🧠 Как работает

TCP устанавливает логическое соединение (сессия), гарантирует доставку и корректный порядок пакетов. Работает поверх IP и включает:

  • Установку соединения через трёхстороннее рукопожатие (3-way handshake)
  • Нумерацию байт и подтверждение доставки (ACK)
  • Контроль перегрузки (Congestion Control)
  • Контроль потока (Flow Control, windowing)
  • Повторную передачу потерянных пакетов (Retransmission)
  • Закрытие соединения по 4-фазному протоколу FIN/ACK

⚙️ Где применяется

ОбластьПримеры протоколов
WebHTTP, HTTPS
EmailSMTP, IMAP, POP3
Remote AccessSSH, Telnet
File TransferFTP, SFTP
Streaming (где важен порядок)RTSP, SMB

💻 Пример (Linux)

ss -t -a                         # показать все TCP-соединения
tcpdump -i eth0 'tcp port 80'   # захват TCP-трафика HTTP
nmap -sT target.com             # TCP connect scan

📐 Состояния TCP FSM

CLOSED → SYN_SENT → ESTABLISHED → FIN_WAIT → TIME_WAIT → CLOSED
          ↑         ↓
       SYN_RCVD  ← ACK

🧩 Структура TCP-заголовка

ПолеНазначение
Source/Dest PortИдентификация приложений
Sequence NumberНумерация байтов
ACK NumberПодтверждение полученного
FlagsSYN, ACK, FIN, RST и др.
Window SizeКонтроль потока
ChecksumПроверка целостности
OptionsРасширения (MSS, Window Scale и др)

✅ Преимущества

  • Надёжная доставка данных

  • Автоматическая коррекция потерь и упорядочивание

  • Широкая поддержка в os, NIC, Firewall

❌ Недостатки

  • Задержки из-за подтверждений и контроля перегрузки

  • Невысокая эффективность при больших потерях (в отличие от UDP)

  • Не подходит для real-time без настройки параметров