Протокол TCP/IP: Что это и как работает стек протоколов

Виртуальная машина
бесплатно навсегда

Забрать
Avatar icon

Марина Суворова

Редактор блога

Статья

Время чтения

8 минут

Переписка в мессенджерах, обмен email-сообщениями, просмотр видео и чтение новостей в лентах пабликов — всеми этими процессами заведует стек протоколов TCP/IP. Как эти протоколы работают, за что отвечает каждый из них и зачем они используются в облаке, разбираемся в этой статье. 

Что такое стек протоколов TCP/IP и какую роль он играет в компьютерных сетях

Стек TCP/IP — это модель, которая описывает алгоритм отправки данных от источника информации к пользователю. В стеке есть два протокола:

  1. Transmission Control Protocol (TCP) отслеживает обмен данными и управляет передачей информации, контролируя ее путь до получателя.

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

Протоколы работают совместно: IP прокладывает маршрут, а TCP следит за корректностью отправки. И если вдруг из-за какой-то ошибки пакет с информацией не доходит до пользователя или теряется, то TCP восстанавливает данные.

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

  1. Обеспечивать связь между компьютерами для обмена информацией.

  2. Маршрутизировать и адресовать данные с помощью IP-протокола, который отвечает за присвоение уникальных адресов устройствам в интернете. Именно Internet Protocol в ответе за прокладывание маршрутов, по которым пакеты данных уходят от отправителя к получателю через роутеры и сложные сети.

  3. Пересылать информацию на транспортном уровне протокола TCP, где проверяется доставка данных, контролируется порядок пакетов и восстанавливается потерянная информация при появлении ошибок.

  4. Поддерживать работу электронной почты или видео.

  5. Обеспечивать масштабируемость и гибкость сети, интеграцию новых технологий.

Принцип работы и уровни TCP/IP

В рамках TCP/IP различают два типа сокетов — TCP (потоковые) и UDP (датаграммные). Они работают как конечные точки двунаправленной связи между двумя программами, гарантируя отправку и получение данных по сети:

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

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

Работает стек TCP/IP в пять этапов — их и проходят данные, чтобы дойти до пользователя:

  • Этап 1. Пользователь вводит нужный адрес в адресную строку браузера, — например, https://cloud.ru/ — и нажимает Enter.

  • Этап 2. Браузер создает HTTP-запрос и направляет его на сервер интернет-провайдера с запрашиваемой страницей.

  • Этап 3. Протокол IP, используя DNS-системы, находит сервер и делит страницу на пакеты с данными.

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

  • Этап 5. Браузер получает пакеты, объединяет их и выводит искомую страницу на экран пользователя.

Стоит отметить, что стек TCP/IP часто сравнивают с OSI — базовой моделью процесса передачи данных в интернете, которая состоит из семи уровней. Он действительно очень на нее похож, но значительно упрощен для облегчения понимания и анализа сетевых процессов.

На каждом уровне стека TCP/IP есть протоколы, которые регулируют перемещение информации по сети:

  • на канальном уровне протокол Ethernet контролирует канальное и физическое взаимодействие с сетью, передавая данные между устройствами;

  • на межсетевом уровне IP и ARP-протоколы гарантируют инкапсуляцию и декапсуляцию данных;

  • на транспортном уровне протоколы TCP и UDP отвечают за предоставление информации без ошибок;

  • на прикладном уровне HTTP, THCP и DNS отвечают за обмен сообщениями и передачу информации.

Давайте рассмотрим каждый из вышеупомянутых протоколов подробнее.

Семь протоколов стека TCP/IP

Каждый из протоколов в стеке — важный «винтик» в сложном механизме передачи данных. Именно благодаря им компьютеры, ноутбуки и роутеры понимают друг друга, а веб-приложения и сервисы обмениваются информацией быстро и без проблем. 

IP-протокол позволяет устройствам обмениваться данными в интернете

Internet Protocol передает данные между девайсами в виде IP-датаграмм — их еще называют IP-пакетами — которые содержат заголовки с IP-адресами и саму информацию для отправки. 

В заголовке IP-пакета содержится информация, которая нужна для доставки и маршрутизации данных
В заголовке IP-пакета содержится информация, которая нужна для доставки и маршрутизации данных

Используется протокол IP для решения разного рода важных задач, в числе которых:

DNS-протокол связывает адреса в интернете и локальной сети

Протокол DNS связывает между собой название сайта — его доменное имя — и IP-адрес. За этот процесс отвечают три составляющие протокола DNS: резолверы, DNS-пакеты и зоны: 

  • Резолверы — посредники между пользователем и сетью серверов в системе доменных имен. Они получают URL сайта, на который нужно перейти, и ищут его IP-адрес в своей базе данных. Если адрес есть, то резолвер передает его на устройство пользователя, а если нет, то связывается с DNS-серверами, которые передают ему адрес из своего адресного пула.

  • DNS-пакеты (их еще называют сниферами) нужны для отправки запросов и ответов между программами, резолверами и серверами для определения IP-адреса узла в системе DNS. Они содержат идентификатор запроса, закодированное доменное имя, вид и класс запроса, а также ответы, серверы и дополнительные данные.

DNS-пакет обрабатывает запросы и ответы по преобразованию доменного имени сайта в IP-адрес
DNS-пакет обрабатывает запросы и ответы по преобразованию доменного имени сайта в IP-адрес
  • Зоны контролируют авторитетные серверы имен, а также делят их на публичные и внутренние. В публичных зонах все доменные имена видимы в интернете, а во внутренних — доступны только для использования в сетях виртуального частного облака (VPC). 

ARP определяет адреса

Address Resolution Protocol, или протокол определения адреса в локальной сети, нужен, чтобы находить MAC-адрес компьютера по имеющемуся IP-адресу. Он гарантирует необходимую связку между абстрактной схемой адресации IP и физической адресацией, используемой сетевыми устройствами в работе TCP/IP-сетей. Буферная память протокола содержит пары IP-адресов и MAC-адресов, чтобы снижать количество отправленных запросов и экономить трафик.

Протокол ARP связывает IP и MAC-адреса
Протокол ARP связывает IP и MAC-адреса

ARP умеет:

  1. Разрешать адреса. То есть определять физические (MAC) адреса устройств по их IP-адресам для корректной передачи информации.

  2. Кешировать данные. Проще говоря, ускорять процесс передачи информации между девайсами.

  3. Находить конфликты. Например, обнаруживать и решать ситуации, в которых компьютеры используют один IP-адрес.

Помимо определения адреса в локальной сети, для диагностики сетевых проблем и мониторинга протокол применяет специальные аналитические устройства — ARP-снифферы или ARP-сканеры, которые находят аномалии и следят за трафиком. 

ICMP управляет сообщениями

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

  • Контроль за потоком информации. Протокол задействует сообщения «Source Quench» для замедления трафика от источника при росте нагрузки.

  • Диагностика сети. Для проверки сети ICMP использует команды ping и traceroute, которые помогают сетевым администраторам проверять соединение, а также следить за маршрутами пакетов с информацией.

  • Уведомления об ошибках. Сообщения ICMP предупреждают об ошибках в сетевом взаимодействии — например, сообщение «Destination Unreachable» используется, если у роутера не получается отправить пакет обратно на хост-источник.

ICMP-сообщения появляются при ошибках в передаче информации в интернете. Например, они приходят, если запрашиваемая услуга недоступна или роутер не отвечает
ICMP-сообщения появляются при ошибках в передаче информации в интернете. Например, они приходят, если запрашиваемая услуга недоступна или роутер не отвечает

TCP контролирует передачу данных

Transmission Control Protocol, или протокол управления передачей данных, контролирует обмен информацией между устройствами с помощью процесса «трехстороннего рукопожатия» (TCP three way/triple handshake). Он нужен, чтобы данные, передающиеся с компьютера на компьютер, не потерялись.

Установка надежного соединения с помощью TCP three way
Установка надежного соединения с помощью TCP three way

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

  1. SYN (Synchronize) применяется, чтобы устанавливать соединение между двумя хостами. Он отправляется в начале процесса «трехстороннего рукопожатия».

  2. ACK (Acknowledgment) подтверждает получение информации. У данных транспортного уровня в протоколе TCP должен быть этот флаг для подтверждения получения предыдущих пакетов.

  3. FIN (Final) указывает на завершение соединения. Хост передает FIN, чтобы сообщить о намерении больше не отправлять данные.

  4. RST (Reset) прерывает соединение, если появилась ошибка, и очищает буфер обмена.

  5. PSH (Push) просит получателя отправить информацию, которая накопилась в приемном буфере приложения, дальше.

  6. URG (Urgent) показывает высокий приоритет данных и указывает на их обработку.

Опции в заголовке TCP помогают сделать передачу данных еще более эффективной. Например:

  • MSS (Maximum Segment Size) предоставляет максимальный размер сегмента принятой информации.

  • Window Scale Option расширяет размер окна, чтобы поддерживать пропускной канал.

  • Selective Acknowledgment (SACK) сообщает получателю, какие непоследовательные фрагменты до него дошли, позволяя отправителю повторно пересылать только недостающие фрагменты данных.

  • Timestamp Option засекает время прохождения сегментов, и улучшает производительность.

UDP отправляет сообщения с устройства на устройство

User Datagram Protocol, или протокол пользовательских датаграмм (сообщений), позволяет веб-приложениям и сервисам пересылать сообщения другим компьютерным приложениям по IP-сети на высокой скорости. Быстрая передача датаграмм осуществляется за счет того, что UDP не оповещают об установке каналов передачи или путей данных, а сразу отправляет пакеты с данными на устройство получателя.

UDP применяют при создании соединений в Zoom, онлайн-играх, программах для передачи файлов и медиаконтента для ускорения передачи данных в реальном времени
UDP применяют при создании соединений в Zoom, онлайн-играх, программах для передачи файлов и медиаконтента для ускорения передачи данных в реальном времени

DHCP получает нужную конфигурацию с DHCP-сервера

Dynamic Host Configuration Protocol, или протокол динамической настройки узла, гарантирует роутеру, коммутатору или патч-панели получение IP-адреса и других параметров, которые нужны для работы в стеке TCP/IP. Этот протокол получает нужную конфигурацию в четыре шага: поиск (discovery), предложение (offer), запрос (request) и подтверждение (acknowledgment).

Название модели получения конфигурации — DORA — складывается из первых букв каждого ее этапа.
Название модели получения конфигурации — DORA — складывается из первых букв каждого ее этапа.

Резюме

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

Содержание

  • Что такое стек протоколов TCP/IP и какую роль он играет в компьютерных сетях
  • Принцип работы и уровни TCP/IP
  • Семь протоколов стека TCP/IP
  • Резюме

Вам может понравиться