Тариф успешно добавлен в корзину
В корзину
url image

Модель TCP/IP: что это и как работает

Еще в 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:

Уровни моделей OSI и TCP/IP

Основные задачи стека TCP/IP

  • Фрагментация информации: данные разбиваются на пакеты для удобства передачи.
  • Маршрутизация: выбор оптимального маршрута между отправителем и получателем.
  • Проверка целостности: корректировка ошибок и повторная передача утерянных данных.
  • Управление соединением: установка, поддержка и завершение связи между узлами.

Уровни модели TCP/IP

Как уже отмечали выше, модель TCP/IP состоит из четырех основных уровней, каждый из них выполняет специфические функции:

  1. Канальный уровень 

    Отвечает за передачу данных в пределах одной физической сети или отдельного ее сегмента. Он регулирует способы взаимодействия устройств с каналом передачи, такими как Ethernet или Wi-Fi. Обнаруживает и исправляет ошибки, возникающие при передаче на физическом уровне. Основные задачи канального уровня:

    • Создание кадров (фреймов): Информация группируется в структурированные единицы — кадры (протоколы LLC, HDLC, PPP, Ethernet и др.) — для отправки через физическую среду. Используется система адресации, где идентификаторами устройств служат MAC-адреса.
    • Доступ к среде: Устанавливаются механизмы, определяющие, в каком порядке устройства получают возможность передавать данные, что помогает избежать конфликтов при одновременной передаче. Канальный уровень также отвечает за корректную доставку фреймов получателю. Среди протоколов этого уровня: ARP — сопоставляет IP-адреса с MAC-адресами.
    • Контроль целостности данных: Используются методы проверки, например, вычисление контрольных сумм, для обнаружения поврежденных при передаче данных.
  2. Межсетевой уровень

    Уровень, который также называют сетевым, отвечает за перемещение пакетов между разными сетями. В его основе лежит протокол 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.
  1. Транспортный уровень

    На этом уровне обеспечивается надежная доставка информации между сетевыми устройствами. Ключевыми протоколами здесь выступают TCP и UDP (User Datagram Protocol).

    Во время передачи данных неизбежны риски потерь, но не все типы информации одинаково чувствительны к этому. Так, потеря нескольких символов в текстовом документе способна значительно исказить его содержание, в то время как выпадение пары кадров из видеопотока вряд ли будет заметно зрителю. Поэтому:

    • TCP используется, когда важна целостность доставленных пакетов и ожидается ответ, чтобы проверить его.
    • В UDP целостность не важна, ответный пакет не ожидается, за счет чего обеспечивается скорость.
Протоколы TCP и UDP

Основные задачи транспортного уровня:

  • управление соединением: организация, поддержание и корректное завершение соединений между узлами сети,
  • контроль скорости передачи: регулирование потока данных для недопущения перегрузки каналов и получающих устройств,
  • обнаружение и исправление ошибок: использование методов контроля целостности, включая контрольные суммы и повторные отправки поврежденных пакетов.
  1. Прикладной уровень

На этом уровне работают программы, к которым идет обращение по сети. Самый простой пример: веб-сервер, который отображает в браузере содержимое сервера в виде сайта.

Функции прикладного уровня:

  • создание интерфейсов для приложений: предоставление стандартных методов, позволяющих программам подключаться к сетевым ресурсам,
  • управление сеансами: контроль за началом, поддержанием и корректным завершением сессий обмена данными между приложениями,
  • форматирование и подготовка данных: преобразование информации в формат, подходящий для передачи по сети и последующей обработки на стороне получателя.

В архитектуре 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 в браузере, происходит следующий процесс:

  1. Браузер проверяет кеш на наличие соответствующего IP-адреса.

  2. Если данных нет, запрос направляется к локальному DNS-серверу.

  3. Если локальный DNS не содержит нужной информации, запрос передается вышестоящему DNS-серверу.

  4. После получения IP-адреса браузер устанавливает соединение с сервером по протоколу TCP/IP.

DNS существенно упрощает работу с интернетом, делая его более удобным и доступным для пользователей.

 

Модель TCP/IP стала основой для построения глобального интернета благодаря своей практичности и модульности. В отличие от OSI, она не только теоретически описывает, но и практически реализует весь механизм связи между сетевыми устройствами, охватывая весь цикл передачи данных: от физической среды до прикладного взаимодействия. 

Знание принципов работы TCP/IP помогает не только в понимании работы интернета, но и в решении реальных задач администрирования и диагностики сетей.

Этот материал был полезен?

Скидка новым клиентам
Закажите сервер сегодня и получите скидку на первый месяц аренды!
Наш сайт использует cookies Вы можете отключить их в настройках браузера, но это может ограничить функционал. Оставаясь на сайте, вы соглашаетесь с использованием cookies.