Что такое и какие бывают сетевые протоколы передачи данных

Бывает, находишь интересную статью на vc и хочешь переслать ее кому-то. Копируешь ссылку, переходишь в мессенджер и нажимаешь «Отправить» — все просто. Или не совсем?

Что такое и какие бывают сетевые протоколы передачи данных

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

Дальше длинный лонгрид про все актуальные виды сетевых протоколов. Сохраняйте в закладках, если хотите иметь под рукой теоретическую базу.

Содержание статьи для удобной навигации:

Что такое сетевой протокол

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

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

Впервые принципы обмена информацией между открытыми системами были описаны в абстрактной модели OSI. Она продемонстрировала весь процесс обмена данными от их передачи по кабелям и проводам как физических объектов до представления пользователю в виде веб-страниц.

Что такое и какие бывают сетевые протоколы передачи данных

Модель OSI — эталон взаимодействия устройств в сети

Open Systems Interconnection model — концепция, поэтапно описывающая то, как устройства в локальных и глобальных сетях обмениваются данными.

Авторы модели — группа инженеров из Международной организации по стандартизации (ISO) — начали разрабатывать иерархическую модель OSI в 1977 году и полностью доработали ее к 1984 году. Тогда они опубликовали модель как стандарт ISO 7498, положив в его основу принцип разделения процесса коммуникации в сети на семь ключевых подпроцессов.

Каждый из уровней модели выполняет конкретную задачу:

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

В 2024 году семиуровневая модель считается устаревшей. Но она стала смысловым фундаментом стека TCP/IP, на котором сегодня основана работа большинства устройств в интернете.

TCP/IP объединяет 5—7 уровни OSI в один прикладной уровень, а уровни 1—2 OSI — в уровень сетевого интерфейса
TCP/IP объединяет 5—7 уровни OSI в один прикладной уровень, а уровни 1—2 OSI — в уровень сетевого интерфейса

Модель TCP/IP — основа работы интернета

Transmission Control Protocol/Internet Protocol — комплексная модель передачи цифровых данных по сети. Группа протоколов TCP/IP отправляет данные по сети, формируя их в пакеты и контролируя доставку.

TCP/IP проще OSI, она содержит всего четыре уровня, а не семь:

  • на канальном уровне данные бьются на части (фреймы) и передаются между устройствами с помощью MAC-адресов;
  • на межсетевом уровне идет маршрутизация данных: они делятся на пакеты и направляются по маршрутизаторам и коммутаторам на IP-адреса устройств-получателей;
  • на транспортном уровне происходит передача данных: медленнее, но гарантированно в целости по протоколу TCP, или быстрее, но с возможными упущениями по UPD;
  • на самом верхнем прикладном уровне налаживается связь между приложениями, помогая пользователям посылать электронные письма, пользоваться браузерами или отправлять друг другу те самые статьи с vc.

Помимо TCP и IP в модели задействованы и другие популярные протоколы. Все они участвуют в процессе на разных уровнях и решают разные.

Важно отметить, что для всех протоколов приняты специальные серии документов — Request for Comments (RFC). Они включают в себя официальные спецификации этих протоколов, а также рекомендации, методологии и различные технические руководства. Каждая из таких серий имеет уникальный номер, под которым цитируется и к которому можно обратиться.

Примерно так выглядит процесс маршрутизации данных по сети
Примерно так выглядит процесс маршрутизации данных по сети

Протоколы сетевого уровня

Сетевые протоколы — это набор правил и стандартов, которые определяют, как данные форматируются, передаются, обрабатываются и принимаются между различными устройствами по сети.

Маршрутизация — это процесс определения пути в сети, по которому будут передаваться данные от отправителя к получателю. Он включает в себя выбор оптимального из всех возможных маршрута, доступного для достижения конечного узла.

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

Маршрутизаторы (Routers) отвечают за анализ заголовков пакетов данных и принятие решений о направлении их передачи. Для хранения информации о доступных путях и правилах доставки пакетов к определенным сетевым адресам они используют таблицы маршрутизации, которые могут быть либо сконфигурированы вручную, либо сформированы автоматически с помощью протоколов динамической маршрутизации.

Internet Protocol (IP) и IP-адреса

Internet Protocol — протокол, который гарантирует, что нужные данные доберутся до нужного устройства. Для этого он связывает устройства в сети и нарезает данные для пакетной отправки по IP-адресам.

Есть два вида действующих версий протокола IP: IPv4 (IP version 4) и IPv6 (IP version 6). Протокол IPv4 назначает 32-битные адреса, которые состоят из четырех блоков (октета) чисел от 0 до 255 и хороши своей простотой. В IPv6 для создания адресной маршрутизации используются 128-битные адреса, состоящие из восьми блоков, в каждый из которых записывается четыре 16-ричных цифры. Этот протокол имеет уйму преимуществ и один ключевой недостаток — сложность сетевого администрирования.

В версии IPv4 используются 32-разрядные адреса, а в IPv6 – 128-разрядные
В версии IPv4 используются 32-разрядные адреса, а в IPv6 – 128-разрядные

ICMP — протокол управляющих сообщений

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

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

OSPF — протокол маршрутизации состояния канала

Open Shortest Path First, или протокол кратчайшего пути, отвечает за внутреннюю динамическую маршрутизацию. Он следит за состоянием канала и с помощью алгоритма Дейкстры находит оптимальный путь передачи данных.

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

Протоколы транспортного уровня

Если на межсетевом уровне для данных прокладывается маршрут, то сама их передача идет уже на транспортном уровне. И здесь в дело вступают протоколы TCP, UDP, SCTP и RTP.

TCP — протокол обмена сообщениями в интернете

Transmission Control Protocol — протокол управления передачей. Он следит, чтобы данные гарантированно дошли до получателя в целости.

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

  • если доставка пакета данных была успешной, TCP отправляет следующую порцию;
  • если нет, то повторяет отправку.

TCP предпочтителен в тех случаях, когда надежность соединения важнее скорости передачи данных.

Структура заголовка в протоколе UDP
Структура заголовка в протоколе UDP

UDP — аналог TCP с отличиями в поведении

Если же нужно гарантировать быструю передачу данных и при этом потеря их части не кажется такой уж большой бедой, стоит использовать протокол UDP.

User Datagram Protocol — протокол передачи пользовательских датаграмм, который не гарантирует доставку всех пакетов данных получателю, но обеспечивает высокую скорость их передачи.

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

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

Еще UDP часто используется при организации DOS и DDoS-атак, потому что протокол не требует от сервера подтверждения для доставки на него запросов. Стандартная атака в таком случае выглядит как отправка множества датаграмм, которые серверу приходится обрабатывать, затрачивая свои вычислительные мощности. А чтобы защититься от них, на помощь приходит уже другой протокол — SCTP.

SCTP — протокол управления потоком

Stream Control Transmission Protocol — протокол транспортного уровня, работающий по аналогии с TCP и UDP, но обеспечивающий при этом многопоточность, защиту от DDoS-атак и синхронное соединение между двумя хостами по двум и более независимым физическим каналам.

Для надежной передачи данных, обеспечения многопоточности и защиты от DDoS-атак был разработан протокол SCTP. Он взял лучшее от TCP и UDP, одновременно позволяя устанавливать соединение с сервером и передавать данные сообщениями.

SCTP все еще используется реже, чем TCP. Но у него есть ряд достоинств:

  • многопоточность. С помощью SCTP можно обеспечить параллельную обработку информации, одновременно передавая данные разным группам людей;
  • multi-homing. Еще с SCTP не нужно волноваться о том, что связь оборвется, ведь при использовании этого протокола система автоматически переключится на другой канал, если основной вдруг перестанет работать.
  • защита от DDoS. SCTP защищен от подобных атак с помощью механизма четырехэтапного рукопожатия (four-way handshake) и вводом маркера (cookie), что надежно защищает от атак типа SYN-flood.

Протоколы прикладного уровня

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

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

BGP обеспечивает передачу маршрутов между автономными системами
BGP обеспечивает передачу маршрутов между автономными системами

BGP — основной протокол динамической маршрутизации

Border Gateway Protocol — протокол пограничного шлюза, который предоставляет динамическую маршрутизацию. Он нужен для обмена данными внутри автономных систем.

BGP относится к протоколам прикладного уровня и работает поверх протокола транспортного уровня TCP (порт 179). Проще говоря, BGP связывает в интернете автономные системы, состоящие из IP-сетей и маршрутизаторов, которыми управляет один или несколько операторов с единой политикой маршрутизации.

HTTP и HTTPS — протоколы передачи гипертекста

Hyper Text Transfer Protocol — протокол передачи данных по схеме «запрос-ответ». Сам он состоит исключительно из текста, но способен передавать разные форматы файлов. Например, аудио, видео или текст.

Всё в интернете начинается с них — HTTP и HTTPS. В каждой ссылке всемирной паутины обязательно есть либо «http://», либо «https://». Зачем они нужны и какая между ними разница?

Работу HTTP-протокола в общем виде можно представить так:

  • вы вбиваете запрос в строку поиска браузера;
  • браузер распознает его и отправляет на сервер, где лежит то, что вы ищете;
  • с помощью специальной программы сервер «понимает» запрос, создает ответ в виде HTML с данными страницы и возвращает ответ браузеру;
  • браузер демонстрирует полученную информацию в виде страницы на экране устройства.

Таким образом, весь процесс отправки и получения данных строится на обмене HTTP-сообщениями: запросов (HTTP Requests) и ответов (HTTP Responses). Выглядят они, как несколько строчек текста, которые содержат:

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

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

  • 1** – Информация (Informational)
  • 2** – Успешность выполнения (Success)
  • 3** – Перенаправление (Redirection)
  • 4** – Ошибка клиента (Client Error)
  • 5** – Ошибка сервера (Server Error)

Важно сказать, что HTTP — это незащищенный протокол. При его использовании данные передаются открыто, их легко можно перехватить. Чтобы исключить такую возможность, нужно использовать протокол HTTPS, который предоставляет защищенное соединение за счет криптографических протоколов SSL (Secure Sockets Layer) и TLS (Transport Layer Security).

HyperText Transfer Protocol Secure — расширение протокола HTTP, которое гарантирует безопасность и объединяет в себе два протокола: HTTP и SSL или HTTP и TLS.

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

По данным <a href="https://api.vc.ru/v2.8/redirect?to=https%3A%2F%2Fletsencrypt.org%2Fstats%2F%23&postId=1449780" rel="nofollow noreferrer noopener" target="_blank">центра сертификации Let’s Encrypt</a> более 80% страниц в мире загружаются по HTTPS
По данным центра сертификации Let’s Encrypt более 80% страниц в мире загружаются по HTTPS
<a href="https://api.vc.ru/v2.8/redirect?to=http%3A%2F%2FCloud.ru%3Futm_source%3Dvc%26amp%3Butm_medium%3Darticle%26amp%3Butm_campaign%3Dstetviye_protokoly_06092024&postId=1449780" rel="nofollow noreferrer noopener" target="_blank">Мы в Cloud.ru</a> используем HTTPS – безопасный протокол передачи данных
Мы в Cloud.ru используем HTTPS – безопасный протокол передачи данных

FTP — протокол передачи данных

File Transfer Protocol — протокол для передачи файлов по TCP/IP между клиентом и сервером.

Сегодня протокол FTP используется реже, потому что не способен обеспечить защищенное соединение. Вместо него все чаще применяют SFTP — протокол, работающий поверх безопасного канала и использующий SSH в качестве основы.

Принцип работы DNS
Принцип работы DNS

DNS — справочник интернета

Domain Name System — протокол передачи данных по сети, работающий при поддержке сети серверов.

DNS работает как телефонная книга. Чтобы зайти на сайт, надо в ввести его имя в поисковой строке браузера, например, https://cloud.ru/. А DNS уже соединит с нужным ресурсом. То есть превратит 185.71.64.201 в cloud.ru. Для этого он использует свою внутреннюю «телефонную книгу» с IP-адресами сайтов, каждый из которых связан с доменным именем.

Для доступа к облачным ресурсам тоже может использоваться протокол DNS. Особенно это актуально, когда количество ресурсов постоянно растет. В этом случае с его помощью доменное имя связывается с IP-адресом виртуальной машины, объектного хранилища или базы данных.

При работе с облачными ресурсами DNS может давать множество приятных преимуществ. Например, система доменных имен Cloud.ru позволяет пользователям гибко настраивать доменные имена в виртуальных дата-центрах сервера, быстро и безопасно получать доступ к нужным ресурсам и обрабатывать миллионы запросов одновременно.

SSH — средство подключения к серверам

Secure Shell — сетевой протокол для удаленного управления операционной системой и туннелирования TCP-соединений. Шифрует весь трафик, включая передаваемые пароли.

SSH — протокол, который лежит в основе сетевого администрирования и нужен для управления удаленными операционными устройствами. Соединение по протоколу SSH проходит поэтапно:

  • сперва осуществляется открытие транспортного канала;
  • затем аутентификация;
  • и уже после – подключение.

Реализуется SSH соединение по схеме «клиент-сервер». Делается это с помощью демона — специальной программы, запущенной на удаленном устройстве. Демон подключается к нужному сетевому порту, проверяет запросы на подлинность и создает соответствующую среду при вводе верных учетных данных.

Вместо заключения

Знание сетевых протоколов упрощает и повышает эффективность любых действий в сети. А понимание принципов их работы позволяет управлять всем процессом разработки приложений и сервисов и их предоставления.

11
11
реклама
разместить
Начать дискуссию