Протоколы

Сетевые модели и протоколы

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

OSI & TCP/IP

В настоящее время для описания сетевых протоколов часто используется модель OSI
(Open System Interconnection — взаимодействие открытых систем) состоящая из 7 уровней:

  • прикладной (application) — HTTP, WebSocket
  • представления (presentation)
  • сеансовый (session)
  • транспортный (transport) — TCP, UDP
  • сетевой (network) — IP
  • канальный (data link) — Ethernet
  • физический (physical)

Эта модель, предложенная ISO, хорошо описывает взаимодействие систем в теории, но она сама и протоколы,
которые были предложены для ее реализации, не получили широкого распростронения на практике, и самой популярной моделью
стал 4-уровневый (или 5, в зависимости от точки зрения) стек протоколов TCP/IP:

  • прикладной (application layer) — HTTP, WebSocket, gRPC
  • транспортный (transport layer) — TCP, UDP
  • сетевой (internet layer) — IP
  • канальный (network access layer / data link) — Ethernet, IEEE 802.11
  • физический* (physical)

На какой уровень вы бы отнесли следующие протоколы?

  • FTP
  • SSL / TLS
  • NTP (network time protocol)
  • SSH
  • gRPC
  • BitTorrent
  • BGP (Border Gateway Protocol)
  • DNS
  • ARP (Address Resolution Protocol)

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

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

TCP & UDP

Самыми распространенными протоколами транспортного уровня являются TCP & UDP
— TCP (Transmission Control Protocol) — предоставляет поток данных с предварительной установкой соединения,
осуществляет повторный запрос данных в случае потери данных и устраняет дублирование при получении двух копий одного пакета,
гарантируя тем самым, в отличие от UDP, целостность передаваемых данных и уведомление отправителя о результатах передачи.
— UDP (User Datagram Protocol) — предоставляет возможность отправки сообщений без необходимости предварительной
установки специальных каналов передачи данных.

Оба протокола используют протокол IP для адресации и передачи данных в сети.

TCP требует обязательного установления соединения (handshake):

Утановление соединения может занимать значительное время — например, при latency между системами в 50 мс,
данные могут быть получены второй стороной не ранее чем через 150 мс.
Кстати, с точки зрения TCP нет понятия «клиент» и «сервер» — обе стороны соединения равноправны и могут посылать и принимать данные независимо.

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

Несмотря на то что TCP является протоколом надежной передачи данных, он лишь гарантирует что при получении ACK-а
вы можете рассчитывать на то, что другая сторона получила данные без изменений.
Поэтому приложениям стоит рассчитывать на то, что при любом сетевом взаимодействии что-то может пойти не так
и приложение должно корректно обрабатывать исключительные ситуации (connection reset, timeout-ы, и т.д.)

Для корректного закрытия соединения используется следующая последовательность:

Если же соединение было закрыто некорректно (например. kill -9) то другая сторона может об этом узнать,
только если попробует передать или получить данные — встроенного механизма heartbeat-ов в TCP нет,
что часто приводит к проблемам с proxy-серверами.

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

Дополнительные ссылки:

Уровни OSI

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

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

Задачи компьютера ОТПРАВИТЕЛЯ:

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

Задачи компьютера ПОЛУЧАТЕЛЯ:

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

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

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

Разберем их подробнее.

6. Уровень представления (Presentation Layer)

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

5. Сеансовый уровень (Session Layer)

У него много задач.

  1. Установить сеанс связи с получателем. ПО предупреждает компьютер-получатель о том, что сейчас ему будут отправлены данные.
  2. Здесь же происходит распознавание имен и защита:
    • идентификация — распознавание имен
    • аутентификация — проверка по паролю
    • регистрация — присвоение полномочий
  3. Реализация того, какая из сторон осуществляет передачу информации и как долго это будет происходить.
  4. Расстановка контрольных точек в общем потоке данных для того, чтобы в случае потери какой-то части легко было установить, какая именно часть потеряна и следует отправить повторно.
  5. Сегментация — разбивка большого блока на маленькие пакеты.

4. Транспортный уровень (Transport Layer)

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

  • Протоколы, которые ориентированы на соединение — они отслеживают доставку данных и при необходимости запрашивают повторную отправку при неудаче. Это TCP — протокол контроля передачи информации.
  • Не ориентированные на соединение (UDP) — они просто отправляют блоки и дальше не следят за их доставкой.

3. Сетевой уровень (Network Layer)

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

2. Канальный уровень (Data Link Layer)

Здесь происходит передача пакета в пределах одного кабеля, то есть одной локальной сети. Он работает только до пограничного маршрутизатора одной локальной сети. К полученному пакету канальный уровень добавляет свой заголовок — MAC адреса отправителя и получателя и в таком виде блок данных уже называется КАДРОМ.

При передачи за пределы одной локальной сети пакету присваивается MAC не хоста (компьютера), а маршрутизатора другой сети. Отсюда как раз появляется вопрос серых и белых IP, о которых шла речб в статье, на которую была выше дана ссылка. Серый — это адрес внутри одной локальной сети, который не используетс яза ее пределами. Белый — уникальный адрес во всем глобальном интернете.

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

1. Физический уровень (Transport layer)

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

Соединение TCP

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

Задачи соединения

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

Установка соединения в TCP

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

Получатель в ответ передаёт сообщение SYN, куда включает подтверждение получения предыдущего сообщения ACK от слова acknowledge и порядковый номер байта, который он ожидает 7538, потому что на предыдущем этапе был получен байт с номером 7537.

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

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

Разрыв соединения в TCP

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

Протокол TCP предусматривает два варианта разрыва соединения: корректное, с помощью одностороннего разрыва соединения и сообщения FIN и разрыв из-за критической ситуации с помощью сообщения RST.

Рассмотрим, как выполняется корректный разрыв соединения. Сторона, которая хочет разорвать соединение пересылает другой стороне сообщение FIN и в ответ получает сообщение ACK. Однако соединение разорвано только с одной стороны.

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

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

Особенности строительства финской беседки, которая станет уютной зоной отдыха всей семьи

Электросварщик / Электрогазосварщик

Профессиональная доставка видео по интернет-каналам

Повторимся, технологии HTTP-стриминга в сочетании с CDN могут предоставить почти такое же качество видеоуслуг, как в вещательных сетях, и проблема задержки старта тоже близка к разрешению. Тем не менее проблемы, связанные со спецификой работы протокола TCP/IP и непредсказуемостью качества каналов открытого интернета, не устраняются, а просто сводятся к минимуму за счет вышеописанных механизмов. Причем уровни качества обслуживания, сравнимые с теми, которые обеспечиваются при использовании VPN или выделенного оптоволокна, остаются недостижимыми. Поэтому, несмотря на надежность TCP/IP, для профессиональной доставки видео чаще используются технологии на базе RTP-протокола, специально разработанного для передачи аудио/видеотрафика в реальном времени. Чаще всего в IP/RTP-пакеты инкапсулируются транспортные пакеты MPEG-2 (до 7 в одном IP-пакете), но могут использоваться и другие транспортные форматы, например SDI.

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

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

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

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

TCP — это протокол, ориентированный на соединение, который решает многочисленные проблемы надежности при обеспечении надежного потока байтов :

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

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

Надежность также может быть достигнута за счет использования IP по надежному протоколу передачи данных, например High-Level Data Link Control (HDLC).

User Datagram Protocol (UDP) является установление соединения дейтаграммы протокола. Как и IP, это ненадежный протокол, требующий максимальных усилий. Надежность достигается путем обнаружения ошибок с использованием алгоритма контрольной суммы. UDP обычно используется для таких приложений, как потоковая передача мультимедиа (аудио, видео, передача голоса по IP и т

Д.), Где своевременное поступление более важно, чем надежность, или для простых приложений запросов / ответов, таких как поиск DNS , где накладные расходы на настройку надежное соединение непропорционально велико. Транспортный протокол реального времени (RTP) — это протокол дейтаграмм, который используется поверх UDP и предназначен для данных в реальном времени, таких как потоковая передача мультимедиа .

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

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

Протоколы уровня 4 Transport layer (Транспортный уровень)

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

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

Протоколы этого уровня предназначены для взаимодействия типа точка-точка. Пример: TCP, UDP

  • AH Authentication Header Аутентификационный заголовок по IP или IPSec
  • ESP Encapsulating Security Payload over IP or IPSec
  • GRE Generic Routing Encapsulation для туннелирования
  • IL Первоначально разработан как транспортный уровень для 9P
  • SCTP Stream Control Transmission Protocol
  • Sinec H1 для удаленного контроля
  • IPX/SPX Sequenced Packet Exchange
  • TCP Transmission Control Protocol
  • UDP User Datagram Protocol

Адресация сетевых компьютеров

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

В основе системы
IP-адресации

заложено присвоение каждому сетевому
компьютеру уникального адреса в числовом
формате, который содержит 4 блока чисел,
при этом каждое число заключено в
интервале от 0 до 255 и не может иметь
больше трех разрядов. При записи IP-адреса
блоки чисел разделяются точками и
приводятся, например, к виду 192.168.1.14.
 Каждый блок адреса имеет определенное
значение, например, начало адреса
определяет номер большой сети, в которой
находится компьютер, а крайний правый
– номер компьютера в локальной сети. В
результате каждый компьютер получает
единственный в своем роде номер, а по
системе регистрации номеров всегда
можно найти любой компьютер в сети.

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

Доменная система
адресации или доменная система имен
(DNS-адрес)
основана
на делении сети на части или зоны с
присвоением каждой зоне имени в виде
последовательность символов, имеющей
смысловую окраску.

Таблица 16.1

Примеры
доменов первого уровня, используемые
для кодировки государств

Государство

Домен

Государство

Домен

Россия

su,ru

Великобритания

uk

Белоруссия

by

Германия

de

Украина

ua

Франция

fr

Казахстан

kz

Италия

it

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

В доменной системе
имен каждому IP-адресу
присваивается собственное имя, которое
называется DNS-адрес.
Доменное имя – это буквенный адрес
компьютера. DNS-адрес формируется из
нескольких доменов, домены разделяются
точками и считаются по порядку справа
налево. При этом адрес выглядит, например,
так — miass.ural.ru.
В этой системе адресации справа находится
домен
первого уровня
,
объединяющий самую крупную группу
компьютеров. Чаще всего домен первого
уровня состоит из двух букв латинского
алфавита и формируется на основе
буквенной кодировки государств, примеры
которой приведены в табл. 16.1 Наряду с
буквенной кодировкой государств
существует наднациональная кодировка
доменов, примеры которой приведены в
табл.16.2

Таблица 16.2

Наднациональные
домены первого уровня

Назначение
или зона охвата

Домен

европейский
союз

eu

правительственные

gov

военные

mil

коммерческие

com

образовательные

еdu

сетевые

net

прочие
организации

org

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

Двойная система
адресации компьютеров может существовать
только при полном соответствии сетевых
адресов.Для
соответствия числового и доменного
адреса в Интернете имеется единый
электронный каталог, который ведется
в США государственной организацией SRI
International.
Для преобразования доменного адреса в
числовой формат посылается запрос на
DNS-сервер.
Сервер обрабатывает доменное имя,
определяет IP-адрес
и отправляет ответ на запрос.

История версий

График разработки протокола управления передачей TCP и Интернет-протокола IP.

Первая Интернет-демонстрация, связывающая ARPANET , PRNET и SATNET, 22 ноября 1977 г.

В мае 1974 года Институт инженеров по электротехнике и радиоэлектронике (IEEE) опубликовал доклад, озаглавленный «Протокол межсетевого взаимодействия в пакетной сети». Авторы статьи Винт Серф и Боб Кан описали межсетевой протокол для совместного использования ресурсов с использованием коммутации пакетов между узлами сети . Центральным управляющим компонентом этой модели была «Программа управления передачей», которая включала как ориентированные на соединение ссылки, так и службы дейтаграмм между хостами. Монолитная программа управления передачей позже была разделена на модульную архитектуру, состоящую из протокола управления передачей и протокола пользовательских дейтаграмм на транспортном уровне и Интернет-протокола на Интернет-уровне . Эта модель стала известна как модель Интернета и набор Интернет-протоколов Министерства обороны США , а неофициально — TCP / IP .

Версии IP с 1 по 3 были экспериментальными версиями, разработанными между 1973 и 1978 годами. Следующие документы Internet Experiment Note (IEN) описывают версию 3 интернет-протокола, предшествующую современной версии IPv4:

Доминирующим протоколом межсетевого взаимодействия на уровне Интернета является IPv4 ; число 4 определяет версию протокола, содержащуюся в каждой IP-дейтаграмме. IPv4 описан в RFC   (1981).

Версия 5 использовалась протоколом Internet Stream Protocol , экспериментальным протоколом потоковой передачи, который не был принят.

Преемником IPv4 является IPv6 . IPv6 стал результатом нескольких лет экспериментов и диалогов, в ходе которых были предложены различные модели протоколов, такие как TP / IX ( RFC   ), PIP ( RFC   ) и TUBA (TCP и UDP с большими адресами, RFC   ). Его наиболее заметное отличие от версии 4 — это размер адресов. В то время как IPv4 использует для адресации 32 бита , что дает c. 4,3 миллиарда (4,3 × 10 9 ), IPv6 использует 128-битные адреса, обеспечивающие прибл.3,4 × 10 38 адресов. Хотя внедрение IPv6 идет медленно, по состоянию на июнь 2008 г. все правительственные системы США продемонстрировали базовую инфраструктурную поддержку IPv6.

Присвоение новому протоколу IPv6 было неопределенным, пока должная осмотрительность не убедила, что IPv6 ранее не использовался. Другим протоколам Интернет-уровня были присвоены номера версий, например 7 ( IP / TX ), 8 и 9 ( исторические ). Примечательно, что 1 апреля 1994 года IETF опубликовала первоапрельскую шутку о IPv9. IPv9 также использовался в альтернативном предложенном расширении адресного пространства под названием TUBA.

Технологии и альянсы

ONVIF

Из-за сложности структуры, переплетения стека технологий некоторые вещи мы называем протоколами, хотя она таковыми не являются. ONVIF – эту аббревиатуру часто можно встретить в видеорегистраторах и камерах видеонаблюдения, на самом деле не протокол. Open Network Video Interface Forum – это организация, которая занимается разработкой стандартов и протоколов для систем безопасности. Их спецификации построены на веб-сервисах, описываемых языком WSDL, протоколах RTP/RTSP, SOAP (XML), стандартах видеосжатия H.264, MPEG-4, MJPEG. Прелесть ONVIF заключается в совместимости оборудования поддерживающего этот стандарт.

ZigBee

Покупая умный дом можете встретить протокол ZigBee который описывает спецификации сетевых протоколов верхнего уровня. Эта технология отличается поддержкой высокого уровня безопасности передачи данных в сочетании с невысокими скоростями и возможностью длительной автономной работы устройств. В ZigBee реализована поддержка ячеистой (mesh) топологии, кроме стандартных: «точка-точка», «дерево» и «звезда». Протоколы разработаны на алгоритмах AODV и NeuRFon. ZigBee – это целый альянс, который сотрудничает с рядом разработчиков и приводит работу оборудования к единому стандарту.

PPPoE

Говоря о видеонаблюдении, да и не только, нужно упомянуть PPP (Point-to-Point Protocol), который объединяет целый ряд протоколов, в том числе PPPoE – где последние буквы — over Ethernet, он служит для передачи данных внутри сети от одно части к другой, может настраивать или инкапсулировать другие протоколы.

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

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

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

Adblock
detector