Введение

Автоматическое согласование – это сигнальный механизм и процедура, используемая Ethernet по витой паре, посредством которой два подключенных устройства выбирают общие параметры передачи, такие как скорость, режим дуплекса и управление потоком данных. В этом процессе подключенные устройства сначала обмениваются информацией о своих возможностях в отношении этих параметров, а затем выбирают режим передачи с максимальной производительностью, который поддерживают оба устройства. Автоматическое согласование для витой пары определено в разделе 28 стандарта IEEE 802.3 и изначально было необязательным компонентом стандарта Fast Ethernet. Оно обратно совместимо с обычными сигналами связи (NLP), используемыми в 10BASE-T. Протокол был значительно расширен в стандарте Gigabit Ethernet и является обязательным для Gigabit Ethernet 1000BASE-T по витой паре. В модели OSI автоматическое согласование функционирует на физическом уровне.

Стандартизация и операционная совместимость

В 1995 году был выпущен стандарт Fast Ethernet. Поскольку он предлагал новую скорость передачи данных для тех же кабелей, он включал механизм, позволяющий подключенным сетевым адаптерам согласовывать оптимальный режим совместной работы. Протокол автоматического согласования, описанный в пункте 28 стандарта IEEE 802.3, был разработан на основе запатентованной технологии National Semiconductor, известной как NWay. Компания предоставила гарантийное письмо, разрешающее использование их системы за единовременный лицензионный сбор. С тех пор права на этот патент приобрела другая компания. Первая версия спецификации автоматического согласования, реализованная в стандарте IEEE 802.3u Fast Ethernet 1995 года, отличалась у разных производителей, что приводило к проблемам совместимости. Эти проблемы заставили многих сетевых администраторов вручную настраивать скорость и режим дуплексной связи каждого сетевого интерфейса. Однако использование ручных настроек может привести к несовпадению режимов дуплексной связи, которое сложно диагностировать, поскольку сеть формально работает. Простые инструменты для тестирования сети, такие как ping, могут показывать действующее соединение. Однако производительность сети значительно снижается из-за прерываний передачи и последующей потери Ethernet-кадров, вызванных несовпадением режимов дуплексной связи. При несовпадении режимов дуплексной связи сторона соединения, использующая полудуплексный режим, будет сообщать о поздних коллизиях, а сторона, использующая полнодуплексный режим, – об ошибках FCS. Спецификация автоматического согласования была улучшена в версии стандарта IEEE 802.3, выпущенной в 1998 году. За этим последовал выпуск стандарта IEEE 802.3ab Gigabit Ethernet в 1999 году, который требовал обязательного автоматического согласования для 1000BASE-T. Автоматическое согласование также является обязательным для реализаций 1000BASE-TX и 10GBASE-T. В настоящее время большинство производителей сетевого оборудования рекомендуют использовать автоматическое согласование на всех портах доступа и включают его в качестве заводской настройки по умолчанию.

Функция

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

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

Автонегоциация основана на импульсах, аналогичных тем, которые используются устройствами 10BASE-T для обнаружения наличия соединения с другим устройством. Эти импульсы проверки целостности канала связи (LIT) отправляются устройствами Ethernet, когда они не отправляют и не принимают кадры. Они представляют собой однополярные положительные электрические импульсы номинальной длительностью 100, с максимальной шириной импульса 200, генерируемые через временной интервал в 16 единиц с допустимым отклонением по времени 8. Устройство обнаруживает разрыв соединения, если в течение 50–150 мс не принят ни один кадр, ни два импульса LIT. Для работы этой схемы устройства должны отправлять импульсы LIT независимо от приема каких-либо сигналов. В спецификации автонегоциации эти импульсы называются импульсами нормальной связи (NLP). NLP, используемые при автонегоциации, по-прежнему однополярны, только положительные и имеют номинальную длительность 100, но каждый импульс LIT заменяется пакетом импульсов, состоящим из 17–33 импульсов, отправляемых с интервалом 125. Каждый пакет импульсов называется пакетом импульсов быстрой связи (FLP). Временной интервал между началом каждого пакета FLP такой же, как и между NLP. Пакет FLP состоит из 17 NLP с временным интервалом 125 с допуском 14. Между каждой парой двух последовательных NLP (т.е. через 62,5 после первого NLP пары импульсов) может присутствовать дополнительный положительный импульс. Наличие этого дополнительного импульса указывает на логическую 1, его отсутствие – на логический 0. В результате каждый FLP содержит 16-битное слово данных. Это слово данных называется кодовым словом канала связи (LCW). Биты LCW нумеруются от 0 до 15, где бит 0 соответствует первому возможному импульсу по времени, а бит 15 – последнему.

Двухмерное несоответствие

Двухстороннее несовпадение возникает, когда два подключенных устройства настроены в разных режимах дуплекса. Это может произойти, например, если одно из них настроено на автоматическое согласование, а другое имеет фиксированный режим работы – полный дуплекс (без автоматического согласования). В таких условиях устройство с автоматическим согласованием правильно определяет скорость соединения, но не может правильно определить режим дуплекса. В результате оно устанавливает правильную скорость, но предполагает полудуплексный режим. Когда одно устройство работает в полном дуплексе, а другое – в полудуплексе, соединение работает надежно только на очень низкой скорости передачи данных. Устройство, работающее в полном дуплексе, может передавать данные одновременно с приемом. Однако, если полудуплексное устройство получает данные во время передачи, оно обнаруживает коллизию и прерывает передачу, после чего пытается повторно отправить кадр. Устройство полного дуплекса будет сообщать об ошибках контрольной суммы кадров (FCS) для прерванных передач. В зависимости от времени, полудуплексное устройство может обнаружить запоздалую коллизию, которую оно интерпретирует как серьезную ошибку, а не как нормальное следствие CSMA/CD, и может не пытаться повторно отправить кадр. Устройство полного дуплекса не обнаруживает коллизий и предполагает, что кадр был получен без ошибок. Сочетание (запоздалых) коллизий, зарегистрированных на полудуплексной стороне, и ошибок FCS, зарегистрированных на стороне полного дуплекса, указывает на наличие двухстороннего несовпадения.