TCP/IP — что это, как работает стек протоколов интернета | Глоссарий FREEHOSTING

tcp-ip

tcp-ip — TCP/IP — стек сетевых протоколов, на котором работает интернет. IP отвечает за адресацию и доставку пакетов между узлами, TCP — за надёжную передачу данных с подтверждением и порядком. Вместе образуют четыре уровня сетевой модели.

Определение простыми словами

TCP/IP — это набор правил, по которым устройства в интернете общаются друг с другом. Когда вы открываете сайт, ваш компьютер разбивает запрос на маленькие пакеты, протокол IP отправляет их по адресу сервера, а TCP следит, чтобы все пакеты дошли в нужном порядке и без ошибок.

Стек состоит из четырёх уровней: канального, сетевого (IP), транспортного (TCP/UDP) и прикладного (HTTP, SMTP, FTP и др.). Эта модель упрощает разработку: каждый уровень решает свою задачу независимо.

Сравнение TCP и UDP

Параметр TCP UDP
Надёжность Гарантированная доставка Без гарантий
Порядок пакетов Сохраняется Может нарушаться
Скорость Медленнее Быстрее
Использование HTTP, SMTP, FTP, SSH DNS, VoIP, игры, видеостриминг
Соединение С установкой (3-way handshake) Без соединения

Кейсы использования

  • Любая загрузка веб-страницы по HTTP/HTTPS использует TCP/IP в качестве транспорта.
  • Передача файлов по SFTP/SSH — TCP с шифрованием поверх.
  • Синхронизация баз данных между серверами через TCP-соединения.
  • VoIP-звонки и онлайн-игры используют UDP поверх IP ради низкой задержки.

Когда задумываются о низкоуровневой настройке TCP/IP:

  • Высокая задержка соединения с зарубежным сервером — настраивают TCP-окно и congestion control.
  • Сервер обрабатывает десятки тысяч соединений — нужен тюнинг ядра и sysctl.
  • Атаки вида SYN-flood — настройка SYN cookies и rate-limit на уровне файрвола.

Технические детали

Базовая диагностика стека на Linux-сервере:

# посмотреть открытые TCP-соединения
ss -tan
# проверить маршрут до удалённого хоста
traceroute -T -p 443 example.com
# измерить пропускную способность
iperf3 -c speedtest.example.com -p 5201
# увеличить TCP-буфер на нагруженном сервере
sysctl -w net.core.rmem_max=16777216
sysctl -w net.core.wmem_max=16777216

Частые вопросы

Чем модель TCP/IP отличается от OSI?

OSI — теоретическая модель из семи уровней, TCP/IP — практическая из четырёх. На каждом уровне TCP/IP объединены несколько уровней OSI. На практике инженеры используют OSI как словарь («это L7-проблема»), а саму архитектуру строят по TCP/IP.

Что такое three-way handshake?

Это процедура установки TCP-соединения из трёх пакетов: клиент шлёт SYN, сервер отвечает SYN-ACK, клиент подтверждает ACK. Только после этого можно передавать данные. Из-за этого TCP добавляет минимум один RTT задержки по сравнению с UDP.

Можно ли использовать UDP вместо TCP для сайта?

Раньше — нет. Сейчас протокол QUIC (основа HTTP/3) работает поверх UDP и даёт надёжность при меньших задержках. Большинство современных браузеров и CDN уже поддерживают HTTP/3, так что для новых сайтов это естественный выбор.

Что значит «TCP window» и зачем его настраивать?

TCP window — это объём данных, который отправитель может послать до получения подтверждения. На каналах с большой задержкой (например, до США) маленькое окно режет скорость. Увеличение rmem/wmem в sysctl и включение window scaling может ускорить трансфер в разы.