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

Сетевые протоколы: что это и для чего используются

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

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

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

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

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

С помощью сетевых протоколов открывается доступ к сайтам в интернете, онлайн-сервисам, хранилищам данных, сетевому оборудованию, IP-телефонии.

Сетевые ресурсы могут работать интерактивно или в реальном времени. Ресурсы реального времени — это системы потокового вещания, видеоконференции, IP-телефония. К интерактивным, то есть обеспечивающим совместную работу, можно отнести мессенджеры, почту, форумы, а также приложения, использующие искусственный интеллект. Мы ведь можем поговорить с голосовым помощником, например с Алисой, верно?

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

Модель OSI

Одной из первых попыток стандартизировать сетевое общение стала модель OSI (The Open Systems Interconnection model, модель взаимодействия открытых систем), предложенная международной организацией ISO (International Organization for Standardization):

Модель состоит из семи уровней (layers), каждый из которых решает свою задачу. 

  1. Физический уровень определяет метод передачи сигналов (электрические сигналы, световые сигналы, радиоэфир). 

  2. Канальный уровень занимается аппаратной адресацией, необходимой идентификации устройств и доставки сигналов. 

  3. Сетевой уровень находит пути передачи данных, то есть маршрутизирует трафик. 

  4. Транспортный уровень предназначен для установки соединения, управления потоком и доставки данных. 

  5. Сеансовый уровень как следует из названия, поддерживает сеансы соединений (сессии). На этом уровне сетевые инженеры складывают свои полномочия и в игру вступают прикладные программисты. 

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

  7. Прикладной уровень определяет взаимодействие сети и пользователя. На этом уровне мы с вами отправляем запросы к интернет-ресурсам, файлам и электронной почте.

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

Модель TCP/IP

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

По историческим причинам номера уровней позаимствованы из модели OSI. Необходимо отметить, что разделение протоколов на уровни оказалось очень удобным, так как позволило развивать технологии каждого слоя независимо от остальных. Например, когда на смену модемам, коаксиальным кабелям и витой паре пришли оптоволоконные сети, модель TCP/IP продолжила своё существование как ни в чём не бывало.

Благодаря такой гибкости модель TCP/IP завоевала всеобщую популярность и фактически стала основой современного интернета.

Важно иметь представление о том, что в состав набора протоколов TCP/IP входят такие составляющие межсетевого уровня, как BGP (Border Gateway Protocol),  который применяется для маршрутизации трафика между разными автономными системами, OSPF (Open Shortest Path First), использующийся для построения маршрутов внутри одной автономной системы, и ICMP (Internet Control Message Protocol), отвечающий за диагностику взаимодействия сетевых устройств и сообщения об ошибках.

Но наиболее важную для нас роль играют сетевые протоколы транспортного и прикладного уровней. Давайте рассмотрим их подробней.

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

Internet Protocol (IP). Именно этот протокол объединил отдельные компьютеры и локальные сети во всемирную паутину, известную нам как современный интернет. Одной из базовых концепций протокола IP стала адресация сети, благодаря чему и появились знакомые нам IP-адреса.

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

Система адресации протокола IP изначально использовала 32-битные адреса, известные нам как IP четвёртой версии, IPv4. Однако из-за бурного развития интернета адреса IPv4 в настоящее время почти исчерпаны, поэтому в современные сети постепенно внедряется протокол IPv6, решающий проблему нехватки адресного пространства за счёт поддержки 128-битных адресов, а также устраняющий некоторые другие ограничения четвёртой версии. 

Впрочем, несмотря на очевидные преимущества IPv6, сетевые администраторы не торопятся внедрять этот протокол по ряду причин.

  1. Ограниченная поддержка устройств и программного обеспечения. Многие старые устройства и программное обеспечение не поддерживают IPv6.
  2. Миграция с IPv4 на IPv6 требует значительных усилий и ресурсов. Для перехода на IPv6 компании должны пересмотреть свою сетевую инфраструктуру, а это зачастую непросто и довольно затратно.
  3. Совместимость с IPv4. IPv4 все ещё широко используется, и многие компании продолжают полагаться на него. IPv6 сети должны быть совместимы с IPv4, чтобы обеспечить безопасный и плавный переход, что требует дополнительных настроек и конфигураций.
  4. Отсутствие необходимости. Некоторые компании считают, что во внедрении IPv6 нет необходимости, особенно если у них достаточно адресов IPv4 или текущая сетевая инфраструктура удовлетворяет потребности проекта.

Однако, с учетом исчерпания запасов IPv4 адресов и расширения сетей IoT (интернета вещей) и облака, внедрение IPv6 становится все более необходимым для обеспечения роста и развития сетей в будущем.

Другой важнейшей составляющей современного интернета стал протокол TCP, работающий на транспортном уровне.

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

1. TCP (Transmission Control Protocol, протокол управления передачей). TCP работает поверх протокола IP и предназначен для управления передачей данных в интернете. Это ключевой протокол взаимодействия в модели TCP/IP.

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

Давайте ненадолго остановимся на процедуре передачи данных.

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

Чтобы снизить вероятность потери данных и обеспечить надёжность передачи, пакеты обычно содержат контрольную сумму (checksum), которая позволяет проверить целостность полученных данных. Также в пакеты включается порядковый номер (sequence number), который обозначает порядок пакетов в передаваемой последовательности. В случае потери пакета или его повреждения, получатель может запросить повторную передачу только этого конкретного пакета, а не всего набора данных. 

Чтобы доставку данных можно было надёжно контролировать, к каждой части данных добавляется служебная информация — заголовок (header):

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

Поскольку протокол TCP работает поверх IP, к каждому сегменту добавляется ещё один заголовок, содержащий IP-адреса отправителя и получателя:

Теперь перед нами полноценный пакет информации, который можно было бы передать по сети. Но для того, чтобы обеспечить точную доставку получателю, необходимо знать его физический адрес, называемый MAC-адресом (Media Access Control address). Для этого пакет снабжается дополнительной служебной информацией, содержащей MAC-адреса отправителя и получателя, и окончанием (footer) с контрольной суммой пакета:

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

2. UDP (User Datagram Protocol, протокол пользовательских датаграмм). В отличие от TCP, не гарантирует доставку пакетов получателю, но работает быстрее.

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

При UDP трансляции отправитель просто посылает пакеты данных (датаграммы), не заботясь о том, будут ли они доставлены и существует ли получатель вообще, и не ожидая какого-либо подтверждения приёма.

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

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

1. HTTP(S) (HyperText Transfer Protocol, протокол передачи гипертекста). Изначально предназначался для получения с серверов гипертекстовых документов в формате HTML (HyperText Markup Language, язык гипертекстовой разметки). В настоящее время фактически стал универсальным средством взаимодействия между узлами интернета.

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

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

Впрочем, гибкость протокола HTTP позволяет не только получать гипертекстовые документы, но и отправлять различные данные, такие как HTML-формы, JSON, AJAX и многие другие.

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

Но из-за большого количества промежуточных узлов пакеты, передаваемые по протоколу HTTP, могут быть легко перехвачены. Кто угодно, имея доступ к любому оборудованию, участвующему в обмене, может считать и расшифровать проходящие данные. Поэтому было создано расширение HTTP, получившее название HTTPS (HyperText Transfer Protocol Secure, безопасный протокол передачи гипертекста).

HTTPS обеспечивает защищённое соединение, используя криптографические сетевые протоколы SSL (Secure Sockets Layer, уровень защищённых сокетов) и TLS (Transport Layer Security, защита транспортного уровня) для шифрования данных.

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

Изображение замка слева от адреса сайта означает, что ваше подключение безопасно.

2. SSH (Secure Shell, безопасная оболочка) — ещё один важнейший протокол прикладного уровня. В первую очередь этот протокол используется для управления удалёнными операционными системами и фактически является основой сетевого администрирования.

Если вы хоть раз настраивали интернет-сайт или сетевую службу, монтировали сетевые папки или запускали команды на удалённом компьютере, то этот протокол вам, безусловно, уже знаком.

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

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

3. FTP(S) (File Transfer Protocol, протокол передачи файлов). Это один из самых старых протоколов прикладного уровня. FTP появился задолго до HTTP, но используется и по сей день для обмена данными в сети и для удалённой работы с файлами.

FTP, так же как и HTTP, работает поверх протокола TCP, но открывает одновременно два канала — для передачи данных и для контроля соединения. Возможности удалённой работы с файлами ограничены специфичным для FTP набором команд. В основном, это просмотр каталогов, создание, удаление и передача файлов.

Поскольку протокол FTP передаёт данные в открытом виде, использовать его для передачи чувствительной информации не рекомендуется. Для усиления безопасность было разработано расширение этого протокола, известное как FTPS (File Transfer Protocol + SSL, или FTP/SSL). Как следует из названия, FTPS добавляет к базовому функционалу FTP создание шифрованных сессий SSL или TLS.

4. SFTP (Secure File Transfer Protocol, безопасный протокол передачи файлов). Несмотря на схожее название, SFTP не является расширением FTP, а работает поверх протокола SSH прикладного уровня.

В качестве практического преимущества протокола SFTP перед FTPS можно отметить отсутствие необходимости устанавливать на сервер какие-либо дополнительные программы — служба SSH поддерживает весь необходимый функционал «из коробки».

5. (S)RTP (Real-time Transfer Protocol, протокол передачи реального времени). Используется при трансляции видео и аудио потоков. Протокол прикладного уровня RTP был разработан для обеспечения минимальной задержки воспроизведения. Это может быть важно, например, в видео/аудио чатах, в системах видеонаблюдения или интернет-телефонии VoIP, где значительное отставание изображения или звука от оригинала недопустимо.

RTP позволяет передавать данные нескольким получателям одновременно, используя многоадресную рассылку через IP (IP multicast). Эти возможности позволили протоколу RTP фактически стать стандартом для передачи мультимедийных данных по IP-сетям.

Для обеспечения безопасной передачи данных используется версия протокола SRTP (Secure Real-time Transport Protocol, безопасный протокол передачи реального времени), расширяющая RTP набором механизмов защиты.

Наиболее известная технология, использующая протокол RTP (SRTP) — WebRTC (Web Real-Time Communications, коммуникации по сети в реальном времени). WebRTC предназначена для организации прямой передачи потоковых данных между двумя браузерами без использования серверов. Поскольку поддержка этой технология включена во все современные браузеры, установка дополнительных приложений не требуется. В настоящее время эта возможность активно используется, например, при проведении вебинаров и видеоконференций в интернете, а также в системах прокторинга при контроле качества дистанционного обучения.

Обзор основных протоколов прикладного уровня был бы неполным без упоминания таких важных стандартов, как IMAP(S) (Internet Message Access Protocol) — протокол доступа к электронной почте, а также DHCP (Dynamic Host Configuration Protocol, протокол динамической настройки узла) и DNS (Domain Name System, система доменных имён).

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

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

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

Скидка 25% новым клиентам!
Закажи сервер сегодня и получи скидку на первый месяц аренды!