Протокол в IT — это набор правил, по которым передаются данные. С помощью протоколов связываются между собой компьютеры в сети, разные устройства и программы. Они выполняют определенные правила и поэтому понимают друг друга.
Протоколы в информатике описывают, в каком формате будут передаваться данные, как будет выглядеть процедура их передачи. Еще в них обычно прописано, как устройства будут «договариваться» друг с другом при контакте и что делать с ошибками, если они возникнут. Например, протокол доступа к каталогам (LDAP) регламентирует способ получения и изменения информации в каталоге.
Для чего нужны протоколы
Компьютерные протоколы предназначены, чтобы устройства могли корректно связываться и общаться друг с другом. Можно представить протокол в виде языка: если два устройства или программы передают данные по-разному, они друг друга не поймут. Поэтому специализированные устройства или софт могут не работать с продуктами других производителей — у них разные протоколы.
Протоколов в мире сотни, и они описывают стандарты связи на любом уровне — начиная с частоты электрических импульсов и заканчивая передачей данных между программами на компьютере.
Например, при помощи протоколов люди могут открывать сайты: браузер на компьютере связывается с сервером по протоколу 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 — Я чайник. А чайник приготовить кофе не сможет.
Если вы хотите узнать больше про веб-технологии и протоколы — запишитесь на курсы. Будет много практики и интересных реальных задач.
0 комментариев