Множественный доступ с контролем несущей и обнаружением коллизий ( CSMA/CD ) — это метод управления доступом к среде (MAC), который использовался в основном в ранней технологии Ethernet для локальных сетей . Он использует контроль несущей для задержки передач до тех пор, пока другие станции не перестанут передавать. Это используется в сочетании с обнаружением коллизий, при котором передающая станция обнаруживает коллизии, контролируя передачи от других станций во время передачи кадра . При обнаружении этого состояния коллизии станция прекращает передачу этого кадра, передает сигнал застревания, а затем ждет в течение случайного интервала времени, прежде чем попытаться повторно отправить кадр. [1]
CSMA/CD — это модификация чистого множественного доступа с контролем несущей (CSMA). CSMA/CD используется для улучшения производительности CSMA путем прекращения передачи сразу после обнаружения коллизии, тем самым сокращая время, необходимое для повторной попытки.
С ростом популярности коммутаторов Ethernet в 1990-х годах стандарт IEEE 802.3 в 2011 году объявил устаревшими повторители Ethernet [2] , что сделало работу CSMA/CD и полудуплексного режима менее распространенной и менее важной.
Для инициирования передачи используется следующая процедура. Процедура завершается, когда кадр успешно передан или во время передачи обнаружено столкновение. [3] : 33
Для разрешения обнаруженной коллизии используется следующая процедура. Процедура завершается, когда инициируется повторная передача или когда повторная передача прерывается из-за многочисленных коллизий.
Методы обнаружения столкновений зависят от среды. На общей электрической шине, такой как 10BASE5 или 10BASE2 , столкновения могут быть обнаружены путем сравнения переданных данных с полученными данными или путем распознавания более высокой, чем обычно, амплитуды сигнала на шине. [4] [5] На всех других средах носитель, обнаруженный на канале приема во время передачи, запускает событие столкновения. [6] Повторители или концентраторы обнаруживают столкновения самостоятельно и распространяют сигналы помех. [7] [8]
Процедуру восстановления после столкновения можно сравнить с тем, что происходит на званом ужине, где все гости общаются друг с другом через общую среду (воздух). Перед тем как говорить, каждый гость вежливо ждет, пока текущий говорящий закончит. Если два гостя начинают говорить одновременно, оба останавливаются и ждут короткие случайные промежутки времени (в Ethernet это время измеряется в микросекундах). Надежда состоит в том, что, выбрав каждый случайный промежуток времени, оба гостя не выберут одно и то же время, чтобы попытаться снова заговорить, тем самым избежав еще одного столкновения.
Сигнал глушения или сигнал глушения — это сигнал , который несет в себе 32-битный двоичный шаблон, отправляемый станцией передачи данных, чтобы информировать другие передающие станции о столкновении и о том, что они не должны передавать данные. [9] [10]
Максимальное время задержки рассчитывается следующим образом: Максимально допустимый диаметр установки Ethernet ограничен 232 битами. Это составляет время приема-передачи 464 бита. Поскольку время слота в Ethernet составляет 512 бит, разница между временем слота и временем приема-передачи составляет 48 бит (6 байтов), что является максимальным временем задержки .
Это, в свою очередь, означает: станция, заметившая, что произошла коллизия , отправляет шаблон длиной от 4 до 6 байт, состоящий из 16 комбинаций битов 1-0. [примечание 2]
Цель этого — гарантировать, что любой другой узел, который в данный момент может получать кадр, получит сигнал о заторе вместо правильного 32-битного MAC CRC; это заставляет другие приемники отбрасывать кадр из-за ошибки CRC.
Поздняя коллизия — это тип коллизии, которая происходит дальше в пакете, чем это разрешено стандартом рассматриваемого протокола. В Ethernet с общей средой передачи данных со скоростью 10 мегабит в секунду, если ошибка коллизии происходит после того, как первые 512 бит данных переданы передающей станцией, [11] говорят, что произошла поздняя коллизия. Важно отметить, что поздние коллизии не пересылаются сетевой картой повторно , в отличие от коллизий, происходящих до первых 64 октетов; определение того, что произошла потеря данных, остается на верхних уровнях стека протоколов .
Поскольку правильно настроенное сетевое соединение CSMA/CD не должно иметь поздних конфликтов, обычными возможными причинами являются несоответствие полнодуплексного/полудуплексного режима, превышение ограничений по длине кабеля Ethernet или неисправное оборудование, например неправильная прокладка кабелей, несоответствующее требованиям количество концентраторов в сети или неисправная сетевая карта.
Локальная коллизия — это коллизия, которая происходит на сетевом адаптере , а не на проводе. Сетевой адаптер не может обнаружить локальные коллизии, не пытаясь отправить информацию.
На кабеле UTP локальная коллизия обнаруживается на локальном сегменте только тогда, когда станция обнаруживает сигнал на паре RX в то же время, когда она отправляет сигнал на паре TX. Поскольку два сигнала находятся на разных парах, характерных изменений в сигнале не происходит. Коллизии распознаются на UTP только тогда, когда станция работает в полудуплексном режиме . Единственное функциональное различие между полудуплексным и полнодуплексным режимами в этом отношении заключается в том, разрешено ли одновременное использование пар передачи и приема.
Удалённая коллизия в компьютерных сетях CSMA/CD через полудуплексную среду (10BASE5 или 10BASE2) — это коллизия, которая происходит, когда передается кадр короче минимальной длины. Этот кадр может вызвать коллизию на удалённом конце, которая не может быть обнаружена передатчиком, поэтому кадр не отправляется повторно на физическом уровне. Из-за помех на среде его данные повреждаются, а последовательность проверки кадра не выполняется, что требует восстановления на более высоком уровне, если это возможно. [ необходима цитата ]
Эффект захвата канала — это явление, когда один пользователь общей среды «захватывает» среду на значительное время. В течение этого периода (обычно 16 кадров) [ необходимо разъяснение ] другим пользователям отказывается в использовании среды. Этот эффект впервые был замечен в сетях, использующих CSMA/CD в Ethernet. Из-за этого эффекта наиболее интенсивное соединение с данными доминирует в беспроводном канале с множественным доступом. [12] Это происходит в каналах Ethernet из-за того, как узлы «отступают» от канала и пытаются повторно получить к нему доступ. В протоколе Ethernet, когда происходит конфликт связи (когда два пользователя среды пытаются отправить данные одновременно), каждый пользователь ждет в течение случайного периода времени, прежде чем повторно получить доступ к каналу. Однако пользователь будет ждать («отступать») в течение случайного количества времени, пропорционального количеству раз, когда он последовательно пытался получить доступ к каналу. Эффект захвата канала происходит, когда один пользователь продолжает «выигрывать» канал.
Например, пользователь A и пользователь B одновременно пытаются получить доступ к тихому каналу. Поскольку они обнаруживают коллизию, пользователь A ждет в течение случайного времени между 0 и 1 единицами времени, и то же самое делает пользователь B. Допустим, пользователь A выбирает меньшее время отсрочки. Затем пользователь A начинает использовать канал, а B позволяет ему закончить отправку своего кадра . Если у пользователя A все еще есть что отправить, то пользователи A и B вызовут еще одну коллизию данных. A снова выберет случайное время отсрочки между 0 и 1, но пользователь B выберет время отсрочки между 0 и 3, потому что это уже вторая коллизия B подряд. Скорее всего, A снова «выиграет» эту битву. Если так будет продолжаться, A, скорее всего, выиграет все битвы коллизий, и после 16 коллизий (количество попыток, прежде чем пользователь отступит на длительный период времени), пользователь A «захватит» канал.
Способность одного узла захватывать всю среду уменьшается по мере увеличения числа узлов. Это происходит потому, что по мере увеличения числа узлов увеличивается вероятность того, что один из «других» узлов будет иметь меньшее время отката, чем захватывающий узел.
Эффект захвата канала создает ситуацию, когда одна станция может передавать, в то время как другие постоянно отступают, что приводит к ситуации краткосрочной несправедливости. Тем не менее, ситуация является долгосрочной справедливой, поскольку каждая станция имеет возможность «захватить» среду, как только одна станция закончит передачу. Эффективность канала увеличивается, когда один узел захватывает канал.
Отрицательным побочным эффектом эффекта захвата будет время простоя, создаваемое из-за отступления станций. Как только одна станция заканчивает передачу в среде, появляются большие времена простоя, поскольку все остальные станции постоянно отступают. В некоторых случаях отступ может происходить так долго, что некоторые станции фактически отбрасывают пакеты, поскольку достигнуты максимальные пределы попыток.
CSMA/CD использовался в ныне устаревших вариантах Ethernet с общей средой ( 10BASE5 , 10BASE2 ) и в ранних версиях Ethernet на витой паре , которые использовали повторители-концентраторы . Современным сетям Ethernet, построенным с коммутаторами и полнодуплексными соединениями, больше не нужно использовать CSMA/CD, поскольку каждый сегмент Ethernet, или домен коллизий , теперь изолирован. CSMA/CD по-прежнему поддерживается для обратной совместимости и для полудуплексных соединений. Стандарт IEEE 802.3 , который определяет все варианты Ethernet, по историческим причинам все еще носил название «Метод доступа с контролем несущей и обнаружением коллизий (CSMA/CD) и спецификации физического уровня» до 802.3-2008, который использует новое название «Стандарт IEEE для Ethernet».