Автосогласование

Материал из Википедии — свободной энциклопедии
Перейти к навигации Перейти к поиску

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

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

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

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

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

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

• Один вручную настроен на полудуплекс, а другой - на полный дуплекс

• Один установлен на автосогласование, а другой - на полный дуплекс

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

Спорные части спецификаций автосогласования были устранены в версии 802.3 1998 года. Позднее за этим последовал выпуск стандарта IEEE 802.3ab Gigabit Ethernet в 1999 году. В новом стандарте указывалось, что для Ethernet 1000BASE-T со скоростью 1 Гбит/с требуется автосогласование. В настоящее время большинство производителей сетевого оборудования рекомендуют использовать автосогласование на всех портах доступа и включить его в качестве настройки по умолчанию[7][8][9].

Стандарты 1000BASE-TX и 10GBASE-T также требуют автосогласования.

Функция[править | править код]

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

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

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

Приоритет[править | править код]

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

  1. 40GBASE-T полный дуплекс
  2. 25GBASE-T полный дуплекс
  3. 10GBASE-T полный дуплекс
  4. 5GBASE-T полный дуплекс
  5. 2.5GBASE-T полный дуплекс
  6. 1000BASE-T полный дуплекс
  7. 1000BASE-T полудуплекс
  8. 100BASE-T2 полный дуплекс
  9. 100BASE-TX полный дуплекс
  10. 100BASE-T2 полудуплекс
  11. 100BASE-T4 полудуплекс
  12. 100BASE-TX полудуплекс
  13. 10BASE-T полный дуплекс
  14. 10BASE-T полудуплекс

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

Электрические сигналы[править | править код]

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

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

Автоматическое согласование использует аналогичные импульсы, помеченные как 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: асимметричная пауза для полного дуплекса
  • бит 7: зарезервирован

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

Кодовые слова линии связи также называются страницами. Поэтому базовое кодовое слово ссылки называется базовой страницей. Бит следующей страницы базовой страницы равен 1, когда устройство намеревается отправить другие страницы, которые можно использовать для передачи других возможностей. Эти дополнительные страницы отправляются, только если оба устройства отправили базовые страницы с битом следующей страницы, установленным на 1. Дополнительные страницы по-прежнему кодируются в виде кодовых слов линии связи (с использованием 17 тактовых импульсов и до 16 битовых импульсов).

Сообщение и неформатированная страница[править | править код]

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

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

Режимы, поддерживаемые 1000BASE-T, и данные «главный-подчиненный» (которые используются для определения того, какое из двух устройств выступает в качестве ведущего, а какое - в качестве ведомого) отправляются с использованием одной страницы сообщения, за которой следует одна неформатированная страница. Страница сообщения содержит:

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

Неформатированная страница содержит 10-битное слово, называемое начальным значением главный-подчиненный.

Несоответствие дуплекса[править | править код]

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

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

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

Патенты[править | править код]

Автосогласование защищено патентами U.S. Patent 5,617,418, U.S. Patent 5,687,174, E U.S. Patent RE39,405 E, E U.S. Patent RE39,116 E, 971,018 (filed 1992-11-02), 146,729 (filed 1993-11-01), 430,143 (filed 1995-04-26);[6]:6 European Patent Applications SN 93308568.0 (DE, FR, GB, IT, NL); Korean Patent No. 286791; Taiwanese Patent No. 098359; Japanese Patent No. 3705610; Japanese Patent 4234. Applications SN H5-274147; Korean Patent Applications SN 22995/93; Taiwanese Patent Applications SN 83104531.

Примечания[править | править код]

  1. "Clause 28: Physical Layer link signaling for Auto-Negotiation on twisted pair", IEEE 802.3, p. 278
  2. Jayaswal, Kailash. Administering Data Centers Servers, Storage, and Voice over IP.. — Hoboken : John Wiley & Sons, 2005. — P. 168. — ISBN 0471783358.
  3. Schmidt, Daniel Minoli, Andrew. Switched network services. — New York : Wiley Computer Pub., 1998. — P. 93. — ISBN 0471190802.
  4. IEEE. Part 3: Carrier Sense Multiple Access with Collision Detection (CSMA/CD) access method and Physical Layer specifications. SECTION TWO: This section includes Clause21 through Clause 33 and Annex 22A through Annex 33E.. Дата обращения: 3 июня 2014. Архивировано 6 июня 2014 года.
  5. Negotiated Data Solutions LLC. "NWay/IEEE Standard Patent License Offer | Negotiated Data Solutions LLC". Negotiateddata.com
  6. Jim Eggers and Steve Hodnett. Ethernet Autonegotiation Best Practices. Sun Microsystems (июль 2004). — «Using autonegotiation is the IEEE 802.3 standard and customers are encouraged to follow the "intent" of IEEE 802.3u/z standards and implement autonegotiation in their Ethernet environments.» Архивировано 20 мая 2011 года.
  7. Rich Hernandez. Gigabit Ethernet Auto-Negotiation. Dell. Дата обращения: 12 января 2012. Архивировано 5 февраля 2012 года.
  8. IEEE 802.3 Annex 28B
  9. IEEE Link Task Force Autodetect, Specification for NWay Autodetect. Архивировано 14 июля 2011 года.

Литература[править | править код]

Ссылки[править | править код]