Рубріки: Теория

Протоколы передачи данных: их типы и особенности

Андрій Денисенко

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

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

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

Назначение и задачи протоколов передачи данных

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

Протоколы разрабатываются в соответствии с моделью взаимодействия открытых систем (Open Systems Interconnection — OSI). Эта модель состоит из семи уровней, и протоколы передачи данных создаются для каждого из них.

Уровень Описание
7. Прикладной Самый близкий к пользователю уровень. На нем производится прием информации от пользователя и вывод данных для пользователя. На уровне 7 работают веб-браузеры, Telnet, FTP.
6. Уровень представления Этот уровень не зависит от представления данных на прикладном уровне. Он осуществляет преобразование формата приложения в сетевой формат и обратно. Примером может служить шифрование и расшифровка данных для безопасной передачи.
5. Сеансовый Для взаимодействия двух устройств по сети нужно создать сеанс связи. Функции этого уровня отвечают за установку соединения, координирование и прекращение взаимодействия между приложениями.
4. Транспортный Этот уровень обеспечивает передачу данных между конечными системами и хостами. Он определяет объем данных, скорость передачи, направление и т. д. Самый распространенный пример протокола этого уровня — TCP. UDP также работает на 4-м уровне.
3. Сетевой На сетевом уровне осуществляется передача пакетов, оптимизируется их маршрутизация. На этом уровне работает протокол IP.
2. Канальный Обеспечивает передачу данных между узлами, которые связаны между собой. Исправляет ошибки, возникающие на физическом уровне. Этот уровень состоит из двух подуровней: MAC (Media Access Control) и LLC (Logical Link Control).
1. Физический Низший уровень, на котором и происходит передача данных в виде электрических и оптических импульсов или радиоволн.

Типы протоколов

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

  • IP
  • TCP/IP
  • UDP
  • FTP
  • DNS
  • HTTP
  • NTP
  • SSH

IP — Internet Protocol

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

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

После прибытия пакетов в пункт назначения они по-разному обрабатываются. Способ обработки зависит от того, какой протокол используется совместно с IP. Самые распространенные транспортные протоколы — TCP и UDP.

TCP/IP — Transmission Control Protocol/Internet Protocol

Протокол управления передачей (Transmission Control Protocol, TCP) — это коммуникационный стандарт, позволяющий программам и устройствам обмениваться сообщениями по сети. Он предназначен для передачи пакетов по интернету и обеспечения успешной доставки данных и сообщений по сетям.

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

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

Основные характеристики TCP:

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

Для передачи пакетов от узла к узлу используется IP.

UDP

Протокол транспортного уровня (User Datagram Protocol, UDP) — это протокол связи, ориентированный на сообщения. Он позволяет устройствам и программам передавать данные по сети без проверки их доставки.

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

Как и TCP, UDP предназначен для отправки и приема сообщений. Но в случае UDP перед передачей данных подключение не создается.

Кроме того, этот протокол не гарантирует доставку пакетов данных с сервера. Он не проверяет, доставлены ли данные клиенту.

В большинстве случаев UDP работает быстрее, чем TCP, потому что он не обеспечивает доставку пакетов.

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

Основные характеристики UDP:

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

FTP

Протокол передачи данных (File Transfer Protocol, FTP) предназначен как для передачи отдельных файлов, так и для пакетной передачи.

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

Недостаток этого протокола — в слабой защите. Поэтому, если вам требуется соблюдать такие законы и регламенты, как HIPAA, PCI-DSS, SOX, GLBA и EU Data Protection Directive, не пользуйтесь FTP.

Выбирайте его, если компания:

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

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

При этом, у FTP (и у HTTP) есть безопасные версии. У FTP — это FTPS, а у HTTP — HTTPS.

Оба протокола защищены с использованием уровня защищенных сокетов (Secure Sockets Layer, SSL). При использовании FTPS вы продолжаете пользоваться преимуществами FTP и при этом применяются возможности SSL, в том числе шифрование данных при передаче, а также аутентификация. Поскольку FTPS основан на FTP, могут возникать проблемы с брандмауэром.

Организациям из юридического, правительственного и финансового сектора больше подойдет FTPS.

DNS

Система доменных имен (Domain Name System, DNS) — это протокол прикладного уровня, который определяет, как процессы приложений выполняются в различных системах, передают друг другу сообщения.

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

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

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

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

Если на DNS-сервере нет IP-адреса, связанного с именем хоста, то он передает запрос другому DNS-серверу. Когда преобразователь получает IP-адрес, выполняется запрос по протоколу IP.

HTTP

Протокол передачи гипертекста (HyperText Transfer Protocol, HTTP) предназначен для передачи гипертекстовых документов и связанных с ними мультимедийных файлов. Это протокол прикладного уровня: по нему приложение-клиент взаимодействует с приложением-сервером.

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

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

В качестве транспортного протокола для HTTP используется TCP.

NTP

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

Протокол сетевого времени (Network Time Protocol, NTP) — это интернет-протокол для синхронизации часов компьютера по сети. Это один из старейших протоколов комплекта TCP/IP. Термин NTP применяется и к самому протоколу, и к клиент-серверным приложениям.

Синхронизация проводится в четыре этапа:

  1. NTP-клиент инициирует запрос к NTP-серверу на получение данных о времени.
  2. После этого клиент может вычислить длительность задержки связи и локальное смещение, чтобы подстроить локальные часы под часы на сервере.
  3. Для первоначальной настройки часов обычно требуется провести шесть обменов данными за 5-10 минут.
  4. После синхронизации клиент обновляет часы каждые 10 минут, для чего обычно требуется обменяться лишь одним сообщением (не считая синхронизации клиента с сервером). Транзакция проводится по протоколу UDP через порт 123.

Ниже приведены некоторые примеры применения протокола NTP:

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

SSH

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

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

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

Этот протокол заменяет те протоколы, которые не защищены с использованием удаленного входа, такие как Telnet, rlogin, rsh и подобные, а также протокол передачи файлов FTP.

Его функции обеспечения безопасности широко используются сетевыми администраторами для удаленного управления системами и приложениями.

Протокол SSH защищает сеть от различных атак, таких как спуфинг DNS, маршрутизация от источника и спуфинг IP.

Заключение

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

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

Останні статті

Обучение Power BI – какие онлайн курсы аналитики выбрать

Сегодня мы поговорим о том, как выбрать лучшие курсы Power BI в Украине, особенно для…

13.01.2024

Work.ua назвал самые конкурентные вакансии в IТ за 2023 год

В 2023 году во всех крупнейших регионах конкуренция за вакансию выросла на 5–12%. Не исключением…

08.12.2023

Украинская IT-рекрутерка создала бесплатный трекер поиска работы

Unicorn Hunter/Talent Manager Лина Калиш создала бесплатный трекер поиска работы в Notion, систематизирующий все этапы…

07.12.2023

Mate academy отправит работников в 10-дневный оплачиваемый отпуск

Edtech-стартап Mate academy принял решение отправить своих работников в десятидневный отпуск – с 25 декабря…

07.12.2023

Переписки, фото, история браузера: киевский программист зарабатывал на шпионаже

Служба безопасности Украины задержала в Киеве 46-летнего программиста, который за деньги устанавливал шпионские программы и…

07.12.2023

Как вырасти до сеньйора? Девелопер создал популярную подборку на Github

IT-специалист Джордан Катлер создал и выложил на Github подборку разнообразных ресурсов, которые помогут достичь уровня…

07.12.2023