Несоответствие дуплекса - Duplex mismatch

На Ethernet соединение, а дуплексное несовпадение это состояние, при котором два подключенных устройства работают в разных дуплексные режимы, то есть один работает в полудуплексном режиме, а другой - в полнодуплексном. Эффект несоответствия дуплексного режима - ссылка, которая работает неэффективно. Несоответствие дуплексного режима может быть вызвано ручной настройкой двух подключенных сетевых интерфейсов на разные дуплексные режимы или подключением устройства, которое выполняет автосогласование на тот, который вручную установлен в полнодуплексный режим.[1]

Несоответствие дуплексного режима из-за автосогласования

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

Стандарты Ethernet и основные производители оборудования Ethernet рекомендуют включать автосогласование.[2][3][4] Тем не менее, сетевое оборудование позволяет отключать автосогласование, а в некоторых сетях автосогласование отключено на всех портах и ​​используется фиксированная модальность 100 Мбит / с и полный дуплекс. Это часто делалось сетевыми администраторами намеренно при введении автосогласования из-за проблемы совместимости с исходной спецификацией автосогласования. Фиксированный режим работы работает хорошо, если на обоих концах подключения установлены одинаковые настройки. Однако поддерживать такую ​​сеть и гарантировать согласованность сложно. Поскольку автосогласование обычно является настройкой производителя по умолчанию, почти наверняка в среде, где политика должна иметь фиксированные настройки порта, кто-то рано или поздно оставит порт, настроенный для использования автосогласования, по ошибке.[5]

Эффекты дуплексного несоответствия

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

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

В таких условиях полнодуплексный конец соединения отправляет свои пакеты, одновременно принимая другие пакеты; в этом и заключается суть полнодуплексного соединения. Между тем, полудуплексный конец не может принимать входящие данные во время отправки - он будет воспринимать это как столкновение. Полудуплексное устройство прекращает текущую передачу данных, вместо этого отправляет сигнал блокировки, а затем повторяет попытку позже в соответствии с CSMA / CD. Это приводит к тому, что полнодуплексная сторона получает неполный кадр с ошибкой CRC или короткая рама. Он не обнаруживает никаких конфликтов, поскольку CSMA / CD отключен на стороне полнодуплексного режима. В результате, когда оба устройства пытаются передать (почти) в одно и то же время, пакет, отправленный полнодуплексным концом, будет отброшен и потерян из-за предполагаемого конфликта, а пакет, отправленный полудуплексным устройством, будет задержан. или потеряны из-за ошибки CRC в кадре.[6]

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

Конечным результатом является соединение, которое работает, но выполняет очень сильно плохо из-за несовпадения дуплексов. Симптомами несоответствия дуплексного режима являются соединения, которые, кажется, нормально работают с пинг команда, но легко "блокируется" из-за очень низкой пропускной способности при передаче данных; эффективная скорость передачи данных, вероятно, будет асимметричной и будет намного хуже в направлении от полудуплекса к полнодуплексу, чем в другом. В обычных полудуплексных операциях поздние столкновения не происходит. Однако при несоответствии дуплекса столкновения, наблюдаемые на стороне полудуплекса канала связи, часто являются поздними конфликтами. Сторона полнодуплексного режима обычно регистрирует последовательность проверки кадра ошибки, или короткие кадры.[7][8] Просмотр этой стандартной статистики Ethernet может помочь диагностировать проблему.

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

Рекомендации

  1. ^ «Несоответствие дуплексного режима порта коммутатора». Архивировано из оригинал на 2011-07-14. Получено 2011-02-15.
  2. ^ «Настройка и устранение неполадок Ethernet 10/100 / 1000Mb с автосогласованием полудуплексного / полнодуплексного режима». Cisco. Получено 2012-01-12. Cisco рекомендует оставить автоматическое согласование для устройств, совместимых с 802.3u.
  3. ^ Джим Эггерс и Стив Ходнетт (июль 2004 г.). «Лучшие практики автосогласования Ethernet» (PDF). Sun Microsystems. Архивировано из оригинал (PDF) на 2011-05-20. Использование автосогласования является стандартом IEEE 802.3, и клиентам рекомендуется следовать «намерениям» стандартов IEEE 802.3u / z и внедрять автосогласование в своих средах Ethernet.
  4. ^ Рич Эрнандес (2001). «Автосогласование Gigabit Ethernet». Dell. Получено 2012-01-12.
  5. ^ «Автосогласование в Ethernet - это работает, оно должно быть обязательным!». 2010-03-10. Получено 2012-10-12.
  6. ^ Гэри А. Донахью (2007). Сетевой воин. О'Рейли. п. 21. ISBN  978-0-596-10151-0.
  7. ^ США 6580697, "Расширенное автосогласование Ethernet" 
  8. ^ Джим Эггерс и Стив Ходнетт (июль 2004 г.). «Лучшие практики автосогласования Ethernet» (PDF). Sun Microsystems. Получено 2011-02-18.

внешняя ссылка