В каком протоколе введена функция автопереговоров

Обновлено: 18.05.2024

С момента разработки в 1979 году он не теряет своей популярности. Согласно статистике HMS Industrial Networks в 2021 году Modbus занимает 10% мирового рынка промышленных сетей (по 5% приходится на Modbus RTU и Modbus TCP).

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

Базовые принципы работы Modbus

Modbus использует архитектуру Master-Slave, которая относительно недавно была переименована разработчиком в Client-Server. Согласно этому подходу в сети выделяется клиентское (ведущее) устройство, которое периодически отправляет запросы на серверные (ведомые) устройства с целью чтения или записи их параметров.

Пакет данных Modbus включает в себя постоянную часть PDU (Protocol Data Unit), общую для всех реализаций протокола и состоящую из кода функции и данных. Кроме этого, возможен ряд специфических полей, которые будут различаться в зависимости от физического уровня сети — чаще всего это адрес серверного устройства и контрольная сумма для выявления ошибок. С учетом дополнительных полей полный пакет Modbus носит название ADU (Application Data Unit). Рассмотрим более подробно каждое поле пакета ADU в обобщенном виде. Особенности, присущие различным вариантам протокола, будут описаны в следующем разделе.

Рассмотрим передачу пакетов в Modbus. Протокол обеспечивает клиент-серверное взаимодействие в режиме Request/Response. Клиент инициирует запрос в серверное устройство, передавая в PDU код функции и данные. В зависимости от физического уровня сети в пакете могут быть дополнительные поля, рассмотренные выше.

Если обработка запроса проходит без ошибок, то сервер возвращает пакет, содержащий исходный код функции и запрошенные данные.

При возникновении ошибки серверное устройство возвращает в качестве данных код исключения, а вместо исходного кода функции — его значение, увеличенное на 128 (0x80 в шестнадцатеричной системе HEX).

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

Разновидности Modbus: ASCII, TCP и RTU

Modbus — это протокол прикладного (седьмого) уровня модели OSI (Open Systems Interconnection model). Он не зависит от нижележащих уровней и может использоваться совместно с другими протоколами, например Ethernet TCP/IP или UDP/IP, а в качестве физической среды для передачи сигналов применять последовательные интерфейсы RS-232, RS-422, RS-485, оптоволокно, радиоканалы и другое.

Опишем отличия наиболее известных реализаций протокола Modbus: RTU, ASCII и TCP.

Modbus RTU (Remote Terminal Unit). Это разновидность протокола, которая в качестве физического уровня сети чаще всего использует последовательный интерфейс RS-485, реже — RS-232 и RS-422. По сути, все эти интерфейсы определяют связь с помощью витых пар, но различаются характеристиками вида максимальной длины кабеля, количества узлов и так далее.

Формат пакета Modbus RTU в целом совпадает с обобщенной формой, описанной ранее: дополнительные поля не используются. Контроль целостности пакетов ведется с помощью алгоритма CRC-16.

Важная особенность Modbus RTU в том, что для разделения пакетов должны использоваться временные паузы продолжительностью не менее чем произведение 3,5*t, где t — время передачи одного байта в текущей сети. А передача байтов данных в пределах одного пакета производится последовательно с промежутком времени между соседними байтами не более 1,5*t, иначе передача будет считаться ложной. Эти правила не дают использовать Modbus RTU в медленных, например модемных, сетях.

Modbus TCP. Это реализация ModBus в сетях Ethernet. Работает поверх TCP/IP стека.

Контроль целостности пакетов также обеспечивается средствами протокола TCP/IP, поэтому нет необходимости в его Modbus-реализации.

Наряду с адресом в заголовке пакета Modbus TCP присутствует ряд дополнительных полей:

Мы рассмотрели только открытые и самые распространенные реализации протокола Modbus. Но их гораздо больше, например MODBUS Plus — проприетарный протокол от Schneider Electric, поддерживающий режим Multi-Master.

Регистры и функции Modbus

Доступ к регистрам осуществляется с помощью 16-битного адреса. Первому элементу в каждой группе регистров соответствует адрес 0. То есть адрес любого регистра может принимать значения из диапазона 0-65535 (0x0000-0xFFFF в HEX-формате). При этом спецификация протокола не определяет, что физически из себя представляют адресные пространства и по каким внутренним адресам устройства должны быть доступны регистры. В общем случае значения регистров с одинаковым адресом, но разными типами отличаются друг от друга.

В документации ряда производителей на некоторые, особенно старые устройства адреса регистров могут быть указаны в других форматах — где адресация начинается не с нуля и первая цифра адреса определяет тип регистра. Например, Input Register с адресом 0 может быть описан как 30001, а Holding Register — как 40001. В таких случаях в пакетах данных следует передавать адреса в стандартном формате Modbus независимо от способа представления их в документации. Для получения верного адреса достаточно вычесть смещение, соответствующее типу регистра. В некоторые программные пакеты заложена автоматическая корректировка адресов.

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

Для каждой функции в спецификации протокола Modbus определена структура PDU: какие данные и в каком порядке должны использоваться в запросах и ответах. Рассмотрим формирование пакетов Modbus RTU на примере функции Read Coils с кодом 1. Эта функция, кроме передачи собственного кода, требует наличия в запросе адреса первого Coil-регистра и количества регистров, которые необходимо прочитать. В случае успешного выполнения запроса в ответе будут возвращены код функции, число байт, необходимое для вывода запрошенных Coil-регистров, и статус всех этих регистров.

Предположим, нам нужно обратиться к серверному устройству с адресом 1 и прочитать 19 его Coil-регистров с номерами 20–38. Адресация регистров ведется с 0, поэтому адрес первого нужного нам регистра будет 0x13 (это 19 в HEX-системе). Требуемое для чтения количество регистров также будет равно 0x13 (для чтения запрошено 19). В качестве адреса и кода функции указываем 01. Контрольная сумма формируется по алгоритму CRC-16 на основе других полей пакета.

В случае отсутствия ошибок в ответе вернутся без изменений адрес серверного устройства и код функции. Для расчета числа байтов, которые потребуются для возврата состояния регистров, нужно разделить запрошенное количество регистров на 8 и к результату прибавить 1, если остаток от деления не равен 0. В нашем случае результат деления 19 на 8 равен 2, но остаток положительный — поэтому для вывода регистров потребуется 2+1=3 байта. Это значение будет указано в ответе после кода функции. И далее будут следовать 3 байта, описывающие состояние выбранных регистров. Например, первый байт будет описывать состояние 8 Coil-регистров с номерами 27-20. Если в поле, к примеру, содержится HEX-значение CD — статус соответствующих 8 регистров такой: 1100 1101.

Если в процессе обработки запроса на серверном устройстве возникнет ошибка (например, обнаружен несуществующий адрес регистра), то в ответе будет содержаться измененный код функции, равный исходному коду плюс смещение 0x80 — в нашем примере 0x81, и код исключения — в нашем примере 03, что значит неверный формат запроса. С полным перечнем возможных исключений можно ознакомиться в документации.

Преимущества и недостатки Modbus

К преимуществам Modbus относятся:

Разумеется, у использования протокола есть и недостатки:

1. Отсутствие встроенной аутентификации и шифрования передаваемых данных.

Поэтому при использовании протокола Modbus TCP необходимо настраивать дополнительные VPN-тоннели. Относительно недавно для Modbus TCP было разработано расширение Modbus Security (с поддержкой TLS), но оно пока не получило широкого распространения.

2. Отсутствие начальной инициализации системы.

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

3. Спецификации для ограниченного набора типов данных .

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

4. Недостатки Master-Slave-взаимодействия.

5. Отсутствие поддержки режима Multi-Master для интерфейсов RS-232/RS-485

Другие протоколы, основанные на этих же интерфейсах, поддерживают работу с несколькими ведущими устройствами (например, CAN и Profibus).

Где используется Modbus

Чаще всего Modbus применяется для передачи сигналов от контрольно-измерительных приборов к главному контроллеру или системе сбора данных. Основные сценарии использования Modbus:

  • Клиент-серверные приложения для мониторинга и программирования устройств (в том числе дистанционного) в промышленности, строительстве, инфраструктуре, транспорте, энергетике. Примеры: мониторинг энергопотребления, контроль производственных процессов, надзор за ходом строительства и так далее.
  • Передача данных от датчиков и приборов интеллектуальным устройствам в интернете вещей (Internet of Things, IoT).
  • Связь диспетчерских компьютеров с удаленными терминалами в SCADA-системах.
  • Приложения, где требуется беспроводная связь, например в газовой и нефтяной промышленности.

Несмотря на свой возраст, Modbus активно используется и с современными технологиями — например, он отлично чувствует себя в облаке. Многие провайдеры предлагают возможность создания облачных IoT-платформ — для снижения затрат на разработку IoT-сервисов, обеспечения сбора данных и управления устройствами в real-time-режиме. И поддержка Modbus — обязательный пункт для подобных решений, так как невозможно построить межмашинное взаимодействие без протокола, реализованного множеством поставщиков на тысячах различных устройств.

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

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

Автосогласование определено в clause 28 IEEE 802.3 и изначально являлось необязательным компонентом в стандарте Fast Ethernet. Он обратно совместим с нормальными импульсами линии связи (NLP), используемыми 10BASE-T. Протокол был значительно расширен в гигабитном стандарте Ethernet, и является обязательным для 1000BASE-T гигабитного Ethernet поверх скрученной пары.

В модели OSI автосогласование находится на физическом уровне.

Стандартизация и функциональная совместимость

В 1995 году был выпущен стандарт Fast Ethernet. Поскольку это привело к появлению новой опции скорости для тех же самых проводов, оно включало средство для подключенных сетевых адаптеров для согласования наилучшего возможного общего режима работы. Протокол автосогласования, включенный в стандарт IEEE 802.3 clause 28, был разработан на основе запатентованной технологии National Semiconductor, известной как NWay. Компания дала письмо с заверением любому лицу использовать свою систему в течение одного времени лицензии.

Первая версия спецификации автосогласования в стандарте IEEE 802.3u Fast Ethernet 1995 года была по-разному реализована различными производителями, что привело к проблемам с функциональностью. Эти проблемы привели к тому, что многие администраторы сети вручную установили скорость и режим каждого сетевого интерфейса. Однако использование конфигурации, установленной вручную, также может привести к несоответствиям. Несоответствие трудно диагностировать, так как сеть работает; простые программы, используемые для сетевых тестов, например, ping, сообщают о допустимом подключении. Однако это существенно влияет на производительность сети.

Спецификация автосогласования была улучшена в выпуске IEEE 802.3 1998 года. За этим последовал выпуск стандарта IEEE 802.3ab Gigabit Ethernet в 1999 году, в котором было указано обязательное автосогласование для 1000BASE-T. Автосогласование также является обязательным для 1000BASE-TX и 10GBASE-T. В настоящее время большинство производителей сетевого оборудования рекомендуют использовать автосогласование на всех портах доступа и включить его в качестве заводской настройки по умолчанию.

Функция

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

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

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

Кроме режима скорости и, автоматическое согласование используется для связи с типом порта (однопортовым или многопортовым) и параметрами master- ve (независимо от того, сконфигурировано ли оно вручную или нет, является ли устройство ведущим или ve, если это так, и бит master- ve seed в противном случае).

Приоритет

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

Другими словами, среди режимов, которые поддерживаются обоими устройствами, каждое устройство выбирает тот, который является топмостом в этом списке.

Электрические сигналы

Последовательность нормальных импульсов связи, используемых устройствами 10BASE-T. Автосогласование основано на импульсах, аналогичных тем, которые используются устройствами 10BASE-T для обнаружения наличия соединения с другим устройством. Эти текущие импульсы соединения посылаются устройствами Ethernet, когда они не посылают или не принимают какие-либо кадры. Они являются однополюсными положительными электрическими импульсами номинальной длительности 100 нс, с максимальной шириной импульса 200 нс, генерируемыми во время 16 мс (с допуском вариации времени 8 мс). Эти импульсы в терминологии 10BASE-T называются импульсами тестирования интегральной линии связи (LIT) и называются нормальными импульсами линии связи (NLP) в спецификации автоматического согласования.

Устройство обнаруживает отказ линии связи, если в течение 50-150 мс не принимается ни кадр, ни два импульса LIT. Чтобы эта схема работала, устройства должны посылать импульсы LIT независимо от их приема.

Три пачки импульсов Fast Link Pulses, используемые устройствами автосогласования для объявления своих возможностей. Автосогласование использует аналогичные импульсы, помеченные как NLP. NLP по-прежнему являются однополюсными, только положительными, и номинальной продолжительностью 100 нс; но каждый LIT заменяется импульсной вспышкой от 17 до 33 импульсов, посылаемых на расстоянии 125 мкс. Каждая такая импульсная вспышка называется быстрой импульсной (FLP) вспышкой. Интервал времени между началом каждого всплеска FLP составляет те же 16 секунд, что и между нормальными импульсами линии связи (допуск на вариацию 8 мс).

Как кодовое слово линии связи (16-битовое слово) кодируется в импульсном импульсном импульсном импульсном импульсном импульсе линии связи. Пакет FLP состоит из 17 NLP с временным интервалом 125 мкс (с допуском 14 мкс). Между каждой парой двух последовательных NLP (т.е. через 62,5 мкс после первой NLP импульсной пары) может присутствовать дополнительный положительный импульс. Наличие этого дополнительного импульса указывает на логический 1, его отсутствие - на логический 0. В результате, каждый FLP содержит слово данных из 16 битов. Это слово данных называется кодовым словом линии связи (LCW). Биты кодового слова линии связи нумеруются от 0 до 15, где бит 0 соответствует первому возможному импульсу по времени и бит 15 до последнего.

Кодовое слово базовой линии связи

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

  • 0 - 4: поле селектора: указывает, какой стандарт используется между IEEE 802.3 и IEEE 802.9;
  • 5 - 12: поле технологических возможностей: это последовательность битов, которые кодируют возможные режимы операций среди режимов 100BASE-T и 10BASE-T;
  • 13: удаленный отказ: устанавливается на один, когда устройство обнаруживает отказ линии связи;
  • 14: подтверждение того, что устройство устанавливает это значение равным единице для указания правильного приема кодового слова базовой линии связи от другой стороны;
  • 15: следующая страница: этот бит используется для обозначения намерения послать другие кодовые слова после кодового слова базовой линии связи;

Поле технологических возможностей состоит из восьми битов. Для IEEE 802.3:

  • бит 0: устройство поддерживает 10BASE-T
  • бит 1: устройство поддерживает 10BASE-T в полном
  • бит 2: устройство поддерживает 100BASE-TX
  • бит 3: устройство поддерживает 100BASE-TX в полном
  • бит 4: устройство поддерживает 100BASE-T4
  • бит 5:
  • бит 6: asymmm c для полного
  • бит 7: зарезервировано

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

Базовая страница (кодовое слово базовой линии связи) достаточна для того, чтобы устройства объявляли, какие из режимов 10BASE-T, 100BASE-TX и 100BASE-T4 они поддерживают. Для гигабитного Ethernet требуются две другие страницы. Эти страницы отправляются, если оба устройства отправили базовые страницы со следующим битом страницы, равным единице.

  • половина возможность
  • является ли устройство однопортовым или многопортовым
  • независимо от того, конфигурируется ли мастер/ в ручном режиме или нет
  • независимо от того, сконфигурировано ли устройство вручную в качестве ведущего или ve

Неформатированная страница содержит 10-битное слово, называемое значением master- ve seed.

Несоответствие

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

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

Патенты

Автосогласование охватывается патентами США. 971, 018 (поданы 1992-11-02), 146, 729 (поданы 1993-11-01), 430, 143 (поданы 1995-04-26); европейскими патентными заявками SN 93308568.0 (DE,, GB, IT, NL); патентом Кореи No No No 286969695757585858888888660860708607070707070707070707070707070707707060Р Р Р Р Р Р Р Р Р Р Р Р Р Р Р Р Р Р Р Р Р Р Р Р Р Р Р Р Р Р Р Р Р Р Р Р Р Р Р Р Р Р Р Р Р Р Р Р Р Р Р Р Р Р Р Р Заявки SN H5-274147; Заявки на корейский патент SN 22995/93; Заявки на патент SN 83104531.

Сетевой адаптер (Network Interface Card, NIC) вместе со своим драйвером реализу­ет второй, канальный уровень модели открытых систем в конечном узле сети — компьютере. Сетевой адаптер совместно с драйвером выполняют две операции: передачу и прием кадра.

Передача кадра из компьютера в кабель состоит из следующих этапов:

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

· Оформление кадра данных аппаратного уровня, в который инкапсулируется кадр данных. Заполнение адресов назначения и источ­ника, вычисление контрольной суммы.

· Формирование символов кодов при использовании избыточных кодов типа
4В/5В. Скрэмблирование кодов для получения более равномерного спектра сигналов. Этот этап используется не во всех протоколах — например, технология Ethernet 10 Мбит/с обходится без него.

· Выдача сигналов в кабель в соответствии с принятым линейным кодом — манчестерским, NRZI, MLT-3 и т. п.

Прием кадра из кабеля в компьютер включает следующие действия.

· Прием из кабеля сигналов, кодирующих битовый поток.

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

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

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

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

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

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

В зависимости от того, какой протокол реализует адаптер, адаптеры делятся на Ethernet-адаптеры, Token Ring-адаптеры, FDDI-адаптеры и т. д.

Так как протокол Fast Ethernet позволяет за счет процедуры автопереговоров автоматически выбрать скорость работы сетевого адаптера в зависимости от возможностей концентратора, то многие адаптеры Ethernet сегодня поддерживают две скорости работы и имеют в своем названии приставку 10/100. Это свойство некоторые производители назы­вают авточувствительностью.

Сетевой адаптер перед установкой в компьютер необходимо конфигурировать. При конфигурировании адаптера обычно задаются номер прерывания IRQ, ис­пользуемого адаптером, номер канала прямого доступа к памяти DMA (если адап­тер поддерживает режим DMA) и базовый адрес портов ввода/вывода.




Если сетевой адаптер, аппаратура компьютера и операционная система поддер­живают стандарт Plug-and-Play, то конфигурирование адаптера и его драйвера осу­ществляется автоматически. В противном случае нужно сначала сконфигурировать сетевой адаптер, а затем повторить параметры его конфигурации для драйвера. В общем случае, детали процедуры конфигурирования сетевого адаптера и его драй­вера во многом зависят от производителя адаптера, а также от возможностей шины, для которой разработан адаптер.

Классификация сетевых адаптеров

В качестве примера классификации адаптеров используем подход фирмы 3Com. Фирма 3Com считает, что сетевые адаптеры Ethernet прошли в своем развитии три поколения.

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

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

В сетевых адаптерах второго поколения широко используются микросхемы с высокой степенью интеграции, что повышает надежность адаптеров. Кроме того, драйверы этих адаптеров основаны на стандартных спецификациях. Адаптеры вто­рого поколения обычно поставляются с драйверами, работающими как в стандарте NDIS (спецификация интерфейса сетевого драйвера), разработанном фирмами 3Com и Microsoft и одобренном IBM, так и в стандарте ODI (интерфейс открытого драй­вера), разработанном фирмой Novell.

В сетевых адаптерах третьего поколения (к ним фирма 3Com относит свои адап­теры семейства EtherLink III) осуществляется конвейерная схема обработки кад­ров. Она заключается в том, что процессы приема кадра из оперативной памяти компьютера и передачи его в сеть совмещаются во времени. Таким образом, после приема нескольких первых байт кадра начинается их передача. Это существенно (на 25-55 %) повышает производительность цепочки оперативная память — адаптер — физический канал — адаптер — оперативная память.

Адаптеры третьего поколения базируются на специализированных интеграль­ных схемах (ASIC), что повышает производительность и надежность адаптера при одновременном снижении его стоимости. Компания 3Com назвала свою техноло­гию конвейерной обработки кадров Parallel Tasking, другие компании также реали­зовали похожие схемы в своих адаптерах.

Выпускаемые сегодня сетевые адаптеры можно отнести к четвертому поколе­нию. В эти адаптеры обязательно входит ASIC, выполняющая функции МАС-уровня, а также большое количество высокоуровневых функций. В набор таких функций может входить поддержка агента удаленного мониторинга RMON, схе­ма приоритезации кадров, функции дистанционного управления компьютером и т. п. В серверных вариантах адаптеров почти обязательно наличие мощного процессора, разгружающего центральный процессор. Примером сетевого адапте­ра четвертого поколения может служить адаптер компании 3Com Fast EtherLink XL 10/100.

Функция автоматического определения типа сети (или скорости передачи), предусмотренная стандартом Ethernet, не является обязательной. Однако ее реализация в сетевых адаптерах и концентраторах позволяет существенно облегчить жизнь пользователям сети. Особенно это важно на современном этапе, когда широко применяются как ранняя версия Ethernet со скоростью обмена 10 Мбит/с, так и более поздняя версия Fast Ethernet со скоростью 100 Мбит/с.

Функция автодиалога или автосогласования (так можно перевести Auto–Negotiation) позволяет адаптерам, в которых предусмотрено переключение скорости передачи, автоматически подстраиваться под скорость обмена в сети, а концентраторам, в которых предусмотрен автодиалог, самим определять скорость передачи адаптеров, подключенных к их портам. При этом пользователь сети не должен следить за тем, на какую скорость обмена настроена его аппаратура: система сама выберет максимально возможную скорость.

Сразу следует отметить, что режим автодиалога применяется только в сетях на основе сегментов, использующих витые пары: 10BASE–T, 100BASE–TX и 100BASE–T4. Для сегментов на базе коаксиального кабеля и оптоволоконного кабеля, автодиалог не предусмотрен. Шинные сегменты на коаксиальном кабеле не дают возможности двухточечной связи, поэтому в них невозможно попарное согласование абонентов. А в оптоволоконных сегментах применяется другая система служебных сигналов, передаваемых между пакетами.

Автодиалог основан на использовании сигналов, передаваемых в Fast Ethernet, которые называются FLP (Fast Link Pulse) по аналогии с сигналами NLP (Normal Link Pulse), применяемыми в сегментах 10BASE–T. Так же, как и NLP, сигналы FLP начинают вырабатываться с включением питания соответствующей аппаратуры (адаптера или концентратора) и формируются в паузах между передаваемыми сетевыми пакетами, поэтому они никак не влияют на загрузку сети. Именно сигналы FLP и передают информацию о возможностях подключенной к данному сегменту аппаратуры.

Так как аппаратура 10BASE–T разрабатывалась до создания механизма автодиалога, для автоматического определения типа сети необходимо обрабатывать не только сигналы FLP, но и NLP. Это также предусмотрено в аппаратуре, поддерживающей автодиалог. Естественно, в такой аппаратуре, как правило, заложена возможность отключения режима автодиалога, чтобы пользователь сам мог задать режим работы своей сети.

Помимо уже упоминавшихся сегментов 10BASE–T, 100BASE–TX и 100BASE–T4 автодиалог обеспечивает обслуживание так называемых полнодуплексных (full duplex) сегментов сети Ethernet (10BASE–T Full Duplex) и сети Fast Ethernet (100BASE–TX Full Duplex).

Рассмотрим особенности полнодуплексного режима передачи.

Как уже упоминалось, связь между абонентами бывает трех основных видов:

· симплексная (всегда только в одну сторону),

· полудуплексная (по очереди то в одну сторону, то в другую),

· полнодуплексная (одновременно в две стороны).

Классический Ethernet использует полудуплексную связь: по его единственному кабелю в разное время может проходить разнонаправленная информация. Это позволяет легко реализовать обмен между большим количеством абонентов, но требует сложных методов доступа к сети (CSMA/CD).

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

· не требуется никакого механизма доступа к сети,

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

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

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

Таблица 12.4. Приоритеты автодиалога

Приоритет Тип сети
100BASE–TX Full Duplex
100BASE–T4
100BASE–TX
10BASE–T Full Duplex
10BASE–T

1 – высший приоритет, 5 – низший приоритет

Из таблицы следует, что если, например, аппаратура на обоих концах сегмента поддерживает обмен с двумя скоростями, например, в режимах 10BASE–T и 100BASE–TX, то в результате автодиалога будет выбран режим 100BASE–TX, как имеющий больший приоритет (обеспечивающий большую скорость).

Автодиалог предусматривает также разрешение ситуаций, когда на одном конце кабеля подключена двухскоростная аппаратура, а на другом– односкоростная. Например, если двухскоростной адаптер присоединен к концентратору 10BASE–T, в котором не предусмотрена возможность автодиалога, то он не будет получать сигналы FLP, а только NLP. В результате действия механизма автодиалога адаптер будет переключен в режим концентратора 10BASE–T. Точно так же, если двухскоростной концентратор присоединен к односкоростному адаптеру 100BASE–TX, не рассчитанному на автодиалог, то концентратор перейдет в режим адаптера 100BASE–TX. Этот механизм одностороннего определения типа сети называется параллельным детектированием (Parallel Detection).

В любом случае, автодиалог не может обеспечить большей скорости, чем самый медленный из компонентов сети. Таким образом, если к репитерному концентратору, в котором имеется функция автодиалога, подключены два адаптера: односкоростной 10BASE–T и двухскоростной (10BASE–T и 100BASE–TX), то вся сеть будет настроена на работу по стандарту 10BASE–T, так как никакого накопления информации и никакой ее обработки в репитерном концентраторе не предусмотрено. Присоединение к такому концентратору двух неперестраиваемых (односкоростных) адаптеров с разными скоростями делает сеть неработоспособной. Иногда в конструкции репитеров предусматривается автоматическое отключение портов, к которым присоединены неперестраиваемые низкоскоростные (10BASE–T) адаптеры. Некоторые концентраторы (самые сложные) могут автоматически перекоммутировать порты таким образом, чтобы сегменты со скоростью 10 Мбит/с обменивались информацией только между собой, а сегменты со скоростью 100 Мбит/с –между собой.

Помимо собственно определения типа сети и выбора максимально возможной скорости обмена автодиалог обеспечивает и некоторые дополнительные возможности. В частности, он позволяет определять, почему нарушилась связь в процессе работы, а также обмениваться информацией об ошибках. Для передачи этой дополнительной информации используется тот же самый механизм, что и для основного автодиалога, но только после того, как установлен тип сети и скорость передачи. Данная функция называется "функцией следующей страницы" (Next Page function).

Обмен информацией при автодиалоге производится посылками (пакетами) FLP–импульсов, которыми кодируется 16–битное слово. Каждая посылка содержит от 17 до 33 импульсов, идентичных импульсам NLP, которые используются в 10BASE–T. Посылки имеют длительность около 2 мс и передаются с периодом 16,8 мс (рисунок 12.8).

Рисунок 12.8 – Временная диаграмма автодиалога и 10BASE–T

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

Обмен информацией при автодиалоге осуществляется 16–битными словами, называемыми LCW (Link Code Word), с форматом, представленным на рисунке 12.10.

Рисунок 12.9 – Код, применяемый при автодиалоге

Рисунок 12.10 – Формат слова LCW, применяемого в автодиалоге

Пятиразрядное поле селектора (Selector Field) определяет один из 32 возможных типов стандарта сети. В настоящее время для него используется только два кода: код 00001 соответствует стандарту IEEE 802.3, а код 00010 – IEEE 802.9.

Восьмиразрядное поле технологических особенностей (Technology Ability Field) определяет тип сети в пределах стандарта, заданного битами поля селектора. Для стандарта IEEE 802.3 пока что определены пять типов, которые представлены в таблице 12.4.

Бит удаленной ошибки RF (Remote Fault) позволяет передавать информацию о наличии ошибок. Бит подтверждения Ack (Acknowledge) используется для подтверждения получения посылки. Наконец, бит следующей страницы NP (Next Page) говорит о поддержке функции следующей страницы, о том, что абонент собирается передавать еще и дополнительную информацию в следующем слове.

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

1. Абонент 1 передает свою посылку (LCW) с неустановленным (равным нулю) битом Ack.

2. Абонент 2 в ответ начинает передавать последовательные ответные посылки (LCW).

3. Когда абонент 1 получает три последовательные посылки от абонента 2 (бит Ack при этом игнорируется), он передает посылку с установленным (равным единице) битом Ack (подтверждает правильный прием LCW от абонента 2).

4. Абонент 2 продолжает передавать свои LCW с установленным битом Ack.

5. Когда абонент 1 получает три последовательные посылки от абонента 2 с установленным битом Ack, он понимает, что абонент 2 правильно принял его LCW.

6. Абонент 1 передает свое LCW с установленным битом Ack 6—8 раз для гарантии, что диалог завершен полностью.

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

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

Для реализации функции следующей страницы используется бит NP (см. рисунок 12.10). Если оба абонента устанавливают его в своих LCW, то есть оба они поддерживают эту функцию, то между ними может быть произведен дополнительный обмен информацией такими же 16–разрядными словами, но с другим форматом. В этих словах 11 битов отводится на информацию, а пять битов используются как служебные. В частности, это позволяет производить более полную диагностику аппаратуры, а также выявлять повышенный уровень помех в линии связи. Вероятно, в дальнейшем принцип автодиалога будет совершенствоваться, включая в себя другие стандарты и типы сети, давая возможность разрешения все новых задач. Но его реализация в принципе невозможна при стандартной топологии шина, поэтому, скорее всего, доля шинных сегментов (10BASE2 и 10BASE5) будет все больше сокращаться. И в новых сетях (Fast Ethernet, Gigabit Ethernet) шинные сегменты вряд ли появятся.

Читайте также: