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