Вопрос: Столкновения в CSMA / CD Ethernet


Я смущен насчет коллизий в CSMA / CD Ethernet. Когда будет отправлен сигнал замятия? Зачем посылаются ли помехи? Если две одновременные передачи пакетов мешают друг другу, два передающих узла могут знать, что напряжение слишком велико, чтобы они могли завершить свои передачи, а затем передать 32-битный сигнал помехи, но почему? Может ли кто-нибудь записывать все события один за другим во временной последовательности?


4
2018-03-29 20:39


Источник


для этого нужен тег «домашняя работа»? - Spiff


Ответы:


Во-первых, будьте осторожны, что современные коммутируемые локальные сети Ethernet больше не являются CSMA / CD. CSMA / CD был методом, который применялся к сетям со скоростью 10 мбит / с и 100 мбит / с, которые использовали концентраторы, а не переключатели. И, честно говоря, никогда не было много концентраторов 100BASE-TX; в то время все шли к переключателям. Спецификация Gigabit Ethernet (1000BASE-T) требует переключателей; нет такой вещи, как концентратор GigE.

На современных коммутируемых сетях у вас больше нет общего носителя. Когда вы подключены к коммутатору, «домен конфликтов» находится только между вами и вашим коммутационным портом. И если вы находитесь в полнодуплексном режиме, что почти всегда верно для коммутаторов, то у вас вообще нет возможности столкновения. Если вы не можете столкнуться, вы никогда не обнаружите столкновение, поэтому у вас никогда не будет причины передавать сигнал замятия.

Таким образом, во времена хабов (и разделяемые кабели, такие как тонкий / дешевый / 10BASE-2 коаксиальный и толстый 10BASE-5), вот как это работает:

Представьте, что у вас есть большая локальная сеть 10BASE-T с большим количеством концентраторов и макс. Длинных кабелей, максимизируя «правило повторителя» максимум 4 повторителей (концентраторов) между любыми двумя устройствами в локальной сети. Из-за задержек распространения сигнала по концентраторам он может получить максимум IEEE-спектра в 232 бит-раз для сигнала, передаваемого от хоста A, чтобы достичь самого дальнего хоста в сети (хост B).

Теперь представьте, что хост A начинает передавать фрейм и, к несчастью, хост B, на другом конце сети, в 232 бит-раз, начинает передавать кадр всего 231 бит раз после того, как Host A начал передавать. Из-за задержек распространения в сети хост B не знал, что Host A уже был 231 бит в его передаче, когда Host B отправил первый бит своей преамбулы. Теперь Host B обнаружит это столкновение в первой, скажем, 32 битах передачи Host B, которая может быть примерно от 232 до 264 бит быстрее, чем Host A будет ее обнаруживать. Если хост B обнаружил его на первом бите передачи и просто прекратил передачу момента обнаружения этого столкновения, то он, возможно, не остался на носителе достаточно долго, чтобы Хост А также обнаружил его и понял, что произошло столкновение ( вы не можете гарантировать, что приемник обнаружит столкновение на первом бите столкновения). Тогда это означало бы, что Хост А не знал, чтобы сделать правильную процедуру обработки столкновений. Поэтому вместо того, чтобы просто прекратить передачу, хост B передает сигнал Jam, чтобы он оставался на среде достаточно долго, чтобы убедиться, что Host A понимает, что произошло столкновение.

Это также является причиной того, что кадры Ethernet имеют минимальную длину 64 байта. Это гарантирует, что Host A остается на среде достаточно долго, чтобы коллизия могла быть обнаружена полностью на другой стороне сети, а сигнал Jam от хоста B может полностью продвигаться по сети, так что Host A все еще находится на носителе, когда поступает сигнал Jam, поэтому он может понять, что кто-то столкнулся с его передачей.


11
2018-03-29 23:55



Не требуется ли csma / cd в полнодуплексных соединениях? если да, то почему? Договорились, что отправка и прием осуществляется в двух разветвленных кабелях, поэтому не будет никакого столкновения, если устройство одновременно отправляет и принимает. Но что, если устройство получает данные из двух источников одновременно? Тогда будет конфликт? - Ashwin
@Ashwin Коммутатор должен был бы буферизовать один из двух кадров, которые он получал одновременно (на двух отдельных портах, поэтому не было столкновений) и отправить один до другого на целевой узел. - Spiff
Означает ли это, что в полнодуплексных, коммутируемых сетях Ethernet фрейм Ethernet больше не должен быть как минимум 64 байта? Во-вторых, если gigabit Ethernet является полнодуплексным, существует ли минимальный размер кадра для гигабитного Ethernet?
@GeorgeRobinson. IEEE не удалял требования к минимальному размеру кадра в 64 байта, даже если он не выполняет большую часть цели на коммутируемом Ethernet, как это было в старых полудуплексных сетевых концентраторах. - Spiff