Gymterview
junior

Чем отличаются TCP и UDP?

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

Характеристика TCP UDP
Соединение Требует установки (handshake) Без установки соединения
Надёжность Гарантирует доставку, повторяет потерянные пакеты Не гарантирует, пакеты могут теряться
Порядок Сохраняет порядок пакетов Порядок не гарантирован
Скорость Медленнее из-за накладных расходов Быстрее, минимальные накладные расходы
Тип передачи Потоковая (stream) — границы сообщений не сохраняются Датаграммная — каждое сообщение целостное
Контроль перегрузок Есть Нет
Применение HTTP, FTP, SMTP, SSH DNS, DHCP, VoIP, стриминг, онлайн-игры

TCP — подробности

  • Надёжность — управляет подтверждением, повторной передачей и тайм-аутами. Если пакет потерялся, сервер запросит его повторно
  • Упорядоченность — если пакеты приходят не по порядку, TCP буферизирует их и собирает в правильной последовательности
  • Тяжеловесность — требуется три пакета для установки соединения плюс постоянный контроль доставки

UDP — подробности

  • Ненадёжность — нет подтверждений, повторных передач и тайм-аутов
  • Неупорядоченность — два сообщения одному получателю могут прийти в произвольном порядке
  • Легковесность — минимальный заголовок, никакого отслеживания состояния
  • Датаграммы — границы сообщений сохраняются: получатель читает ровно то, что было отправлено

На собеседовании: это один из самых частых вопросов по сетям. Обязательно приведите таблицу сравнения и примеры использования каждого протокола. Часто уточняют: «Когда вы бы выбрали UDP вместо TCP?» — ответ: когда допустима потеря данных и важна низкая задержка (видео, игры, DNS).