Для чего нужен протокол
Перейти к содержимому

Для чего нужен протокол

  • автор:

Зачем компьютерам протоколы?

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

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

Компьютерные протоколы помогают зафиксировать:

какие данные и в каком формате передаются;

алгоритм действий на каждом этапе обмена информацией.

Что еще нужно помнить о протоколах

Каждый протокол определяет правила выполнения конкретных задач. К примеру, HTTP (Hyper Text Transfer Protocol) дает возможность просматривать веб-страницы и файлы в интернете, а SSH (secure shell) используется для защищенного удаленного доступа к ОС.

Стандарты развиваются. Раньше для передачи данных через интернет компьютеры использовали сразу несколько моделей транспортных протоколов: TCP/IP, NWLink IPX/SPX, NetBEUI. Сейчас же есть единый стандарт — TCP/IP. В нем протокол TCP (Transmission Control Protocol) отвечает за надежность соединения между компьютерами и доставки сообщений, а IP (Internet Protocol) — за поиск компьютеров в рамках сети.

Для работы с каждым протоколом предназначено свое программное обеспечение. Например, для протокола HTTP это браузер.

Сетевые протоколы: для чего нужны и как устроены

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

Какими бывают? Всего сетевых протоколов насчитывается около 7000, но большая их часть применяется для решения узких задач. В целом их можно классифицировать по системам, в которых они работают, а таковых всего две: TCP\IP и OSI.

Понятие сетевого протокола

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

Понятие сетевого протокола

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

Такая система называется стеком протоколов, где протоколы являются средством реализации данного взаимодействия. Здесь можно провести аналогию с неким алгоритмом решения задачи и программой, выполняющей данный алгоритм.

Каждый протокол может быть программно реализован несколькими способами. Так, компания Microsoft для своей системы Windows NT внедрила регламент IPX, представленный в виде ПО NWLink. Этот же протокол реализовала Novell, но он отличается своими характеристиками.

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

Павел Симонов - исполнительный директор Geekbrains

Скачивайте и используйте уже сегодня:

Павел Симонов - исполнительный директор Geekbrains

Топ-30 самых востребованных и высокооплачиваемых профессий 2023

Поможет разобраться в актуальной ситуации на рынке труда

doc иконка

Подборка 50+ бесплатных нейросетей для упрощения работы и увеличения заработка

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

ТОП-100 площадок для поиска работы от GeekBrains

Список проверенных ресурсов реальных вакансий с доходом от 210 000 ₽

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

Сетевые протоколы Интернета

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

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

Сетевые протоколы Интернета

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

OSI (Open Systems Interconnect)

В сетевых протоколах OSI как многоуровневая модель использовалась изначально. В соответствии с ней существует 7 уровней:

  • Приложение

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

  • Представление

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

  • Сессия

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

  • Транспорт

На этом уровне OSI данные непосредственно передаются. После этого обоими узлами осуществляется проверка успешной доставки пакетов.

  • Сеть

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

  • Соединение

Определяется способ соединения с удаленным устройством, обеспечивается стабильность этого соединения. Для этого применяются соответствующие аппаратные средства.

  • Устройства

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

Итак, прежде чем достичь аппаратного обеспечения, информация проходит через несколько слоев.

Open Systems Interconnect

TCP/IP

Используемые сетевые протоколы в интернете работают чаще всего по модели TCP/IP. По сравнению с OSI количество уровней здесь сокращено до четырех:

  • Приложения

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

  • Транспорт

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

  • Сеть

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

  • Соединение

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

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

ТОП-100 площадок для поиска работы от GeekBrains
20 профессий 2023 года, с доходом от 150 000 рублей
Чек-лист «Как успешно пройти собеседование»

Чтобы зарегистрироваться на бесплатный интенсив и получить в подарок подборку файлов от GeekBrains, заполните информацию в открывшемся окне

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

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

Глобальный интернет-протокол (IP) объединил все компьютеры в одну сеть. Это самая простая технология, созданная прежде всего для маршрутизации дейтаграмм. Проще говоря, этот протокол определяет маршрут движения пакетов по сетевым узлам. Каждое устройство, подключенное к сети, идентифицируется по IP-адресу для того, чтобы пакеты доходили до нужного адресата. Таким устройством может быть, например, компьютер или удаленный принтер.

Сетевые протоколы канального уровня (в том числе IP), однако, обладают низкой надежностью. Здесь отсутствует обязательная проверка успешной доставки пакетов и целостности этих пакетов. Этот протокол лишь пересылает данные.

Перед отправкой пакетов необходимо определить целевой порт. Специально для этого в данном случае введена отдельная адресная система. Адрес сетевого протокола IP может представлять собой либо 32-битную (для 4 версии), либо 128-битную (для 6 версии) запись. В отправляемый пакет заранее заносится техническая информация: заголовок (header) и сведения для доставки (payload).

Версии протокола отличаются разрядностью: IPv4 состоит из четырех разделов и поддерживает 32 разряда, вмещая до 4 294 967 296 адресов. Используется по умолчанию и отличается простотой. Главным недостатком четвертой версии можно назвать весьма ограниченный адресный ресурс.

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

Протокол IPv6 является уже 128-битной системой и поддерживает гораздо больший адресный диапазон. Здесь доступно примерно 2 в 128 степени адресов, записываемых как последовательность 32-х шестнадцатеричных чисел, равномерно сгруппированных по 8-ми разделам. Этот протокол, напротив, достаточно сложен для администрирования. Поэтому хостеры предоставляют в аренду серверы с установленным по умолчанию IPv4. Хотя арендаторы обычно вправе попросить изменить протокол на IPv6.

Позволяет узлам интернета обмениваться информацией. С точки зрения модели OSI действует на транспортном уровне.

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

Сетевой протокол TCP обладает следующими функциями:

  • Нумерация сегментов

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

  • Управление потоком

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

  • Контроль ошибок

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

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

Протоколы — это правила в интернете, по которым устройства с разными операционными системами и программным обеспечением обмениваются данными. С их помощью, например, пользователь Safari на MacBook получает сообщение, отправленное через Chrome на Android.

Чтобы обмениваться данными было удобнее, задачи по их отправке и получению разделены. Создана архитектура «клиент-сервер», где клиент отправляет запрос, а сервер принимает его и возвращает ответ.

Сервер — это специальная программа, или мощный компьютер, его ещё называют хост-системой. Клиент — любое устройство для работы с сайтом, например, ноутбук, смартфон или бортовой компьютер в автомобиле.

Веб-приложение — это клиент-серверное приложение, в котором клиентом выступает браузер. Допустим, на сервере хранится HTML-страница с кодом. Браузер получает файл и показывает этот код как привычную страницу сайта.

Браузер отправляет запрос, а сервер принимает его и возвращает ответБраузер отправляет запрос, а сервер принимает его и возвращает ответ

Какие бывают протоколы

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

�� Хочется разобраться в протоколах?

У нас появился курс «Протоколы и сети». Он научит вас понимать принципы передачи данных и защищать свой код от атак.

Internet Protocol — IP

IP отвечает за поиск компьютеров в сети по их IP-адресам. Ещё он предоставляет стратегию маршрутизации, то есть составляет оптимальный маршрут для передачи данных.

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

Работу IP можно сравнить с почтовым отделением: протокол направляет IP-пакеты по интернету так же, как почта рассылает письма по всему миру. При доставке почта использует пункты передачи: письмо из отделения сначала попадает на поезд, потом на грузовик и в конце вручается адресату. В интернете тоже есть «пункты передачи» — их называют маршрутизаторами. Цель маршрутизатора — отправить пакет в пункт назначения по самому короткому пути. Если всё идёт хорошо, пакет прибывает на ближайший к получателю маршрутизатор, который точно знает, куда его отправить. Но бывает и так, что какой-то из маршрутизаторов на пути взломан или вышел из строя, и тогда выбирается другой путь:

Множество соседних путей делает передачу данных более надёжнойМножество соседних путей делает передачу данных более надёжной

Уникальный IP-адрес есть у каждого домена. Он записывается в виде четырёх чисел от нуля до 255 — например, 74.125.20.113. Введите этот адрес в браузерную строку и посмотрите, на какой сайт вы попали.

DNS связывает IP-адрес с понятным для людей доменным именем, например, 178.79.181.169 превращается в htmlacademy.ru:

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

DNS-сервер — это и есть «список всех контактов», то есть IP-адресов, которые там хранятся. Каждому IP-адресу присвоен домен. И когда мы вводим в строке браузера имя домена, то происходит запрос к DNS-серверу — запрашивается IP-адрес.

SSL/TLS

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

TCP и UDP

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

HTTP и HTTPS

HTTP и HTTPS предназначены для передачи данных и в итоге пользователи могут просматривать веб-страницы. На самом деле HTTPS — это не отдельный протокол, а расширение HTTP. Он безопаснее, так как использует SSL/TLS для шифрования обычных запросов и ответов.

HTTP — один из самых используемых протоколов в интернете, поэтому посмотрим подробнее, как он работает.

Протокол работает в формате запрос-ответ с двумя участниками общения:

  • клиент — формирует запросы и обрабатывает ответы;
  • сервер — обрабатывает запросы и формирует ответы.

Клиент делает запрос на сервер для передачи каждого ресурса: файлов HTML, CSS, JavaScript, изображений или видеофайлов. Затем сервер отвечает на запрос, отправляя ресурс.

Представим, что мы создали HTML со следующей разметкой:

Это простой HTML-файл, в котором подключены два ресурса: стилевой файл style.css и изображение logo.svg. Браузер запросит три ресурса: index.html, style.css и logo.svg.

Для каждого запроса и ответа открывается своё TCP-соединение. При каждом соединении происходит трёхстороннее «рукопожатие»: клиент и сервер трижды обмениваются пустыми пакетами данных, чтобы удостовериться в существовании друг друга и готовности к работе с данными:

Запрос-ответ выглядит так:

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

Такое «рукопожатие» делает загрузку страницы медленнее. Чтобы решить проблему, разработчикам приходится сокращать количество загружаемых ресурсов, например, использовать спрайты или разделять файлы по разным доменам — этот метод называется domain sharding. Такие манипуляции уменьшают количество TCP-соединений, хотя и создают свои трудности.

HTTP/2

HTTP/2 — улучшенная версия HTTP. По данным Can I Use, его поддерживают большинство браузеров.

Главное нововведение этого протокола — одно TCP-соединение на разные запросы, или мультиплексирование:

Как выглядит запрос-ответ в HTTP/2:

Ещё в HTTP/2 появился push-сервер, то есть сервер может отправлять больше ответов на один клиентский запрос. Например, если клиент запрашивает файлы index.html, style.css и logo.svg, то сервер отправит сразу три файла. Без push-сервера клиенту нужно запрашивать каждый файл отдельно

Поэтому многие оптимизации под HTTP при переходе на HTTP/2 уже не нужны. Например, можно отказаться от разделения ресурсов по доменам.

HTTP/3

HTTP/3 — третья версия HTTP, основанная на QUIC — протоколе, который предполагает быстрое подключение к интернету через UDP.

Главное преимущество HTTP/3 — сокращение задержки при установке соединения. QUIC достаточно одного «рукопожатия», чтобы установить безопасный сеанс. А ещё HTTP/3 работает поверх UDP, поэтому скорость доставки данных быстрее, чем у HTTP и HTTP/2 поверх TCP.

Протокол уже получил статус предложенного стандарта, то есть браузеры почти завершили работу над поддержкой протокола. Но пока поддержки недостаточно, чтобы переводить сайт с HTTP/2 на HTTP/3.

WebSockets

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

Протокол WebSockets используют там, где важна скорость доставки данных, например, в чатах и мессенджерах, играх, онлайн-трансляциях. Он, скорее всего, не пригодится при разработке простых веб-приложений, небольших CMS или при использовании REST API, где достаточно HTTP-запросов GET, POST, PUT и DELETE.

Зачем разбираться в протоколах и сетях

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

Выбор технологии для приложения

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

Защита данных

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

Оптимизация приложения под протоколы

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

Например, чтобы оптимизировать приложение под HTTP/1, нужно уменьшить количество TCP-соединений. Для этого разработчики сокращают количество файлов: все стили объединяют в styles.css, а все скрипты — в scripts.js. Для HTTP/2 такая оптимизация не нужна, поэтому можно разделить общие CSS и JS-файлы на отдельные и подключать на страницу только необходимые.

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

Если приложение оптимизировано к HTTP/2, то для перехода на HTTP/3 ничего не нужно делать: все оптимизации подойдут и для HTTP/3.

Прохождение собеседований

Знание протоколов и сетей повышает ценность фронтендера и влияет на его зарплату. Чтобы успешно пройти собеседование на мидла в крупные компании, полезно знать TCP/IP, HTTP/HTTPS, DNS и WebSocket. Ещё нужно хотя бы на базовом уровне знать про безопасность: XSS-атаки и CORS — а разобраться в этой теме без знания протоколов не получится.

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

Протокол

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

Освойте профессию
«Cистемный администратор»

Протоколы в информатике описывают, в каком формате будут передаваться данные, как будет выглядеть процедура их передачи. Еще в них обычно прописано, как устройства будут «договариваться» друг с другом при контакте и что делать с ошибками, если они возникнут. Например, протокол доступа к каталогам (LDAP) регламентирует способ получения и изменения информации в каталоге.

Станьте универсальным специалистом по администрированию Linux с нуля

cables_2 2-PhotoRoom 1 (3)

Для чего нужны протоколы

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

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

Например, при помощи протоколов люди могут открывать сайты: браузер на компьютере связывается с сервером по протоколу HTTP или HTTPS. Благодаря FTPпротоколу по интернету можно передавать файлы, а протокол BitTorrent позволяет потоково скачивать данные.

Кто работает с протоколами

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

В узком смысле с протоколами работают сетевые инженеры и системные администраторы, которые настраивают сервера и инфраструктуру сети. С протоколами приходится сталкиваться бэкенд-разработчикам и DevOps-инженерам. Есть и более специфические профессии: например, инженеры телекоммуникационных систем или специалисты, работающие с системами «умных» домов.

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

Благодаря тому что протоколов много, для каждого «уровня» связи можно назначить своего специалиста и распределить нагрузку. Поэтому не возникает ситуации, когда один человек отвечает за все задачи разом.

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

Виды протоколов

По типу задач протоколы делятся на физические и логические.

Физические

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

Логические

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

Что такое модели

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

Например, все сайты используют один и тот же набор протоколов — из моделей OSI и TCP/IP. Поэтому компьютер пользователя может связаться с любым доступным в сети сайтом.

  • Без модели OSI не работал бы интернет — на всех уровнях, начиная с частоты электрических сигналов, проходящих по сети.
  • Без TCP/IP сайты и компьютеры не могли бы общаться друг с другом, даже если физически связь налажена.
  • Без технологии Bluetooth, которая объединяет протоколы разных беспроводных устройств, мы не смогли бы пользоваться ни TWS-наушниками, ни умными колонками.

Сетевая модель OSI

OSI расшифровывается как Open Systems Interconnection model — открытая модель взаимосвязи между сетями. Она считается эталоном для разных систем связи. В модели архитектура сети поделена на семь уровней — от самого низкого, то есть близкого к железу, до самого высокого, близкого к пользователю.

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

Разберем уровни модели OSI подробнее.

Физический уровень

Самый первый и низкий уровень. Он описывает, по какому принципу информация переводится в физические сигналы: радиосигналы, электрические импульсы, свет. На этом уровне расположены протоколы, которые переводят информацию в сигнал и обратно в биты, отвечают за ее передачу по кабелю или в эфир. Примеры протоколов этого уровня — Bluetooth, Wi-Fi или GSM, по которому реализована мобильная связь. А устройства физического уровня — это, например, сетевой адаптер на компьютере.

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

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

Канальный уровень разделяют на два подуровня: MAC управляет доступом к среде, например к кабелю, а LLC отвечает за передачу, проверку и преобразование данных.

Сетевой уровень

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

Транспортный уровень

Четвертый уровень задает «правила дорожного движения» при передаче данных. Для него неважно, что это за данные и по какому маршруту они следуют, — он отвечает за механизм, например за то, чтобы данные от разных устройств передавались по очереди. Протоколы транспортного уровня формируют эту очередь, объединяют короткие пакеты данных в один большой или разделяют слишком большие пакеты на несколько маленьких. Еще протоколы отвечают за надежность передачи сообщений, чтобы данные не «потерялись» и не повредились по пути. Некоторые даже требуют от адресата сообщить, что данные получены. На этом уровне работают протоколы TCP, UDP и другие — они тоже используются в интернет-сети.

Сеансовый уровень

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

Уровень представления

Шестой уровень отвечает за преобразование информации. До этого мы говорили о пакетах данных — на уровне представления эти пакеты конвертируются в понятные нам форматы, например JPG-картинку или текстовый файл. Обратно это тоже работает: информацию, которую надо передать по сети, протоколы переводят в удобный для передачи вид. Еще они могут кодировать и декодировать данные, сжимать их и распаковывать. Наиболее известный протокол этого типа — XDR, который умеет правильно преображать данные для разных операционных систем.

Прикладной уровень

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

Протоколы модели TCP/IP

TCP/IP — это главная модель интернет-технологий. Название состоит из имен двух протоколов: TCP и IP. Мы упоминали их выше, но тут расскажем подробнее — на их взаимодействии работает весь интернет.

TCP. Transmission Control Protocol, или протокол управления передачей, помогает надежно передавать и принимать данные. Согласно модели OSI он находится на транспортном уровне — это своеобразный регулировщик для движения информации. TCP работает так:

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

TCP стал самым популярным транспортным протоколом доступа в интернете благодаря своей «заботливости»: он проверяет целостность данных и запрашивает их снова, если надо. В итоге все передается как надо и не теряется по пути.

IP. Название расшифровывается как Internet Protocol — протокол интернета. Если TCP отвечает за процесс передачи данных, то IP — за маршрут. Он относится к третьему уровню OSI, сетевому. Вот что делает этот протокол сети интернет:

  • присваивает компьютерам в сети уникальные IP-адреса;
  • соотносит эти адреса с аппаратными — MAC-адресами;
  • создает логические соединения между разными адресами;
  • определяет маршрут, по которому пойдет пакет данных.

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

Связка TCP/IP — ключевая в устройстве сети. Некоторые определения включают в модель и другие протоколы, важные для интернета, например HTTP или DNS, даже Ethernet с канального уровня. Но основу все равно составляют TCP и IP.

Что такое UDP/IP

Иногда вместо протокола TCP в той же модели используется другой транспортный протокол — UDP. Тогда говорят о модели UDP/IP, а иногда ее называют частным случаем TCP/IP. Название означает User Datagram Protocol — протокол пользовательских датаграмм. Датаграмма в этом случае — название пакета данных. UDP проще и быстрее, чем TCP, но не так заботится о целостности информации:

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

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

Другие известные примеры протоколов

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

HTTP. HTTP или HTTPS — буквы, с которых начинается любой адрес в интернете. Они означают HyperText Transfer Protocol, протокол передачи гипертекста. Это прикладной протокол, который передает информацию между веб-сайтом и компьютером пользователя. При этом компьютер пользователя выступает как клиент, а сайт — как сервер. Клиентов может быть много, сервер — один.

HTTPS. Буква S в HTTPS означает Secure — это расширение HTTP, позволяющее шифровать данные при передаче. Так их не получится украсть или подсмотреть, пока они передаются от клиента к серверу и обратно.

FTP. File Transfer Protocol — по протоколу в сети передаются файлы. Он, как и HTTP, работает по модели клиент-сервер: дает пользователю, то есть клиенту, доступ к файлам на сервере. Это очень старый протокол, который существовал еще до появления IP. Сейчас его в основном используют вебмастера и разработчики при работе с хостингами сайтов.

P2P. HTTP — не единственный протокол передачи данных. Еще есть P2P — пиринговые, или децентрализованные сети. В отличие от HTTP, в них нет клиентов и серверов, а есть равноправные участники, каждый из которых может выполнять обе функции. P2P — довольно большая группа технологий, она содержит разные протоколы. Например, BitTorrent или Tor — частично децентрализованные сети, работающие по одноименным протоколам. А I2P, тоже обеспечивающий анонимность, — полностью децентрализованный. Еще на основе P2P-технологий реализованы криптовалюты и вычисления с помощью блокчейна.

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

SSL/TLS. Это протоколы, по которым обеспечивается шифрование в HTTPS. SSL — более старое название, TLS — новая версия протокола. Благодаря им информация по HTTPS может шифроваться: для этого используют пары ключей, публичный и приватный.

SSH. Расшифровывается как Secure SHell — это еще один безопасный протокол, который работает с использованием TCP. Протокол нужен, чтобы удаленно управлять операционной системой и при этом шифровать информацию, которая будет передаваться между устройствами. Например, разработчики пользуются SSH, когда загружают код на GitHub.

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

Шуточные протоколы. Существует несколько протоколов, которые создавались как шутка — удивительно, но у некоторых из них даже есть реализации. Например, IP over Avian Carriers — пересылка IP-пакетов с помощью почтовых голубей. Его придумали в 1990 году, а в 2001-м реализовали: из девяти отправленных голубями пакетов данных вернулось четыре, то есть потери составили 55,6%. А HTCPCP — гипертекстовый протокол управления кофеваркой — реализован как расширение HTTP, и ошибку 418 оттуда поддерживают разные веб-фреймворки, например Django или Flask. Эта ошибка гласит: I’m a teapot — Я чайник. А чайник приготовить кофе не сможет.

Если вы хотите узнать больше про веб-технологии и протоколы — запишитесь на курсы. Будет много практики и интересных реальных задач.

Станьте универсальным специалистом по администрированию Linux с нуля и разверните собственный кластер. Перед вами откроется широкая область для реализации и развития: от сисадмина до CTO

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *