Ответ
TCP (Transmission Control Protocol) и UDP (User Datagram Protocol) — это два основных транспортных протокола стека TCP/IP. Их фундаментальное различие заключается в подходе к надежности доставки данных.
| Характеристика | TCP (Надежный, с установкой соединения) | UDP (Быстрый, без установки соединения) |
|---|---|---|
| Соединение | Требует установки соединения («рукопожатие»). | Работает без установки соединения (датаграммы). |
| Гарантия доставки | Гарантирует доставку пакетов. Использует подтверждения (ACK) и повторные передачи. | Не гарантирует доставку. Пакеты могут быть потеряны. |
| Порядок пакетов | Гарантирует, что данные будут получены в том же порядке, в котором были отправлены. | Не гарантирует порядок доставки пакетов. |
| Контроль перегрузки | Имеет сложные механизмы контроля перегрузки и потока данных. | Отсутствует контроль перегрузки. |
| Накладные расходы | Высокие (заголовок 20+ байт, управляющие пакеты). | Низкие (заголовок 8 байт). |
| Скорость | Медленнее из-за накладных расходов и механизмов надежности. | Быстрее. |
Сценарии использования в DevOps/Инфраструктуре:
- TCP: Веб-сервисы (HTTP/HTTPS, gRPC), SSH, базы данных (PostgreSQL, MySQL), почта (SMTP). Там, где важна целостность данных.
- UDP: DNS-запросы, мониторинг (SNMP, StatsD), потоковое видео/аудио, VoIP (SIP, RTP), некоторые игровые протоколы. Там, где важна скорость, а потеря нескольких пакетов допустима.
Пример настройки в контексте инфраструктуры:
- Балансировщик нагрузки (Nginx): По умолчанию проксирует на бэкенд по TCP. Для работы с UDP (например, для DNS) требуется отдельная директива
stream. - Брандмауэр (iptables/security groups): Правила часто настраиваются отдельно для
-p tcpи-p udp. - Мониторинг (Prometheus): По умолчанию «вытягивает» метрики по HTTP (TCP). Но может отправлять алерты в Alertmanager по UDP для скорости.
Видео-ответы
▶
▶
▶
▶
▶
▶
▶
▶
▶
▶
▶