Я пытаюсь понять, как происходит конфликт в Ethernet, особенно когда существует несоответствие дуплексных режимов или когда в устаревшей сети Ethernet два узла передают одновременно.
Каждый объясняет конфликт на верхнем уровне (два кадра сталкиваются, когда один отправляется, а другой принимается). Однако приведенный ниже график показывает, что существуют разные схемы для Rx и Tx. Как может произойти коллизия, поскольку существуют выделенные каналы для отправки и получения кадров?
РЕДАКТИРОВАТЬ : Может быть, лейбл "Hub MDI-X" вызывает некоторую путаницу в отношении вопроса моего. Я не спрашиваю, как функциональность концентратора может вызвать столкновение. Я сосредоточен на связи между двумя узлами с интерфейсами MDI или MDI-X (концентратор и коммутаторы имеют интерфейсы MDI-X). В любом из этих двух случаев, как может происходить конфликт между двумя узлами, когда у них есть несоответствие дуплекса, в то время как при несоответствии дуплекса Rx и Tx все еще имеют свои выделенные каналы?
источник
Ответы:
Чтобы понять это, вам нужно понять исторический контекст.
Первоначально Ethernet использовал общий коаксиальный кабель. Только одно устройство может успешно передавать данные одновременно. Если два устройства передавались одновременно, это считалось столкновением.
Затем пришли повторители, чтобы увеличить расстояние и увеличить количество узлов. Повторитель определит, какой порт передает, а затем повторить этот сигнал на других портах. Чтобы сохранить обнаружение столкновения, работающие ретрансляторы должны были иметь некоторые функциональные возможности для обеспечения того, чтобы все узлы обнаруживали столкновение. Первые повторители имели только два порта, но более поздние повторители могли иметь несколько портов, и они стали известны как концентраторы, особенно при использовании в сочетании с проводкой по витой паре. Ретрансляторы были довольно тупыми устройствами, они регенерировали электрические сигналы, но немного больше.
Затем пришел 10BASE-T, который, как вы заметили, имеет выделенные каналы данных для каждого направления. Тем не менее, он все еще должен был соответствовать существующей модели, поэтому по умолчанию он работал в «полудуплексном» режиме, где он эмулировал коаксиальный кабель. Сигналы на самом деле не сталкивались на проводе, но приемопередатчики действовали так, как если бы они это делали, и ретрансляторы предпримут те же шаги, что и раньше, чтобы убедиться, что это видно по всей сети.
Ethernet для витой пары также может поддерживать режим «полный дуплекс». В этом режиме все связанное с коллизиями оборудование отключено, и оба конца могут передавать в любое время. Однако этот режим принес пару серьезных минусов.
Эти проблемы означали, что на практике системы 10BASE-T почти всегда работали в полудуплексном режиме.
Для 100BASE-TX ситуация резко улучшилась. Ethernet-коммутаторы (технически быстрые многопортовые мосты) упали в цене до такой степени, что можно было бы исключить тупые концентраторы повторителей. Автосогласование позволило сетевым картам устанавливать полнодуплексные соединения без подверженной ошибкам ручной настройки. Если вы подключите две сетевые карты 100BASE-TX вместе с перекрестным кабелем или подключите сетевую карту 100BASE-TX к коммутатору и не будете предпринимать шаги для ручного переопределения, они почти наверняка будут согласовывать полнодуплексный режим.
Теоретически 1000BASE-T имеет полудуплексный режим, который, как утверждают некоторые сетевые адаптеры, поддерживает спецификацию гигабитных многопортовых ретрансляторов, но я никогда не видел доказательств того, что кто-либо когда-либо продавал один из них. На практике гигабитная связь почти наверняка будет работать в дуплексном режиме.
Более высокие скорости полностью отказались от полудуплексного режима.
источник
Концентратор - это всего лишь кабель с питанием, который повторяет каждый сигнал, который он получает на одном интерфейсе, для всех остальных интерфейсов. Если два устройства одновременно передают на прием интерфейсов концентратора, концентратор повторяет оба сигнала одновременно для передачи всех других интерфейсов концентратора, и оба полученных сигнала будут конфликтовать при передаче других интерфейсов, таким образом вы столкнулись, когда все другие интерфейсы имеют сигналы мусора, потому что это два сигнала одновременно. Хосты, которые отправляют одновременно и слышат другой сигнал, поймут, что за один раз отправляется больше одного, и они определят, что произошла коллизия.
Подумайте об этом, прием каждого интерфейса концентратора связан с передачей любого другого интерфейса. Внутри концентратора передача и прием связаны, даже если они разделены на интерфейсе.
Сравните это с коммутатором, где каждая ссылка заканчивается на интерфейсе коммутатора, и у коммутатора нет интерфейсов, соединенных вместе. Вместо этого коммутатор имеет логику (обычно встроенную в аппаратное обеспечение) для определения, куда отправлять кадры, которые он получает на одном интерфейсе, и для предотвращения конфликтов внутри коммутатора.
Коммутатор - это мост высокой плотности. Оригинальные мосты были похожи на ПК с несколькими интерфейсами. Вы не ожидаете, что ПК с несколькими интерфейсами будет иметь коллизии, если он получит одновременные кадры на нескольких интерфейсах.
Редактировать:
Ваши комментарии заставляют меня поверить, что вы все еще не понимаете того, что я написал выше о хабах.
Способ обнаружения коллизий при использовании UTP и концентратора - отправляющие устройства слышат другой сигнал во время отправки. Если устройство, использующее UTP, настроено для полудуплексного режима, оно будет считать, что при отправке сигнала слышит конфликт.
При наличии несоответствия дуплексного режима устройство, настроенное для полнодуплексного режима, будет успешно отправлять данные при приеме с устройства, настроенного для полудуплексного режима. С другой стороны, устройство, настроенное для полудуплексного режима, будет полагать, что при отправке возникает конфликт, и слышит этот сигнал от устройства, настроенного для полнодуплексного режима. Это вызовет все типы проблем, потому что устройство, настроенное для полудуплексного режима, прекратит отправку кадра (вызывая рывок) и отправит сигнал глушения, которого не ожидает устройство, настроенное для полнодуплексного режима. Устройство, настроенное на полный дуплекс, прекратит отправку своего кадра.
источник
Отличный вопрос
В полнодуплексном режиме есть выделенный канал для трафика «слева направо» и выделенный канал для трафика «справа налево»:
Поэтому в полнодуплексном режиме коллизии невозможны - даже если оба NIC передают одновременно.
Однако в полудуплексном режиме трафик в обоих направлениях предназначен только для использования по проводам, по одному направлению за раз. Таким образом, хотя физически все еще есть выделенные каналы, логически, если один NIC получает что-то во время передачи, он регистрирует это как коллизию. Биты / сигнал на самом деле не «сталкиваются» на проводе - счетчик столкновений просто увеличивается, когда сетевой адаптер одновременно получает и передает.
источник
С витой парой и ретранслятором концентратор не намного больше, чем цифровой усилитель. Для этого он распознает несущую по входящему сигналу на одном порту и переключает все остальные порты в режим вывода. В этом режиме вывода любой дополнительный входящий носитель является коллизией. Это вызывает сигнал заедания, чтобы распространить столкновение и заставить отправителя прекратить передачу.
Этот повторяющийся метод имитирует поведение предыдущих вариантов Ethernet с общим носителем (10BASE5 и 10BASE2), где повторитель использовался только в качестве физических соединений сегментов или удлинителей линий. Конечно, вы правы: витая пара является полнодуплексной средой на уровне проводов, где столкновение происходит только на верхнем физическом уровне, а не на самом проводе.
Ретранслятор не может разрешить более одного отправителя одновременно. Несколько одновременных передач будут смешиваться на выходных портах и производить непонятный шум. Аналогично, любой узел в полудуплексном режиме предполагает использование общей среды, неспособной к полнодуплексной передаче. Любая несущая, обнаруженная во время передачи, является столкновением, в результате чего отправитель отступает. Независимо от того, поддерживает ли среда полный дуплекс (оптоволокно, витая пара) или нет (коаксиальный кабель), не имеет значения.
При дуплексном несовпадении один конец канала находится в полудуплексном режиме, а другой - в дуплексном режиме. Теперь, когда сторона полудуплекса (HDX) передает, любая несущая на его приемнике вызывает обнаружение коллизии. Тем не менее, сторона полного дуплекса (FDX) может успешно отправлять данные, пока она принимает данные со стороны HDX, и она полностью не замечает коллизии, которые она создает на дальней стороне. Сторона HDX должна прервать передачу и отправить сигнал замятия. Поскольку сторона FDX не может обнаружить предполагаемое столкновение, она обнаруживает частичный и, следовательно, поврежденный кадр.
Низкочастотные и малые кадры имеют реальный шанс преодолеть это несоответствие дуплекса, поэтому они
ping
могут действительно работать. Однако, как только любая серьезная передача пытается начать работу, более высокая частота кадра и больший размер сделают передачу очень надежной.С неуправляемыми коммутаторами очень трудно обнаружить несоответствие дуплекса, особенно когда даже сетевые адаптеры хоста не сообщают должным образом о своем дуплексном режиме.
С управляемыми коммутаторами у вас обычно есть счетчики ошибок порта. Увеличение количества столкновений на одной стороне (HDX) и увеличение количества ошибок и ошибок FCS на другой стороне (FDX) являются очень убедительными признаками несоответствия дуплексных режимов.
По сути, полагаться на автосогласование - очень хорошая практика, чтобы избежать несоответствия дуплексных режимов. Ручная настройка скорости и дуплексного режима обычно приводит к несоответствию, особенно при замене оборудования через несколько лет. К счастью, вся полудуплексная схема ушла с гигабитным Ethernet и быстрее.
источник
Предположим, что машина A начинает отправку данных на машину B. Когда пакет начинает отправляться, машина C начинает отправлять разные данные на машину B. Существует только один путь сигнала к машине B, поэтому передачи от A и C сталкиваются, и B не может быть возможно получить их обоих.
Тот факт, что для передачи данных от машины B к машине A и к машине C используется другая схема, не помогает. Все, что происходит, - это то, что A и C пытаются одновременно передавать данные на устройство B, и существует только один путь передачи сигнала на устройство B.
источник