Ответ
В инфраструктурной работе основное внимание уделяется TCP и UDP, реже — SCTP.
-
TCP (Transmission Control Protocol): Надежный, с установкой соединения (three-way handshake). Гарантирует доставку, порядок пакетов и контроль перегрузки. Применение в DevOps:
- Веб-серверы (HTTP/HTTPS, SSH, базовые данные БД).
- Любые соединения, где важна целостность данных.
- При настройке балансировщиков (AWS ALB, Nginx) для этих сервисов используется режим TCP/SSL прокси.
-
UDP (User Datagram Protocol): Ненадежный, без установки соединения. Низкие задержки, но нет гарантий доставки или порядка. Применение в DevOps:
- Мониторинг: Статистика в формате StatsD, метрики Node Exporter для Prometheus (хотя часто и по TCP).
- Сервис-открытие (Service Discovery): Multicast DNS (mDNS) или старый добрый broadcast.
- Стриминг: VoIP, видеоконференции, некоторые системы игровых серверов.
- DNS-запросы: Хотя резолверы могут использовать TCP для больших ответов, первоначальный запрос обычно UDP.
-
SCTP (Stream Control Transmission Protocol): Совмещает надежность TCP с некоторыми преимуществами UDP (мультиплексирование потоков, multi-homing). Применение: В основном в телеком-инфраструктуре (сигнализация SS7 через SIGTRAN). В обычной веб-разработке и DevOps встречается редко.
Практический пример — настройка безопасности: В Security Groups AWS или файрволе iptables правила часто разделяются по протоколу.
# Разрешить мониторинг по UDP (StatsD) и управление по TCP (SSH)
# AWS Security Group (псевдокод):
- Type: Custom UDP Rule, Port: 8125, Source: Prometheus-Server
- Type: SSH, Port: 22, Source: Office-IP
# В iptables для ноды:
sudo iptables -A INPUT -p udp --dport 8125 -j ACCEPT # StatsD
sudo iptables -A INPUT -p tcp --dport 22 -j ACCEPT # SSH
Выбор протокола напрямую влияет на архитектуру: для надежной передачи логов или транзакций — TCP, для массовой отправки метрик, где потеря пакета не критична, — UDP.