Стек TCP/IP¶
Стек TCP/IP — это набор сетевых протоколов, используемый для организации связи между устройствами в компьютерных сетях, включая глобальную сеть Интернет. Стек TCP/IP (Transmission Control Protocol / Internet Protocol) определяет правила, по которым данные передаются, маршрутизируются, адресуются и проверяются на целостность. Он является основой современного интернета и большинства локальных сетей благодаря своей открытости, устойчивости к сбоям и независимости от конкретной аппаратной платформы.
¶История и происхождение
Разработка стека TCP/IP началась в 1970-х годах в рамках проекта ARPANET, финансируемого Министерством обороны США. Ключевую роль в создании сыграли учёные Винтон Серф и Роберт Кан, которые в 1973 году опубликовали черновики протоколов. Первоначально стек предназначался для объединения различных военных и академических сетей в единую сеть с гетерогенной аппаратурой — эта задача решалась за счёт того, что протоколы работали поверх физических сред (кабелей, радиоканалов) независимо от их типа.
В 1983 году ARPANET перешла на использование TCP/IP, что считается моментом рождения современного интернета. В течение 1980‑х годов протоколы были стандартизированы и задокументированы в виде RFC (Request for Comments). В 1990‑х годах с коммерциализацией интернета стек TCP/IP вытеснил альтернативные решения (например, IPX/SPX от Novell или NetBEUI от IBM) и стал доминирующим сетевым стандартом.
¶Уровневая архитектура
Стек TCP/IP делится на четыре логических уровня (в отличие от семи уровней эталонной модели OSI). Каждый уровень решает определённые задачи и взаимодействует только со смежными уровнями.
¶1. Прикладной уровень (Application Layer)
Это верхний уровень, с которым работают программы пользователя. Он предоставляет интерфейсы для обмена данными сетевым приложениям. На этом уровне работают такие протоколы, как HTTP (веб), FTP (передача файлов), SMTP/IMAP/POP3 (электронная почта), DNS (преобразование доменных имён в IP-адреса), DHCP (автоматическая настройка сети) и SSH (удалённое управление). Протоколы прикладного уровня не контролируют маршрутизацию — они лишь упаковывают данные в формат, понятный транспортному уровню.
¶2. Транспортный уровень (Transport Layer)
Обеспечивает сквозную доставку данных между конечными устройствами (хостами). Главные протоколы этого уровня:
- TCP (Transmission Control Protocol) — ориентированный на соединение, гарантирует доставку пакетов в правильном порядке без потерь и дублирования. Использует подтверждения приёма, контроль потока и повторную отправку потерянных сегментов. Из‑за накладных расходов TCP медленнее, но надёжнее. Применяется для веб-сайтов, электронной почты, передачи файлов.
- UDP (User Datagram Protocol) — без установления соединения, не гарантирует доставку и порядок пакетов. Работает быстрее TCP, что делает его подходящим для потокового видео, онлайн-игр, DNS-запросов и голосовых звонков. Потери пакетов в UDP не вызывают задержек на повторную отправку и компенсируются прикладным уровнем.
Каждый протокол транспортного уровня добавляет к данным порт источника и порт назначения — 16‑битные числа, идентифицирующие конкретное приложение на устройстве. Порт в комбинации с IP-адресом образует сокет.
¶3. Сетевой уровень (Internet Layer)
Центральный элемент стека — протокол IP (Internet Protocol). Он отвечает за логическую адресацию устройств и маршрутизацию пакетов через промежуточные узлы (маршрутизаторы). Существует две версии:
- IPv4 — самая распространённая версия, использует 32‑битные адреса (например, 192.168.1.1). Из-за ограниченного адресного пространства (около 4,3 млрд уникальных адресов) активно применяется технология NAT (Network Address Translation) и развёртывание IPv6.
- IPv6 — версия с 128‑битными адресами, значительно увеличивающая количество возможных адресов. Внедрение IPv6 идёт с середины 2000‑х годов, но до полной замены IPv4 ещё далеко.
Кроме IP, на сетевом уровне работают вспомогательные протоколы: ICMP (для диагностики и сообщений об ошибках, например команда ping), ARP (преобразует IP-адреса в MAC-адреса локальной сети) и IGMP (управление групповой многоадресной рассылкой).
¶4. Канальный уровень (Link Layer)
Самый нижний уровень стека. Он описывает способы передачи IP-пакетов через конкретную физическую среду (Ethernet, Wi-Fi, DSL, оптоволокно). Канальный уровень отвечает за:
- инкапсуляцию IP-пакета в кадр (frame) протокола доступа к среде;
- управление доступом к среде (CSMA/CD для Ethernet, CSMA/CA для Wi-Fi);
- физическую адресацию (MAC-адреса).
Фактически канальный уровень не считается частью стандартного ядра TCP/IP, но без него стек не может функционировать.
¶Инкапсуляция данных
При передаче данных по стеку TCP/IP каждый уровень добавляет к исходным данным свой заголовок (и иногда трейлер). Этот процесс называется инкапсуляцией:
- Прикладной уровень создаёт данные (например, HTTP-запрос).
- Транспортный уровень добавляет заголовок TCP или UDP — получается сегмент.
- Сетевой уровень добавляет IP-заголовок — получается пакет (или дейтаграмма).
- Канальный уровень добавляет заголовок и контрольную сумму — получается кадр.
На принимающей стороне данные проходят обратный процесс (декапсуляцию), последовательно извлекая заголовки и проверяя целостность.
¶Маршрутизация
Маршрутизация в стеке TCP/IP осуществляется на сетевом уровне с помощью таблиц маршрутизации. Каждый маршрутизатор анализирует IP-адрес назначения в пакете и выбирает следующий промежуточный узел. Для динамического обновления маршрутной информации используются протоколы маршрутизации:
- RIP (Routing Information Protocol) — простой протокол на основе количества переходов (hop count).
- OSPF (Open Shortest Path First) — протокол состояния каналов, учитывающий пропускную способность и задержки.
- BGP (Border Gateway Protocol) — основной протокол междоменной маршрутизации в интернете, управляющий связями между автономными системами.
¶Ключевые особенности
- Открытость и универсальность: протоколы стека опубликованы, свободно доступны и не привязаны к одному производителю или операционной системе.
- Устойчивость: архитектура допускает разрыв отдельных каналов или выход из строя маршрутизаторов — данные автоматически перенаправляются по альтернативным путям.
- Ненадёжность на уровне сети: IP-пакеты могут теряться, дублироваться или приходить не по порядку; гарантии доставки обеспечиваются только на транспортном уровне (TCP) или прикладным уровнем.
- Масштабируемость: за счёт иерархической системы адресации и DNS стек способен объединять миллиарды устройств.
¶Критика и современные вызовы
Несмотря на широкое распространение, стек TCP/IP не лишён недостатков. Среди основных проблем:
- Недостаточная безопасность на уровне протокола. IP и TCP не предусматривают шифрование; защита реализуется только поверх IP (IPsec, SSL/TLS) или на прикладном уровне.
- Ограничения IPv4 (дефицит адресов, сложность маршрутизации) — переход на IPv6 идёт медленно из-за необходимости обновлять аппаратуру и ПО.
- Эффективность TCP на высоких скоростях. При большой задержке (например, спутниковый канал) механизмы управления перегрузкой TCP снижают пропускную способность.
- Отсутствие гарантий качества обслуживания (QoS) в базовой версии IP. Для приложений, чувствительных к задержкам, (видеоконференции, голос) требуются дополнительные протоколы, такие как RSVP и DiffServ.
¶Интересные факты
- Первая спецификация TCP/IP (RFC 675) была опубликована в 1974 году, а текущие версии протоколов TCP (RFC 793) и IPv4 (RFC 791) датируются 1981 годом.
- IP-адреса в версии IPv4 часто записывают в десятичном формате (например, 8.8.8.8 — DNS-сервер Google). В IPv6 адреса записываются как восемь групп шестнадцатеричных цифр, разделённых двоеточием: 2001:db8::1.
- Протокол UDP был добавлен позже TCP — он появился в 1980 году как более лёгкий вариант для передачи данных, не требующих стопроцентной надёжности.
- Многие протоколы стека IP (до 15–20 % всего трафика интернета) по состоянию на 2025 год занимают протоколы кэширования видеопотоков (QUIC, основанный на UDP).
- Свод протоколов TCP/IP лёг в основу политики США по открытому интернету — именно благодаря его открытости интернет стал глобальной площадкой для инноваций, а не корпоративной сетью.
¶Источники
- R. Braden. Requirements for Internet Hosts — Communication Layers. RFC 1122, 1989.
- D. Comer. Internetworking with TCP/IP: Principles, Protocols, and Architecture. 6th ed., Pearson, 2013.
- W. Stevens. TCP/IP Illustrated, Vol. 1: The Protocols. 2nd ed., Addison-Wesley, 2011.
- K. Fall, W. Stevens. TCP/IP Illustrated, Vol. 2: The Implementation. 2nd ed., Addison-Wesley, 2011.
- V. Cerf, R. Kahn. «A Protocol for Packet Network Intercommunication». IEEE Transactions on Communications, Vol. 22, No. 5, 1974.
BFOmetr — база данных и аналитика по компаниям России.
На главную BFOmetr →


