Протоколы передачи данных в компьютерных сетях
У этого термина существуют и другие значения, см. Протокол.
Это заготовка статьи о компьютерных сетях. Помогите Википедии, дополнив её.
Когда мы пользуемся интернетом, то чаще всего даже не задумываемся, как именно данные передаются по сети от одного компьютера к другому. Это вовсе не магия, а работа протоколов передачи данных. Их используют веб-разработчики, сетевые инженеры, системные администраторы и обычные пользователи, даже когда они об этом не думают. Рассказываем, какие протоколы бывают в IT и как они работают.
Что такое UDP/IP
Известный мем про разницу между TCP и UDP
Информация, переданная по UDP, может потеряться или дублироваться, прийти не по порядку — но сами датаграммы, если придут, будут полностью целыми. UDP применяют реже, чем TCP, в основном там, где важны скорость и производительность, — например, в системах реального времени или на высоконагруженных серверах онлайн-игр.
Протокол в IT
Протокол в IT — это набор правил, по которым передаются данные. С помощью протоколов связываются между собой компьютеры в сети, разные устройства и программы. Они выполняют определенные правила и поэтому понимают друг друга.
Протоколы в информатике описывают, в каком формате будут передаваться данные, как будет выглядеть процедура их передачи. Еще в них обычно прописано, как устройства будут договариваться друг с другом при контакте и что делать с ошибками, если они возникнут. Например, протокол доступа к каталогам (LDAP) регламентирует способ получения и изменения информации в каталоге.
Мы, люди, используем для общения языки. Сетевые протоколы, с помощью которых общаются компьютеры, можно сравнить с нашими языками. Протоколов, как и языков, очень много. Но для того, чтобы два устройства в сети понимали друг друга, они должны разговаривать на одном языке — использовать один протокол передачи данных.
Что такое модели
Если у каждого устройства свой протокол и нет общих, они не смогут связываться. Чтобы такого не происходило с большей частью техники, протоколы объединяют в модели. Модель — это своего рода набор протоколов и других инструментов, который собирается в систему и может решать более сложные задачи, чем один протокол.
Например, все сайты используют один и тот же набор протоколов — из моделей OSI и TCP/IP. Поэтому компьютер пользователя может связаться с любым доступным в сети сайтом.
Что такое сетевой протокол?
Протоколы сетевого уровня
- Протокол передачи данных (UDP)
- Протокол интернета (IP)
Протоколы транспортного уровня
- Протокол управления передачей (TCP)
- Протокол UDP
Протоколы прикладного уровня
- DHCP (Протокол динамической конфигурации хоста)
- FTP (Протокол передачи файлов)
Каждый уровень протокола выполняет свою функцию в передаче данных через компьютерные сети. Важно выбирать соответствующие протоколы в зависимости от задачи и требований к сети.
Сетевой протокол — это набор правил, которым следуют подключённые друг к другу сетевые устройства при обмене данными. Протокол можно описать программой или встроить в аппаратную часть сетевого оборудования. При этом оборудование может быть самым разным — компьютеры, маршрутизаторы, модемы, точки доступа, телефоны, сетевые принтеры, охранные камеры, компоненты умного дома и так далее.
С помощью сетевых протоколов открывается доступ к сайтам в интернете, онлайн-сервисам, хранилищам данных, сетевому оборудованию, IP-телефонии.
Сетевые ресурсы могут работать интерактивно или в реальном времени. Ресурсы реального времени — это системы потокового вещания, видеоконференции, 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), отвечающий за диагностику взаимодействия сетевых устройств и сообщения об ошибках.
Протоколы транспортного и прикладного уровней
Наиболее важную для нас роль играют сетевые протоколы транспортного и прикладного уровней.
Сетевая модель OSI
OSI расшифровывается как Open Systems Interconnection model — открытая модель взаимосвязи между сетями. Она считается эталоном для разных систем связи. В модели архитектура сети поделена на семь уровней — от самого низкого, то есть близкого к железу, до самого высокого, близкого к пользователю.
На каждом уровне свой набор протоколов связи, которые могут общаться с протоколами на том же уровне либо на один выше или ниже. Более высокие уровни опираются в работе на более низкие — структура сети выглядит как пирамида.
Физический уровень
Физический уровень
На самом первом и самом низком уровне сетевой архитектуры находится физический уровень. Он описывает, как информация преобразуется в физические сигналы, такие как радиосигналы, электрические импульсы или свет. На этом уровне находятся протоколы, которые отвечают за передачу информации через среды передачи, такие как кабель или беспроводные сети. Примеры протоколов физического уровня включают Bluetooth, Wi-Fi и GSM, используемые для мобильной связи. Устройства физического уровня могут быть, например, сетевые адаптеры на компьютерах.
Канальный уровень
Второй уровень архитектуры сети – канальный уровень – уже сфокусирован на железе, таких как коммутаторы, мосты и сетевые карты. На этом уровне также присутствуют программные средства, такие как драйверы сетевых карт. Канальный уровень описывает взаимодействие устройств через физические каналы передачи, определяя, как принимать, интерпретировать и упаковывать сигналы данных. Протоколы канального уровня получают биты на входе, создают кадры (фрагменты данных) и выполняют проверку на ошибки. Примеры протоколов на втором уровне включают в себя Ethernet и FDDI.
Сетевой уровень
Третий уровень архитектуры – сетевой уровень – определяет путь, по которому данные будут передаваться. Протоколы на этом уровне определяют маршруты передачи данных, соотносят физические и логические адреса устройств и проводят маршрутизацию. Протокол IP является одним из наиболее известных примеров протоколов на сетевом уровне. Устройства сетевого уровня включают маршрутизаторы и роутеры.
Транспортный уровень
Четвертый уровень сетевой архитектуры – транспортный уровень – осуществляет управление передачей данных. Протоколы этого уровня отвечают за эффективную доставку данных от отправителя к получателю. Протоколы TCP и UDP являются примерами протоколов транспортного уровня.
Сеансовый уровень
Сеансовый уровень сетевой архитектуры отвечает за установление, управление и завершение сеансов связи между программами на разных устройствах. Протокол SOCKS является примером протокола сеансового уровня.
Уровень представления
Уровень представления отвечает за преобразование данных в формат, который может быть передан и принят устройствами в сети. На этом уровне протоколы обеспечивают согласование форматов данных между различными устройствами и приложениями.
Протокол HTTP(S)
HTTP(S) – это протокол передачи гипертекста, изначально предназначенный для получения с серверов гипертекстовых документов в формате HTML. В настоящее время протокол HTTP широко используется для взаимодействия между узлами интернета.
Как работает HTTP(S)
Обмен данными по протоколу HTTP инициируется получателем, например, веб-браузером. Полученный документ может содержать текст, разметку, стили, файлы видео и аудио, скрипты и другое. Отправитель и получатель обмениваются одиночными сообщениями, а не потоком данных. Это означает, что сервер, обслуживающий веб-сайт, не хранит информацию о предыдущих запросах.
Гибкость и возможности HTTP
Протокол HTTP позволяет не только получать гипертекстовые документы, но и отправлять различные данные, такие как HTML-формы, JSON, AJAX и многое другое. Поскольку HTTP является протоколом верхнего уровня, существует много посредников между отправителем и получателем, такие как прокси-серверы, маршрутизаторы и модемы.
Безопасность HTTP(S)
Так как данные, передаваемые по протоколу HTTP, могут быть перехвачены из-за многочисленных промежуточных узлов, создано расширение HTTPS. HTTPS обеспечивает защищенное соединение с использованием криптографических протоколов SSL и TLS для шифрования данных. Иконка замка слева от адреса сайта обозначает безопасное подключение.
Примеры протоколов прикладного уровня
- HTTP(S) – протокол передачи гипертекста
- FTP – протокол передачи файлов
- SMTP – протокол передачи почты
Каждый из этих протоколов выполняет определенные функции в области взаимодействия приложения с сетью.
2. SSH (Secure Shell, безопасная оболочка) — ещё один важнейший протокол прикладного уровня. В первую очередь этот протокол используется для управления удалёнными операционными системами и фактически является основой сетевого администрирования.
Если вы хоть раз настраивали интернет-сайт или сетевую службу, монтировали сетевые папки или запускали команды на удалённом компьютере, то этот протокол вам, безусловно, уже знаком.
Кроме того, 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, система доменных имён).
Впрочем, детальное рассмотрение всех существующих в настоящее время протоколов в рамках одного обзора вряд ли возможно — в современных компьютерных сетях их насчитывается более семи тысяч.
Надеемся, сегодня нам удалось прояснить хотя бы часть довольно запутанной теории сетей, порой вызывающей бурные споры даже у специалистов. Помните, что и к сложным вещам можно относиться просто. Особенно, если разбить информацию на составляющие, как это делают рассмотренные в этом обзоре сетевые модели.
Для чего нужны протоколы
Компьютерные протоколы предназначены, чтобы устройства могли корректно связываться и общаться друг с другом. Можно представить протокол в виде языка: если два устройства или программы передают данные по-разному, они друг друга не поймут. Поэтому специализированные устройства или софт могут не работать с продуктами других производителей — у них разные протоколы.
Протоколов в мире сотни, и они описывают стандарты связи на любом уровне — начиная с частоты электрических импульсов и заканчивая передачей данных между программами на компьютере.
Например, при помощи протоколов люди могут открывать сайты: браузер на компьютере связывается с сервером по протоколу HTTP или HTTPS. Благодаря FTP—протоколу по интернету можно передавать файлы, а протокол BitTorrent позволяет потоково скачивать данные.
Виды протоколов
По типу задач протоколы делятся на физические и логические.
Физические
Отвечают за физику сигналов, которые проходят в сетях. Они определяют частоту радиосигналов, мощность и частоту электрических импульсов — или световых сигналов в случае с оптоволокном. Например, Wi-Fi описывает стандарты соединения между точками доступа и диапазоны частот для беспроводной связи.
Логические
Протоколы отвечают за передачу данных и обмен информацией — поясняют, в каком формате ее передавать и что она означает. Если физический протокол — возможность говорить, то логический протокол передачи данных — это язык. Большинство айтишников работает именно с логическими протоколами: например, IP, который описывает формат пакетов данных и адресацию компьютеров в сети.
Протоколы модели TCP/IP
TCP/IP — это главная модель интернет-технологий. Название состоит из имен двух протоколов: TCP и IP. Мы упоминали их выше, но тут расскажем подробнее — на их взаимодействии работает весь интернет.
TCP. Transmission Control Protocol, или протокол управления передачей, помогает надежно передавать и принимать данные. Согласно модели OSI он находится на транспортном уровне — это своеобразный регулировщик для движения информации. TCP работает так:
TCP стал самым популярным транспортным протоколом доступа в интернете благодаря своей «заботливости»: он проверяет целостность данных и запрашивает их снова, если надо. В итоге все передается как надо и не теряется по пути.
IP. Название расшифровывается как Internet Protocol — протокол интернета. Если TCP отвечает за процесс передачи данных, то IP — за маршрут. Он относится к третьему уровню OSI, сетевому. Вот что делает этот протокол сети интернет:
IP не заботится о целостности данных и о механизме передачи — за них отвечает уже TCP. Выходит, что протоколы дополняют друг друга: IP определяет, куда отправить информацию, а TCP — как это сделать.
Связка TCP/IP — ключевая в устройстве сети. Некоторые определения включают в модель и другие протоколы, важные для интернета, например HTTP или DNS, даже Ethernet с канального уровня. Но основу все равно составляют TCP и IP.
Другие известные примеры протоколов
С некоторыми протоколами разных уровней мы имеем дело постоянно — давайте посмотрим, как они работают и что собой представляют.
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 — Я чайник. А чайник приготовить кофе не сможет.
Протоколы транспортного уровня
1. TCP (Transmission Control Protocol, протокол управления передачей). TCP работает поверх протокола IP и предназначен для управления передачей данных в интернете. Это ключевой протокол взаимодействия в модели TCP/IP.
Основная работа TCP — обеспечить и гарантировать передачу данных, которая заключается в разбиении на части (сегменты), отправке их по назначению и восстановлении исходной информации на стороне получателя. Важно, что протокол TCP контролирует передачу данных, благодаря чему гарантирует доставку сегментов.
Давайте ненадолго остановимся на процедуре передачи данных.
Информация, передаваемая по сети, представляет собой некоторый набор нулей и единиц — битов. Длина такого набора может быть очень большой, поэтому передавать сразу все данные невыгодно — если в процессе передачи хотя бы один бит потеряется, все данные придётся передавать заново. Именно поэтому набор данных, предназначенный для передачи, делится на части и передаётся отдельно.
Чтобы снизить вероятность потери данных и обеспечить надёжность передачи, пакеты обычно содержат контрольную сумму (checksum), которая позволяет проверить целостность полученных данных. Также в пакеты включается порядковый номер (sequence number), который обозначает порядок пакетов в передаваемой последовательности. В случае потери пакета или его повреждения, получатель может запросить повторную передачу только этого конкретного пакета, а не всего набора данных.
Чтобы доставку данных можно было надёжно контролировать, к каждой части данных добавляется служебная информация — заголовок (header):
Примерно так выглядит единица передаваемой информации, называемая сегментом. Заголовок каждого сегмента содержит порт отправителя и порт получателя. Доставка каждого сегмента контролируется согласно протоколу и при необходимости повторяется.
Теперь перед нами полноценный пакет информации, который можно было бы передать по сети. Но для того, чтобы обеспечить точную доставку получателю, необходимо знать его физический адрес, называемый MAC-адресом (Media Access Control address). Для этого пакет снабжается дополнительной служебной информацией, содержащей MAC-адреса отправителя и получателя, и окончанием (footer) с контрольной суммой пакета:
Эта структурная единица, похожая на матрёшку, называется кадром. Именно в таком виде информация передаётся через локальные сети от отправителя к получателю. При желании вы можете убедиться в этом лично, воспользовавшись одной из программ-снифферов, например Wireshark.
Протокол транспортного уровня UDP используется для связи без установки соединения. Например, если вы смотрите онлайн-трансляцию или слушаете радио, важно, чтобы ваш проигрыватель не отставал от эфира, а возможная потеря отдельных пакетов не принципиальна, верно?
При UDP трансляции отправитель просто посылает пакеты данных (датаграммы), не заботясь о том, будут ли они доставлены и существует ли получатель вообще, и не ожидая какого-либо подтверждения приёма.
Впрочем, протокол UDP всё же требует указания портов отправителя и получателя, длины датаграммы и контрольной суммы так же, как этого требует TCP.
Протоколы сетевого уровня
Система адресации протокола IP изначально использовала 32-битные адреса, известные нам как IP четвёртой версии, IPv4. Однако из-за бурного развития интернета адреса IPv4 в настоящее время почти исчерпаны, поэтому в современные сети постепенно внедряется протокол IPv6, решающий проблему нехватки адресного пространства за счёт поддержки 128-битных адресов, а также устраняющий некоторые другие ограничения четвёртой версии.
Впрочем, несмотря на очевидные преимущества IPv6, сетевые администраторы не торопятся внедрять этот протокол по ряду причин.
Однако, с учетом исчерпания запасов IPv4 адресов и расширения сетей IoT (интернета вещей) и облака, внедрение IPv6 становится все более необходимым для обеспечения роста и развития сетей в будущем.
Другой важнейшей составляющей современного интернета стал протокол TCP, работающий на транспортном уровне.
Одной из первых попыток стандартизировать сетевое общение стала модель OSI (The Open Systems Interconnection model, модель взаимодействия открытых систем), предложенная международной организацией ISO (International Organization for Standardization):
Модель состоит из семи уровней (layers), каждый из которых решает свою задачу.
В настоящее время модель OSI устарела и представляет теперь лишь теоретический интерес, но заложенные в ней принципы входят в состав современных моделей, таких, как TCP/IP.
Протокол эксперимента и исследования
У экспериментатора могут быть процедуры определения широты для ослепления и контроля, но может потребоваться обосновать этот выбор, если результаты публикуются или предоставляются регулирующему органу. Если во время эксперимента известно, какие данные были отрицательными, часто возникают причины, почему эти данные не должны быть включены. Положительные данные редко рационализируются подобным образом.
Главное о протоколах передачи данных
🟡 Протокол передачи данных — это набор правил и соглашений, которые определяют, как устройства сети будут обмениваться информацией. Простыми словами — это правила «общения» между компьютерами или устройствами. Протоколы поддерживают единообразие и определенные стандарты. Некоторые протоколы с помощью шифрования гарантируют надежность и безопасность передачи данных, контролируют ошибки.
🟡 Протоколы объединяются в модели. Одна из самых незаменимых — OSI. Она построена по принципу пирамиды и определяет семь уровней — от низкого и самого близкого к железу до высокого и близкого к пользователю. Уровни OSI: физический, канальный, сетевой, транспортный, сеансовый, уровень представления и прикладной.
🟡 Весь интернет работает по протоколам модели TCP/IP. Если протокол IP определяет маршрут передачи данных между узлами, то TCP устанавливает соединения и отвечает за надежную передачу данных.
Кто работает с протоколами
В широком смысле любой человек пользуется протоколами каждый раз, когда заходит в интернет или подключает беспроводные наушники. Любая связь между устройствами возможна благодаря протоколам — иначе ничего бы просто не работало.
В узком смысле с протоколами работают сетевые инженеры и системные администраторы, которые настраивают сервера и инфраструктуру сети. С протоколами приходится сталкиваться бэкенд-разработчикам и DevOps-инженерам. Есть и более специфические профессии: например, инженеры телекоммуникационных систем или специалисты, работающие с системами «умных» домов.
Каждый из этих специалистов ведет работу с протоколами в своей отрасли. Например, сетевой инженер в компании должен хорошо понимать, как работают протоколы, связанные с интернетом, — это не значит, что он обязан разбираться в многочисленных протоколах «умных» устройств.
Благодаря тому что протоколов много, для каждого «уровня» связи можно назначить своего специалиста и распределить нагрузку. Поэтому не возникает ситуации, когда один человек отвечает за все задачи разом.
Протоколы передачи данных широко используют в разных областях информационных технологий. Вот кто работает с ними чаще всего.
Backend-разработчики — создают серверные приложения и веб-сервисы, которые обрабатывают запросы от клиентов с помощью протоколов HTTP.
Если вы хотели бы создавать полезные сервисы для миллионов людей, не откладывайте эту мечту, а начните идти к ней уже сейчас. Курс «Java-разработчик» от онлайн-университета Skypro станет важным шагом к востребованной IT-профессии, которая будет приносить удовольствие и деньги. Согласно zarplan.com, средняя зарплата Java-разработчика по России — 257 865 ₽.
На курсе вы научитесь писать код на язык Java, работать в GitHub и Trello, овладеете PostgreSQL, HTTP и другими инструментами. А в конце учебы получите диплом о профессиональной переподготовке.
DevOps-инженеры — отвечают за автоматизацию процессов разработки, тестирования и развертывания приложений. Они могут настраивать сетевую инфраструктуру и поддерживать правильную работу между компонентами системы с помощью различных протоколов.
Инженеры телекоммуникационных систем — работают с протоколами передачи данных на более низком уровне, поддерживают эффективную передачу данных через сети связи.
IoT-специалисты — протоколы важны в системах умного дома, где различные устройства должны обмениваться информацией для координации своей работы.
Сетевые инженеры — занимаются настройкой, обслуживанием и оптимизацией сетей, в том числе применяют различные протоколы для эффективного обмена данными.
Специалисты по кибербезопасности — заботятся о безопасности передачи данных и поддерживают защиту от угроз и атак.
Перечисленные профессионалы работают с протоколами в узком смысле. Протоколами передачи данных пользуются и обычные люди — когда заходят в интернет или просят умную колонку включить любимую песню.
Какие бывают протоколы передачи данных
Сначала нужно разобраться, что такое модель. Когда у устройств разные протоколы и нет общего, они не смогут связаться между собой. Чтобы избежать этого, протоколы объединяют в модели.
Модель — это план того, как компьютеры и устройства взаимодействуют, чтобы передавать информацию между собой. В модели объединяются разные протоколы, а те — в одну систему, которая способна решать более сложные задачи, чем один протокол.
Протоколы сетевой модели OSI
Одна из эталонных сетевых моделей — OSI (Open Systems Interconnection). Сейчас устарела, но с ее помощью можно лучше понять, как работают протоколы.
OSI определяет семь уровней — от низкого, самого близкого к железу, до высокого, близкого пользователю. Более высокие уровни, как в пирамиде, опираются на более низкие. Каждый уровень характеризуется определенными функциями.
Это нижний уровень архитектуры OSI. Протоколы на физическом уровне определяют методы передачи данных через физическую среду. Речь о кабелях, разъемах, коннекторах и других компонентах.
Физический уровень определяет способы представления битов информации в виде электрических или оптических сигналов, которые могут передаваться от одного устройства к другому. Физический уровень поддерживает синхронизацию передачи битов между устройствами — так получающая сторона может правильно интерпретировать передаваемые данные.
USB — поддерживает физическое соединение для подключения устройств: принтеры, клавиатуры, внешние накопители и другие.
Wi-Fi и Bluetooth — используются для беспроводной передачи данных.
Канальный уровень (Data Link Layer) поддерживает надежный и безошибочный обмен данными между устройствами, которые соединены в одной локальной сети.
Канальный уровень разбивает поток битов от физического уровня на логические группы — кадры, которые содержат информацию о передаваемых данных. Канальный уровень обнаруживает и исправляет ошибки, которые могли возникнуть при передаче данных по физической среде. Это повышает надежность.
Канальный уровень включает два подуровня: LLC и MAC. LLC (Logical Link Control) отвечает за управление логическим соединением между устройствами в сети. MAC (Media Access Control) управляет физическим доступом к среде передачи данных, например каналу связи.
Ethernet — передает данные по витой паре. Это стандарт для локальных сетей, который включает MAC-адресацию и механизмы контроля доступа.
Point-to-Point Protocol (PPP) — используется для установки соединения между двумя устройствами, например между компьютером и интернет-провайдером.
Wi-Fi (протоколы IEEE 802.11) — беспроводные технологии тоже включают протоколы канального уровня, чтобы управлять доступом к среде.
Сетевой уровень (Network Layer) управляет маршрутизацией — поддерживает логическое соединение и доставляет данные от отправителя к получателю через несколько промежуточных узлов — маршрутизаторов.
Сетевой уровень может разбивать данные на фрагменты, если размер данных превышает максимально допустимый размер для передачи через сеть. У получателя эти фрагменты собираются обратно в полный пакет.
IP (Internet Protocol) — один из самых распространенных протоколов сетевого уровня в интернете, который нужен для маршрутизации и передачи данных между сетями.
ICMP (Internet Control Message Protocol) — используется для обмена сообщениями об ошибках и помогает управлять сетевой диагностикой.
Транспортный уровень (Transport Layer) поддерживает эффективную и надежную передачу данных между устройствами в различных узлах сети. Транспортный уровень скрывает детали сетевой инфраструктуры от верхних уровней — это дает им удобный и стабильный канал передачи данных.
Транспортный уровень разбивает данные от низких уровней на более мелкие единицы — сегменты. Они передаются через сеть и затем собираются обратно в полные данные на стороне получателя. Этот уровень контролирует поток данных между отправителем и получателем, чтобы предотвратить перегрузку.
TCP (Transmission Control Protocol) — устанавливает соединения и поддерживает ориентированную на поток передачу данных.
Сеансовый уровень (Session Layer) синхронизирует диалог (сеанс) между приложениями на разных устройствах в сети. Этот уровень поддерживает механизмы подключения, поддержания и завершения сеанса, а еще управляет обменом данных между приложениями.
Сеансовый уровень помогает системе восстановиться после сбоев. Например, в случае потери связи, чтобы сеанс мог продолжиться в обычном состоянии. В некоторых системах, где используется понятие токена для управления доступом к ресурсам, сеансовый уровень может контролировать передачу токенов и их управление.
В современных сетевых приложениях редко используют сеансовый уровень. Многие из его функций интегрировались в функциональность более высоких уровней. Но есть и исключения. Например, SOCKS — регулирует прокси-сервер в сетях. Его используют, чтобы обходить ограничения доступа, сохранять анонимность или улучшать безопасность подключения к удаленным ресурсам.
Уровень представления (Presentation Layer) преобразует данные в понятный для человека формат: картинку, видео- или текстовый файл. Уровень представления выполняет задачи кодирования, сжатия, шифрования и другие операции, которые нужны, чтобы поддерживать совместимость и безопасность передачи данных.
JPEG (Joint Photographic Experts Group) — протокол сжатия изображений, который используют для кодирования и передачи изображений.
TLS (Transport Layer Security) и SSL (Secure Sockets Layer) — протоколы поддержания безопасной передачи данных через шифрование.
Прикладной уровень (Application Layer) — это самый верхний уровень архитектуры OSI, который далек от железа. Он включает приложения, которые напрямую взаимодействуют с пользователями: браузер, клиент электронной почты и так далее.
HTTP (Hypertext Transfer Protocol) — протокол для передачи гипертекстовых документов в сети, его используют для веб-браузеров и веб-серверов.
SMTP (Simple Mail Transfer Protocol) — протокол для отправки электронной почты.
FTP (File Transfer Protocol) — протокол для передачи файлов между устройствами.
Современные протоколы, по которым работает интернет
OSI хотя и считается эталоном, но со временем она устарела. Современные протоколы могут работать сразу на нескольких уровнях модели OSI. На смену ей пришла другая модель — TCP/IP.
TCP/IP — это сетевая архитектура, которая называется по имени двух протоколов, на которых построен интернет. Все новые сетевые протоколы опираются именно на нее. Модель TCP/IP, как и OSI, разделена на похожие уровни, но состоит она из четырех: канального, межсетевого, транспортного и прикладного.
Протокол IP
IP — это один из простых протоколов, который объединяет отдельные компьютеры в глобальную сеть. По сути этот протокол прокладывает маршрут от одного узла сети к другому.
Есть две основные версии протокола IP:
🟡 IPv4 (Internet Protocol version 4). 🟡 IPv6 (Internet Protocol version 6).
IPv4 использует 32-битные адреса. Раньше его постоянно использовали, но из-за ограниченного числа доступных адресов многие пользователи перешли к IPv6. IPv6 использует 128-битные адреса, он стал необходимым для устойчивости роста сетей.
IP разбивает данные на небольшие фрагменты во время передачи и восстанавливает их на получающей стороне. Еще этот протокол доставляет данные без виртуального соединения. Каждый пакет данных — дейтаграмма — перемещается от источника к назначению независимо от предыдущих и последующих пакетов.
Допустим, мы хотим открыть страницу https://sky.pro/. Кликаем по ссылке, ждем пару секунд и тут же можем изучать сайт. Но вот как выглядит этот процесс изнутри:
2️⃣ Этот пакет направляется через сеть и маршрутизаторы с помощью протокола IP, чтобы определить путь и доставить данные.
3️⃣ Веб-сервер обрабатывает запрос, формирует ответный пакет с веб-страницей и отправляет его обратно через сеть.
4️⃣ При возвращении к компьютеру протокол IP поддерживает сборку данных, и веб-браузер отображает запрошенную веб-страницу.
В онлайн-университете Skypro на курсе «Python-разработчик» вы с нуля научитесь создавать сервисы на языке Python. За 10 месяцев освоите все необходимые инструменты, чтобы чувствовать себя уверенным разработчиком. Даже если вы никогда не программировали, у вас другой опыт или образование — мы обучим этой востребованной профессии.
Лекции ведут преподаватели с большим практическим опытом. Они готовы делиться знаниями и давать подробную обратную связь по домашним работам. На связи будут и кураторы, которые помогут, если будет сложно.
Протокол TCP
С помощью протокола TCP устройства могут обмениваться сообщениями в сети. Он отвечает за установление соединения, надежную передачу данных и контроль потока между узлами сети.
TCP гарантирует доставку данных в правильном порядке и обнаруживает ошибки, поэтому вовремя предотвращает потерю или повреждение данных. Еще этот протокол автоматически регулирует то, c какой скоростью двигаются данные: это помогает избежать перегрузки.
TCP устанавливает виртуальное соединение между отправителем и получателем перед началом передачи данных. Обе стороны могут одновременно отправлять и получать информацию.
Если надо открыть страницу в веб-браузере, то нужно пройти такой путь с протоколом TCP:
1️⃣ Отправляем запрос. При этом компьютер и веб-сервер используют протокол TCP, чтобы установить виртуальное соединение.
2️⃣ Протокол TCP разбивает данные на сегменты и отправляет их по сети. Получатель подтверждает получение каждого сегмента, а в случае потери или ошибки TCP отправляет их заново.
3️⃣ TCP автоматически регулирует скорость передачи. В конце протокол TCP закрывает соединение, подтверждает успешную передачу данных и освобождает ресурсы.