Gymterview
junior

Что такое TCP/IP?

TCP/IP — стек протоколов, лежащий в основе Интернета. Название объединяет два ключевых протокола: IP (Internet Protocol) для маршрутизации пакетов и TCP (Transmission Control Protocol) для надёжной доставки данных.

IP (Internet Protocol) — маршрутизируемый протокол, отвечающий за IP-адресацию, маршрутизацию, фрагментацию и восстановление пакетов. В его задачу входит продвижение пакета между сетями — от одного маршрутизатора до другого, пока пакет не попадёт в сеть назначения. В отличие от протоколов прикладного и транспортного уровней, протокол IP разворачивается не только на хостах, но и на всех маршрутизаторах. Протокол работает без установления соединения и без гарантированной доставки.

Используются две версии протокола IP:

Версия Разрядность адреса Формат записи Пример
IPv4 32 бита Четыре десятичных числа (0-255) через точку 192.0.2.34
IPv6 128 бит Восемь 16-битных полей в hex, :: для сокращения нулей 2001:db8:42::1337:cafe

TCP (Transmission Control Protocol) — протокол, обеспечивающий надёжную связь между двумя компьютерами с установлением логического соединения. Отвечает за установление соединения, упорядочивание посылаемых пакетов и восстановление потерянных данных.

Стек TCP/IP (четыре уровня)

  1. Канальный уровень (link layer) — Ethernet, Wi-Fi, физическая среда
  2. Сетевой уровень (Internet layer) — IP
  3. Транспортный уровень (transport layer) — TCP, UDP
  4. Прикладной уровень (application layer) — HTTP, FTP, DNS

Установление TCP-соединения (трёхстороннее рукопожатие)

TCP-соединение начинается с handshake:

  1. Узел A посылает узлу B пакет SYN — приглашение к соединению
  2. B отвечает пакетом SYN-ACK — согласие на установление соединения
  3. A посылает пакет ACK — подтверждение получения согласия

После этого соединение считается установленным, и приложения могут обмениваться данными. В заголовке TCP/IP-пакета указываются: IP-адрес отправителя, IP-адрес получателя и номер порта.

На собеседовании: ключевое, что нужно знать — трёхстороннее рукопожатие (SYN → SYN-ACK → ACK), разницу между TCP и UDP, а также четыре уровня стека TCP/IP. Часто спрашивают: «Почему именно три этапа?» — потому что обе стороны должны подтвердить готовность принимать и отправлять данные.