
Еще в 2016 году аналитики Statista прогнозировали, что к 2025 году число подключенных к интернету устройств в мире превысит 75 млрд. Сегодня всемирной сетью пользуется огромное количество людей, но лишь немногие пользователи понимают, как именно работает интернет. В основе глобальной сети лежит модель TCP/IP. Благодаря ей данные передаются между городами, странами и континентами, обеспечивая работу сайтов, мессенджеров и облачных сервисов.
Эта статья поможет разобраться в архитектуре TCP/IP и ее связи с моделью OSI. Объяснит, почему порты и DNS играют решающую роль в передаче данных, и как пакеты информации преодолевают сложные сети маршрутизаторов.
Что такое TCP/IP: ключевые особенности
TCP/IP (Transmission Control Protocol/Internet Protocol) — это набор правил и стандартов, определяющих, как устройства обмениваются информацией в сети.
В отличие от теоретической модели OSI (Open Systems Interconnection), которая делит коммуникацию на 7 уровней, TCP/IP использует 4:
- канальный уровень,
- межсетевой/сетевой уровень (IP),
- транспортный уровень (TCP/UDP),
- уровень приложений (прикладной уровень).
Хотя обе модели описывают взаимодействие между устройствами в сети, возникли они независимо друг от друга и обладают уникальной структурой и предназначением.
Модель OSI так же, как и модель TCP/IP, охватывает все аспекты связи, но из-за сложности и академичности не получила широкого практического применения.
А благодаря гибкости и эффективности стек TCP/IP стал основой современного интернета. Однако в некоторых инструкциях и документации довольно часто предпочитают описывать системы с точки зрения OSI, так как она остаётся главной в изучении теории, неся образовательную функцию.
В чем их связь и различия?
- OSI — попытка создать универсальный стандарт со строгим разграничением функций. TCP/IP — результат практической адаптации, построенный на инженерных решениях, отработанных в реальных условиях.
- OSI разрабатывалась параллельно с ростом интернета, где стек TCP/IP уже был реализован, а поэтому доминировал. Попытки заменить его моделью OSI потерпели неудачу, так как новые протоколы (например, CLNP вместо IP) не получили поддержки.
- OSI предполагала централизованную стандартизацию, а TCP/IP строился на децентрализованных, «пробных» решениях (например, разделение задач между IP и TCP).
- TCP/IP оказался проще в реализации и масштабировании, а его протоколы, вроде HTTP и FTP, взяли на себя функции, которые в OSI выполняли отдельные уровни, например, представительный или сеансовый.
OSI | TCP/IP | ||
Количество слоёв | 7 (выделяются такие уровни как cеансовый, представительный и др.) | 4 (укрупненные слои, включающие функции нескольких уровней OSI) | |
Назначение | Теоретическая модель для обучения | Рабочий стек сетевых протоколов | |
Протоколы (примеры)
| CLNP, ES-IS, TP0/TP4 | IP, TCP, UDP, HTTP, DNS | |
Адресация | Сложные адреса (NSAP) | Простые IP-адреса | |
Обработка ошибок | На каждом уровне | Основана на транспортном уровне (TCP) |
Как работает TCP/IP
Архитектура TCP/IP описана в стандарте RFC 1122 — это один из многих технических документов IETF, которые регулируют работу интернета.
В этом стандарте модель TCP/IP состоит из четырёх уровней. Хотя, например, Эндрю Таненбаум в книге «Компьютерные сети» разделяет нижний уровень на два — канальный и физический. Вот как эти 4 уровня соотносятся с моделью OSI:

Основные задачи стека TCP/IP
- Фрагментация информации: данные разбиваются на пакеты для удобства передачи.
- Маршрутизация: выбор оптимального маршрута между отправителем и получателем.
- Проверка целостности: корректировка ошибок и повторная передача утерянных данных.
- Управление соединением: установка, поддержка и завершение связи между узлами.
Уровни модели TCP/IP
Как уже отмечали выше, модель TCP/IP состоит из четырех основных уровней, каждый из них выполняет специфические функции:
Канальный уровень
Отвечает за передачу данных в пределах одной физической сети или отдельного ее сегмента. Он регулирует способы взаимодействия устройств с каналом передачи, такими как Ethernet или Wi-Fi. Обнаруживает и исправляет ошибки, возникающие при передаче на физическом уровне. Основные задачи канального уровня:
- Создание кадров (фреймов): Информация группируется в структурированные единицы — кадры (протоколы LLC, HDLC, PPP, Ethernet и др.) — для отправки через физическую среду. Используется система адресации, где идентификаторами устройств служат MAC-адреса.
- Доступ к среде: Устанавливаются механизмы, определяющие, в каком порядке устройства получают возможность передавать данные, что помогает избежать конфликтов при одновременной передаче. Канальный уровень также отвечает за корректную доставку фреймов получателю. Среди протоколов этого уровня: ARP — сопоставляет IP-адреса с MAC-адресами.
- Контроль целостности данных: Используются методы проверки, например, вычисление контрольных сумм, для обнаружения поврежденных при передаче данных.
Межсетевой уровень
Уровень, который также называют сетевым, отвечает за перемещение пакетов между разными сетями. В его основе лежит протокол IP, обеспечивающий маршрутизацию и уникальную адресацию устройств. Ключевые функции межсетевого уровня:
- Идентификация устройств: Каждому устройству в сети присваивается уникальный IP-адрес для однозначного определения его положения в общей структуре сети.
- Построение маршрутов: Определяет оптимальный маршрут, по которому пакеты должны пройти от отправителя до получателя, учитывая возможные переходы через разные сети.
- Фрагментация и восстановление: При необходимости крупные пакеты разбиваются на более мелкие части для передачи и воссоздаются в первоначальном виде на стороне приемника.
Иными словами — происходит объединение локальных сетей в масштабную глобальную инфраструктуру, по которой информация передается между устройствами через магистральные и пограничные маршрутизаторы. Именно на этом этапе становятся важны IP и маски подсетей.
- Маска подсети помогает определить, относится ли устройство к той же сети, что и отправитель. Если получатель находится в пределах одной подсети, пакет доставляется напрямую. В противном случае данные передаются через цепочку маршрутизаторов, пока не достигнут нужного адресата.
- Протокол IP (Internet Protocol) играет ключевую роль в определении маршрутизатором, к какой именно подсети принадлежит целевое устройство. Каждое подключенное к сети устройство обладает собственным уникальным IP-адресом, и в масштабах интернета наличие двух устройств с одинаковыми IP недопустимо. Существует несколько версий протокола IP, первой из которых стал широко используемый IPv4.
Подробнее про IP-адреса и маску сети вы можете узнать в этой статье.
Из-за роста числа подключений IPv4-адресов не хватает: их приходится освобождать от неиспользуемых устройств или покупать на специализированных биржах.
Для решения проблемы в 1998 году был разработан стандарт IPv6, в котором адрес увеличен до 128 бит. Это позволяет создать 2¹²⁸ различных адресов — число настолько большое, что его хватит даже при самом масштабном росте сети. Но сейчас все еще нельзя сказать, что интернет готов к полноценному использованию IPv6.
Кроме IP, в рамках межсетевого уровня используются и другие протоколы, обеспечивающие вспомогательные функции:
- ICMP (Internet Control Message Protocol, протокол управляющих сообщений) — предназначен для передачи сообщений о возникновении ошибок и другой диагностической информации между устройствами в сети. Он помогает маршрутизаторам и хостам сообщать о проблемах при доставке пакетов, например, о недоступности адресата. Пользовательские приложения напрямую не используют ICMP, за исключением сетевых утилит типа ping или traceroute, которые применяются для диагностики. Важно отметить, что ICMP не занимается передачей пользовательских данных, в отличие от TCP и UDP на транспортном уровне. Для работы с IPv6 существует отдельная версия протокола — ICMPv6.
- IGMP (Internet Group Management Protocol) используется для управления групповыми соединениями в сетях, работающих по IPv4. Он позволяет устройствам запрашивать получение данных, предназначенных для определенной группы, например, в случае трансляции потокового видео или участия в многопользовательских играх. В IPv6-сетях аналогичные функции выполняет протокол MLD (Multicast Listener Discovery), встроенный в ICMPv6.
Транспортный уровень
На этом уровне обеспечивается надежная доставка информации между сетевыми устройствами. Ключевыми протоколами здесь выступают TCP и UDP (User Datagram Protocol).
Во время передачи данных неизбежны риски потерь, но не все типы информации одинаково чувствительны к этому. Так, потеря нескольких символов в текстовом документе способна значительно исказить его содержание, в то время как выпадение пары кадров из видеопотока вряд ли будет заметно зрителю. Поэтому:
- TCP используется, когда важна целостность доставленных пакетов и ожидается ответ, чтобы проверить его.
- В UDP целостность не важна, ответный пакет не ожидается, за счет чего обеспечивается скорость.

Основные задачи транспортного уровня:
- управление соединением: организация, поддержание и корректное завершение соединений между узлами сети,
- контроль скорости передачи: регулирование потока данных для недопущения перегрузки каналов и получающих устройств,
- обнаружение и исправление ошибок: использование методов контроля целостности, включая контрольные суммы и повторные отправки поврежденных пакетов.
- Прикладной уровень
На этом уровне работают программы, к которым идет обращение по сети. Самый простой пример: веб-сервер, который отображает в браузере содержимое сервера в виде сайта.
Функции прикладного уровня:
- создание интерфейсов для приложений: предоставление стандартных методов, позволяющих программам подключаться к сетевым ресурсам,
- управление сеансами: контроль за началом, поддержанием и корректным завершением сессий обмена данными между приложениями,
- форматирование и подготовка данных: преобразование информации в формат, подходящий для передачи по сети и последующей обработки на стороне получателя.
В архитектуре TCP/IP приложения взаимодействуют с транспортным уровнем через протоколы TCP или UDP, однако им не требуется глубокое понимание структуры передаваемых данных — приложения ориентируются только на IP-адрес и номер порта.
IP, порты и сокеты: как приложения находят друг друга
Хотя уникальные IP-адреса назначаются устройствам на межсетевом уровне, на практике обмен данными происходит не между машинами, а между конкретными приложениями, работающими на этих устройствах.
Чтобы правильно идентифицировать конкретное приложение на устройстве, одного IP-адреса недостаточно. Для этого дополнительно используется номер порта. Совместно IP-адрес и порт формируют так называемый сокет (socket) — уникальную «точку входа», через которую приложения обмениваются данными.
Именно через сокеты происходит подавляющее большинство сетевых коммуникаций — будь то загрузка сайта, отправка почты или потоковая передача видео.
Нередко слово «сокет» используют как синоним для «хоста» или «пользователя». Кроме того, сокетом называют гнездо подключения процессора, а в UNIX-системах существуют сокет-файлы, которые работают по аналогичной схеме, но вместо IP-адреса и порта используют имя файла.
Каждое приложение на прикладном уровне использует свой собственный протокол для обмена данными и закрепленный за ним номер порта для выхода в сеть. Чтобы избежать конфликтов и путаницы, в глобальном интернете за распределение портов отвечает IANA (Internet Assigned Numbers Authority). Эта организация устанавливает диапазоны IP-адресов и назначает порты для популярных сетевых сервисов.
Это не обязывает вас использовать для приложений именно заданный порт, но изменение этого параметра на другой потребует дополнительных настроек. Они нужны, чтобы устройства с другой стороны смогли правильно «обратиться» к вашему, указав нужный порт для нужного приложения, так как по умолчанию они будут использовать именно те, что определила IANA.
Примеры:
- Почтовые приложения для отправки используют порт 25 (SMTP-протокол).
- Для получения почты — порт 110 (протокол POP3).
- Веб-серверы отображают содержимое (сайты, например) по протоколу HTTP — порт 80.
- Передача файлов по протоколу FTP — это порт 21.
Порт довольно часто указывается после IP и отделяется от него двоеточием, выглядит это, например, так: 182.68.75.102:80.
Еще один важный порт, 53, зарезервирован для службы доменных имен — DNS. Она преобразует буквенные имена сетевых доменов в числовые IP-адреса и наоборот и избавляет нас от необходимости запоминать числа IP-адресов. Вместо этого система сама самостоятельно опрашивает, какой у доменного имени IP-адрес домена, посылая запрос на 53 порт DNS-сервера из настроек сети.
Преобразование символьных адресов в IP
Раз уж мы затронули тему DNS в контексте модели TCP/IP, которая полностью описывает, как работает глобальная сеть, то важно упомянуть и то, с чем сталкиваются обычные пользователи. Людям проще запоминать символьные имена (например, google.com), чем числовые IP-адреса. Именно для этого и существует система доменных имен (DNS, Domain Name System). Когда пользователь вводит URL в браузере, происходит следующий процесс:
Браузер проверяет кеш на наличие соответствующего IP-адреса.
Если данных нет, запрос направляется к локальному DNS-серверу.
Если локальный DNS не содержит нужной информации, запрос передается вышестоящему DNS-серверу.
После получения IP-адреса браузер устанавливает соединение с сервером по протоколу TCP/IP.
DNS существенно упрощает работу с интернетом, делая его более удобным и доступным для пользователей.
Модель TCP/IP стала основой для построения глобального интернета благодаря своей практичности и модульности. В отличие от OSI, она не только теоретически описывает, но и практически реализует весь механизм связи между сетевыми устройствами, охватывая весь цикл передачи данных: от физической среды до прикладного взаимодействия.
Знание принципов работы TCP/IP помогает не только в понимании работы интернета, но и в решении реальных задач администрирования и диагностики сетей.