Что такое 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 (четыре уровня)
- Канальный уровень (link layer) — Ethernet, Wi-Fi, физическая среда
- Сетевой уровень (Internet layer) — IP
- Транспортный уровень (transport layer) — TCP, UDP
- Прикладной уровень (application layer) — HTTP, FTP, DNS
Установление TCP-соединения (трёхстороннее рукопожатие)
TCP-соединение начинается с handshake:
- Узел A посылает узлу B пакет
SYN— приглашение к соединению - B отвечает пакетом
SYN-ACK— согласие на установление соединения - A посылает пакет
ACK— подтверждение получения согласия
После этого соединение считается установленным, и приложения могут обмениваться данными. В заголовке TCP/IP-пакета указываются: IP-адрес отправителя, IP-адрес получателя и номер порта.
На собеседовании: ключевое, что нужно знать — трёхстороннее рукопожатие (SYN → SYN-ACK → ACK), разницу между TCP и UDP, а также четыре уровня стека TCP/IP. Часто спрашивают: «Почему именно три этапа?» — потому что обе стороны должны подтвердить готовность принимать и отправлять данные.