Ответ
IP (Internet Protocol) — протокол сетевого уровня, отвечающий за адресацию и маршрутизацию пакетов между сетями. TCP (Transmission Control Protocol) — протокол транспортного уровня, обеспечивающий надежную передачу данных поверх IP.
Аналогия из DevOps:
- IP — как почтовый адрес здания (куда доставить)
- TCP — как курьерская служба с подтверждением получения, нумерацией писем и повторной отправкой при потере
Технические различия:
| Характеристика | IP | TCP |
|---|---|---|
| Уровень OSI | Сетевой (3) | Транспортный (4) |
| Надежность | Ненадежная доставка (best-effort) | Гарантированная доставка с подтверждениями |
| Установка соединения | Нет | Трехстороннее рукопожатие (SYN, SYN-ACK, ACK) |
| Порты | Нет | Использует порты для multiplexing (80, 443, 22) |
| Пример заголовка | Source/Destination IP, TTL, Protocol | Sequence/Ack numbers, Window size, Flags |
Практическое применение в инфраструктуре:
# tcpdump покажет оба уровня
sudo tcpdump -i eth0 -n 'tcp port 80'
# Вывод будет содержать и IP заголовки (src/dst IP), и TCP заголовки (flags, seq)
# Настройка сетевых политик:
# - IP tables/firewall работают на сетевом уровне (блокировка по IP)
# - Прокси/балансировщики (nginx, haproxy) работают на транспортном уровне (по портам)
# Пример проблемы: MTU mismatch
# IP фрагментирует пакеты > MTU, но если где-то в пути стоит firewall,
# блокирующий фрагментированные пакеты, TCP соединение будет падать
# Решение: установить правильный MTU или включить TCP MSS clamping
В стеке TCP/IP: Приложение → TCP (добавляет порты, контроль) → IP (добавляет IP-адреса) → Ethernet. В мониторинге мы отслеживаем метрики обоих уровней: потери на IP (packet loss) и проблемы на TCP (retransmits, zero window).