Электроника:Цифровая электроника/Цифровая связь/Сетевые протоколы

Материал из Онлайн справочника
Перейти к навигацииПерейти к поиску

Перевод: Макаров В. (valemak) Контакты:</br>* Habr: @vakemak</br>* Сайт: www.valemak.com</br>Перевёл статей: 656.
Проверка/Оформление/Редактирование: Мякишев Е.А.


Сетевые протоколы[1]

Помимо сугубо физических проблем сети (типы сигналов и уровни напряжения, разводка разъёмов, кабели, топология и пр.), должен быть стандартизированный способ арбитража траффика между узлами в сети, даже если это всего-навсего двухузловая система «точка-точка». Когда узел «говорит» в сети, он генерирует сигнал в сетевой проводке, будь то высокие и низкие уровни постоянного напряжения, какой-то модулированный сигнал несущей переменного тока или даже импульсы света в волокне. Узлы, которые «слушают», просто измеряют этот приложенный сигнал в сети (от передающего узла) и пассивно контролируют его. Однако, если два или более узла «разговаривают» одновременно, их выходные сигналы могут конфликтовать (представьте, что два логических элемента пытаются подать противоположные сигнальные напряжения на одну линию на шине!), искажая передаваемые данные.

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

Уровень взаимодействия открытых систем (уровень OSI)

Международная организация по стандартизации (ISO) определила общую архитектуру сетевых спецификаций в своей модели DIS7498 (применимо к большинству цифровых сетей). Этот план, состоящий из семи «слоёв», пытается классифицировать все уровни абстракции, необходимые для передачи цифровых данных.

  • Уровень 1: Физический. Определяет электрические и механические детали связи: тип провода, конструкция разъёма, типы и уровни сигналов.
  • Уровень 2: Канал передачи данных. Определяет форматы сообщений, адресацию данных и методы обнаружения/исправления ошибок.
  • Уровень 3: Сеть. Устанавливает процедуры для инкапсуляции данных в «пакеты» для передачи и приёма.
  • Уровень 4: Транспортировка. Помимо прочего, транспортировочный уровень определяет, как полные файлы данных должны обрабатываться по сети.
  • Уровень 5: Сеанс. Организует передачу данных с точки зрения начала и окончания конкретной передачи. Аналогично управлению заданиями в операционной системе многозадачного компьютера.
  • Уровень 6: Представление. Включает определения для наборов символов, управления терминалом и графических команд, чтобы можно было легко кодировать и декодировать абстрактные данные между взаимодействующими устройствами.
  • Уровень 7: Применение. Стандарты конечного пользователя для создания и/или интерпретации передаваемых данных в их окончательной форме. Другими словами, фактические компьютерные программы, использующие переданные данные.

Некоторые установленные сетевые протоколы охватывают только один или несколько уровней. DIS7498, например, широко используемый протокол последовательной связи RS-232C на самом деле обращается только к первому («физическому») уровню этой семиуровневой модели. Другие протоколы, такие как графическая клиент-серверная система X-windows, разработанная в Массачусетском технологическом институте для распределённых компьютерных систем с графическим пользовательским интерфейсом, охватывают все семь уровней.

Различные протоколы могут использовать один и тот же стандарт физического уровня. Примером этого являются протоколы RS-422A и RS-485, оба из которых используют одну и ту же схему передатчика и приёмника дифференциального напряжения, используя одни и те же уровни напряжения для обозначения двоичных единиц и нулей. На физическом уровне эти два протокола связи идентичны. Однако на более абстрактном уровне протоколы различаются: RS-422A предназначен только для двухточечной связи, тогда как RS-485 поддерживает многоабонентскую топологию типа «шина» с 32-мя адресуемыми узлами.

Возможно, самый простой тип протокола – это тот, в котором есть только один передатчик, а все остальные узлы являются просто приёмниками. Так обстоит дело с BogusBus™, где один передатчик генерирует сигналы напряжения, подаваемые на сетевую проводку, а один или несколько блоков приёмника (с 5-ю лампами в каждом) загораются в соответствии с выходным сигналом передатчика. В симплексной сети всегда так: говорит только один, все остальные слушают!

Множественный доступ с контролем несущей (CSMA)

Когда у нас есть несколько передающих узлов, мы должны организовывать их передачи таким образом, чтобы они не конфликтовали друг с другом. Узлам нельзя разрешать говорить, когда говорит другой узел, поэтому мы даём каждому узлу возможность «слушать» и воздерживаться от разговора, пока сеть не замолчит. Этот базовый подход называется множественным доступом с контролем несущей (CSMA, от англ. Carrier Sense Multiple Access), и существует несколько вариаций на эту тему. Обратите внимание, что CSMA сам по себе не является стандартизированным протоколом, а представляет собой методологию, которой следуют некоторые протоколы.

Обнаружение коллизий

Один из вариантов – просто позволить любому узлу начать разговор, как только сеть замолчит. Это аналогично группе людей, собравшихся за круглым столом: любой может начать говорить, если он никого не перебивает. Как только последний человек перестанет говорить, начнёт говорить следующий человек, ожидающий своей очереди высказаться. Итак, что происходит, когда два или более человека начинают говорить одновременно? В сети одновременная передача данных двумя или более узлами называется коллизией. При использовании CSMA/CD (т.е. CSMA / Collision Detection) конфликтующие узлы просто сбрасывают себя с помощью схемы таймера со случайной задержкой, и первый, закончивший свою временну́ю задержку, пытается снова начать разговор. Это основной протокол популярной сети Ethernet.

Побитовый арбитраж

Другим вариантом CSMA является CSMA/BA (т.е. CSMA / Bitwise Arbitration), где конфликтующие узлы ссылаются на предварительно установленные номера приоритетов, которые определяют, какой из них имеет право говорить первым. Другими словами, у каждого узла есть «ранг», который разрешает любой спор о том, кто первым начнёт говорить после того, как произойдёт коллизия, это очень похоже на группу людей, в которой смешаны высокопоставленные лица и простые граждане. Если происходит коллизия, высокопоставленному лицу обычно разрешается говорить первым, а обычному человеку приходится ждать.

В любом из двух приведённых выше примеров (CSMA/CD и CSMA/BA) мы предполагали, что любой узел может инициировать диалог, пока сеть молчит. Это называется «незапрошенным» (т.е. чтобы начать говорить не требуется запрос от сети) способом связи. Существует разновидность, называемая «запрошенным» режимом для CSMA/CD или CSMA/BA, где первоначальная передача разрешена только тогда, когда назначенный главный узел спрашивает (запрашивает) отклик. Обнаружение коллизий (CD) или побитовый арбитраж (BA) применяются только к арбитражу после коллизии, поскольку несколько узлов отвечают на запрос ведущего устройства.

Ведущий/ведомый

Совершенно другой стратегией для связи узлов является протокол «ведущий/ведомый», в котором одно устройство (ведущее) выделяет временны́е интервалы для передачи всем другим (ведомым) узлам в сети и планирует эти временны́е интервалы таким образом, чтобы несколько узлов не могли конфликтовать. Ведущее устройство обращается к каждому узлу по имени, по одному, позволяя этому узлу говорить в течение определённого периода времени. По завершении ведущий обращается к следующему узлу, и так далее, и так далее.

Передача токена

Ещё одной стратегией является протокол Token-Passing (передача токена), в котором каждый узел получает возможность говорить (по одному), а затем, по окончании, предоставляет разрешение говорить следующему узлу. Разрешение передаётся от узла к узлу, поскольку каждый передаёт «токен» следующему в последовательном порядке. Сам токен не является физической вещью: это серия бинарных 1 и 0, широковещательно передаваемых по сети, несущих конкретный адрес следующего узла, которому разрешено говорить. Хотя протокол передачи маркеров часто ассоциируется с сетями кольцевой топологии, он не ограничивается какой-либо конкретной топологией. И когда этот протокол реализуется в кольцевой сети, последовательность передачи маркера не обязательно должна следовать последовательности физического соединения по кольцу.

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

Также возможно объединить несколько протокольных стратегий в новый гибрид в рамках одного типа сети. Так обстоит дело с Foundation Fieldbus, который сочетает в себе «ведущий/ведомый» с формой передачи маркеров. Устройство Link Active Scheduler (сокр. LAS, перевод. «Связанный активный планировщик») отправляет запланированные команды «Compel Data» (сокр. CD, перевод. «Принудительные данные») для запроса ведомых устройств на Fieldbus для получения критической по времени информации. В этом отношении Fieldbus является протоколом «ведущий/ведомый». Однако, когда между запросами CD есть время, LAS отправляет «маркеры» каждому из других устройств на Fieldbus, по одному, давая им возможность передавать любые незапланированные данные. Когда эти устройства завершают передачу своей информации, они возвращают токен обратно в LAS. LAS также проверяет наличие новых устройств на шине Fieldbus с помощью сообщения «Probe Node» (сокр. PN, перевод. «Зондирование узла»), которое, как ожидается, будет возвращать LAS «Probe Response» (сокр. PR, перевод. «Зондирование на отклик»). Оклики устройств обратно в LAS, будь то сообщение PR или возвращённый токен, определяют их статус в базе данных «Live List» («Актуальный список»), которую поддерживает LAS. Правильная работа устройства LAS абсолютно важна для функционирования Fieldbus, поэтому предусмотрены условия для резервной работы LAS путём присвоения некоторым узлам статуса Link Master («Связанный ведущий»), что позволяет им стать альтернативными активными планировщиками связи в случае сбоя работающей LAS.

Существуют и другие протоколы передачи данных, но эти являются наиболее популярными. У меня была возможность поработать со старой (около 1975 года) промышленной системой управления производства Honeywell, в которой главное устройство под названием Highway Traffic Director («Управляющий высокоскоростным траффиком»), или HTD, контролировало все сетевые коммуникации. Что делало эту сеть интересной, так это то, что сигнал, отправляемый с HTD на все подчинённые устройства для разрешения передачи, не передаётся по самой сетевой проводке, а скорее по наборам отдельных кабелей витой пары, соединяющих HTD с каждым ведомым устройством. Затем устройства в сети были разделены на две категории: те узлы, подключённые к HTD, которым было разрешено инициировать передачу, и те узлы, не подключённые к HTD, которые могли передавать только ответ на запрос, отправленный одним из первых узлов. Примитивная и медленная – только такие определения, подходящие для этой схемы коммуникационной сети, но для своего времени она функционировала адекватно.

См.также

Внешние ссылки