Введение
Метод управления доступом к среде передачи, наиболее известный в ранних сетях Ethernet. Carrier sense multiple access with collision detection (CSMA/CD) – это метод управления доступом к среде передачи (MAC), который наиболее широко использовался в ранних технологиях Ethernet для локальных сетей. Он использует прослушивание среды передачи для отсрочки передачи, пока другие станции не завершат передачу. Это используется в сочетании с обнаружением коллизий, при котором передающая станция обнаруживает коллизии, регистрируя передачи от других станций во время передачи фрейма. При обнаружении коллизии станция прекращает передачу текущего фрейма, передает сигнал блокировки (jam signal) и затем ожидает случайный промежуток времени перед повторной попыткой передачи фрейма. CSMA/CD является модификацией чистого множественного доступа с прослушиванием среды передачи (CSMA). CSMA/CD используется для повышения производительности CSMA путем прекращения передачи сразу после обнаружения коллизии, что сокращает время, необходимое для повторной попытки. С ростом популярности коммутаторов Ethernet в 1990-х годах, IEEE 802.3 отказался от использования ретрансляторов Ethernet в 2011 году, что сделало CSMA/CD и полудуплексный режим работы менее распространенными и менее важными.
Carrier sense multiple access with collision detection (CSMA/CD) is a medium access control (MAC) method used most notably in early Ethernet technology for local area networking. It uses carrier sensing to defer transmissions until no other stations are transmitting. This is used in combination with collision detection in which a transmitting station detects collisions by sensing transmissions from other stations while it is transmitting a frame. When this collision condition is detected, the station stops transmitting that frame, transmits a jam signal, and then waits for a random time interval before trying to resend the frame. CSMA/CD is a modification of pure carrier sense multiple access (CSMA). CSMA/CD is used to improve CSMA performance by terminating transmission as soon as a collision is detected, thus shortening the time required before a retry can be attempted. With the growing popularity of Ethernet switches in the 1990s, IEEE 802.3 deprecated Ethernet repeaters in 2011, making CSMA/CD and half duplex operation less common and less important.
Процедура
Для начала передачи используется следующая процедура. Процедура завершается, когда кадр успешно передан или обнаружено столкновение во время передачи. Кадр готов к передаче? Если нет, ожидайте поступления кадра. Канал свободен? Если нет, ожидайте, пока он не станет доступным. Начните передачу и контролируйте возникновение столкновений во время передачи. Произошло столкновение? Если да, перейдите к процедуре обработки столкновения. Сбросьте счетчики повторных передач и завершите передачу кадра. Для разрешения обнаруженного столкновения используется следующая процедура. Процедура завершается, когда начата повторная передача или повторная передача прервана из-за большого количества столкновений. Продолжайте передачу (с сигналом глушения вместо заголовка/данных/CRC) до достижения минимального времени передачи пакета, чтобы все приемники обнаружили столкновение. Увеличьте счетчик повторных передач. Достигнуто ли максимальное количество попыток передачи? Если да, прервите передачу. Вычислите и подождите случайный интервал ожидания, основанный на количестве столкновений. Вернитесь к основной процедуре на этапе 1. Методы обнаружения столкновений зависят от среды передачи. На общей электрической шине, такой как 10BASE5 или 10BASE2, столкновения могут быть обнаружены путем сравнения передаваемых и принимаемых данных или путем распознавания повышенной амплитуды сигнала на шине. На всех остальных средах обнаружение несущей на приемном канале во время передачи вызывает событие столкновения. Повторители или концентраторы самостоятельно обнаруживают столкновения и распространяют сигналы глушения. Процедуру восстановления после столкновения можно сравнить с тем, что происходит на званом ужине, где все гости общаются друг с другом через общий канал (воздух). Прежде чем начать говорить, каждый гость вежливо ждет, пока текущий оратор не закончит. Если два гостя начинают говорить одновременно, оба останавливаются и ждут короткие случайные промежутки времени (в Ethernet это время измеряется в микросекундах). Предполагается, что, выбрав случайный промежуток времени, оба гостя не попытаются говорить одновременно, тем самым избежав очередного столкновения.
Сигнал сбоя
Сигнал помех – это сигнал, несущий 32-битный двоичный шаблон, отправляемый станцией данных другим передающим станциям для информирования о коллизии и необходимости прекратить передачу. Максимальное время передачи сигнала помех рассчитывается следующим образом: максимальный допустимый диаметр Ethernet-сети ограничен 232 битами. Это соответствует времени прохождения сигнала в обе стороны – 464 бита. Поскольку время слота в Ethernet составляет 512 бит, разница между временем слота и временем прохождения сигнала в обе стороны составляет 48 бит (6 байт), что и является максимальным временем передачи сигнала помех. Следовательно, станция, обнаружившая коллизию, отправляет шаблон длиной от 4 до 6 байт, состоящий из 16 комбинаций "10" бит. Это необходимо для того, чтобы любой другой узел, который в данный момент принимает кадр, получил сигнал помех вместо корректной 32-битной MAC CRC; это приводит к тому, что другие приемники отбрасывают кадр из-за ошибки CRC.
Позднее столкновение
Позднее столкновение — это тип столкновения, которое происходит в более поздней части пакета, чем допускается соответствующим протоколом. В сети Ethernet со скоростью 10 мегабит в секунду и общей средой, если ошибка столкновения возникает после передачи первых 512 бит данных передающей станцией, считается, что произошло позднее столкновение. Важно отметить, что сетевая карта (NIC) не повторяет передачу при поздних столкновениях, в отличие от столкновений, возникающих до первых 64 октетов; определение потери данных возлагается на верхние уровни стека протоколов. Поскольку правильно настроенное соединение CSMA/CD не должно приводить к поздним столкновениям, наиболее вероятными причинами являются несоответствие режимов полной и полудуплексной связи, превышение максимально допустимой длины кабеля Ethernet или неисправное оборудование, например, неправильное подключение кабелей, несоответствующее количество концентраторов в сети или неисправная сетевая карта.
Местное столкновение
Локальное столкновение – это столкновение, происходящее в сетевой карте (NIC), а не в кабеле. Сетевая карта не может обнаружить локальные столкновения, не пытаясь передать данные. В кабеле UTP локальное столкновение обнаруживается на локальном сегменте только тогда, когда станция одновременно обнаруживает сигнал на принимающей паре (RX) и передает сигнал по передающей паре (TX). Поскольку оба сигнала передаются по разным парам, каких-либо характерных изменений в сигнале не происходит. Столкновения на UTP распознаются только при работе станции в полудуплексном режиме. Единственное функциональное различие между полудуплексной и полнодуплексной работой в этом отношении заключается в том, разрешено ли одновременное использование передающей и принимающей пар.
Удаленное столкновение
Удаленное столкновение в компьютерных сетях CSMA/CD, работающих на полудуплексных средах передачи данных (10BASE5 или 10BASE2), происходит, когда передается кадр, длина которого меньше минимально допустимой. Этот кадр может вызвать столкновение на удаленном конце, которое не обнаруживается передатчиком, поэтому кадр не передается повторно на физическом уровне. Из-за помех в среде передачи данные кадра повреждаются, и проверка контрольной суммы кадра завершается неудачей, что требует восстановления на более высоком уровне, если это возможно.
Эффект захвата канала
Эффект захвата канала — это явление, при котором один пользователь общей среды "захватывает" её на значительное время. В течение этого периода (обычно 16 кадров) другим пользователям отказывают в доступе к среде. Этот эффект впервые был замечен в сетях, использующих CSMA/CD на Ethernet. Из-за этого эффекта наиболее интенсивно передающие данные соединения доминируют в беспроводном канале с множественным доступом. Это происходит в Ethernet-сетях из-за того, как узлы "отступают" от канала и пытаются повторно получить к нему доступ. В протоколе Ethernet, когда происходит коллизия (когда два пользователя среды пытаются передать данные одновременно), каждый пользователь ждет случайный промежуток времени перед повторной попыткой доступа к каналу. Однако пользователь будет ждать ("отступать") случайное время, пропорциональное количеству последовательных попыток доступа к каналу. Эффект захвата канала возникает, когда один пользователь продолжает "выигрывать" доступ к каналу. Например, пользователь А и пользователь В одновременно пытаются получить доступ к свободному каналу. Поскольку они обнаруживают коллизию, пользователь А ждет случайное время между 0 и 1 единицы времени, и пользователь В тоже. Предположим, пользователь А выбирает меньшее время ожидания. Тогда пользователь А начинает использовать канал, а пользователь В позволяет ему закончить передачу своего кадра. Если пользователю А еще нужно отправить данные, то пользователь А и пользователь В вызовут еще одну коллизию. Пользователь А снова выберет случайное время ожидания между 0 и 1, а пользователь В выберет время ожидания между 0 и 3 – поскольку это вторая коллизия подряд для пользователя В. Вероятнее всего, пользователь А снова "выиграет". Если это продолжится, пользователь А, скорее всего, выиграет все коллизии, и после 16 коллизий (максимальное количество попыток перед тем, как пользователь отступит на длительный период времени), пользователь А "захватит" канал. Способность одного узла захватить всю среду уменьшается с увеличением числа узлов. Это связано с тем, что с увеличением числа узлов возрастает вероятность того, что один из "других" узлов выберет меньшее время ожидания, чем у захватывающего узла. Эффект захвата канала создает ситуацию, когда одна станция может передавать данные, в то время как другие постоянно отступают, что приводит к кратковременной несправедливости. Однако ситуация является долгосрочно справедливой, поскольку каждая станция имеет возможность "захватить" среду после завершения передачи одной из станций. Эффективность канала повышается, когда один узел захватывает канал. Отрицательным побочным эффектом эффекта захвата является время простоя, возникающее из-за отступления станций. После завершения передачи одной станцией на среде возникают большие периоды простоя, поскольку все остальные станции постоянно отступали. В некоторых случаях отступление может продолжаться так долго, что некоторые станции фактически отбрасывают пакеты из-за достижения максимального количества попыток.
Приложения
CSMA/CD использовался в устаревших вариантах Ethernet с общей средой (10BASE5, 10BASE2) и в ранних версиях Ethernet с витой парой, которые использовали ретрансляторные концентраторы. Современные сети Ethernet, построенные на коммутаторах и с использованием полнодуплексных соединений, больше не нуждаются в использовании CSMA/CD, поскольку каждый сегмент Ethernet, или домен коллизий, теперь изолирован. CSMA/CD по-прежнему поддерживается для обеспечения обратной совместимости и для полудуплексных соединений. Стандарт IEEE 802.3, определяющий все варианты Ethernet, по историческим причинам до 2008 года назывался "Метод доступа с множественным доступом с обнаружением коллизий (CSMA/CD) и спецификации физического уровня", после чего получил новое название "Стандарт IEEE для Ethernet".