Инженерные заметки
Сети

TCP против UDP

Чем отличаются протоколы транспортного уровня и как выбрать подходящий.

· 6 мин чтения

Две модели доставки

TCP устанавливает соединение, гарантирует порядок и повторяет потерянные сегменты. UDP отправляет независимые датаграммы без гарантий доставки и порядка.

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

Соединение начинается с трёхстороннего рукопожатия: SYN, SYN-ACK, ACK. Затем TCP подтверждает полученные данные и регулирует скорость, чтобы не перегружать сеть.

bash
ss -tan state established | head
ss -ti dst 192.0.2.10

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

У UDP нет рукопожатия и повторных отправок: заголовок минимален, задержки малы. Надёжность, если она нужна, реализует приложение.

Что выбрать

TCP подходит для веб-страниц, почты, передачи файлов и баз данных. UDP — для запросов DNS, потоковой передачи и игр, где свежие данные важнее потерянных. QUIC строит надёжную доставку поверх UDP.

Проверка на практике

bash
nc -vz example.com 443
nc -vu 192.0.2.10 5353
sudo tcpdump -ni eth0 udp port 53
Внимание. Для UDP успешная отправка не означает доставку: проверяйте ответ приложения, а не код возврата nc.

Вывод

Выбор протокола определяется требованиями к надёжности и задержке. Понимание различий помогает правильно читать дампы и находить причины потерь.

Связанные статьи