Открыть сервис

CSMA/CD

CSMA/CD (Carrier Sense Multiple Access with Collision Detection — множественный доступ с контролем несущей и обнаружением коллизий) — это протокол управления доступом к среде передачи данных в компьютерных сетях, использующий метод случайного доступа. Он предназначен для предотвращения и разрешения конфликтов (коллизий), возникающих при одновременной передаче данных несколькими устройствами в общей среде, например, в сегменте Ethernet на коаксиальном кабеле или витой паре. CSMA/CD является основой работы классических сетей Ethernet (стандарты IEEE 802.3) до появления коммутируемых сетей и полнодуплексного режима.

История

Протокол CSMA/CD был разработан в начале 1970-х годов в исследовательском центре Xerox PARC (Palo Alto Research Center) в рамках проекта создания первой локальной сети Ethernet. Основная идея заключалась в том, чтобы обеспечить эффективный доступ к общей среде передачи данных для множества устройств, избегая централизованного управления. Первая реализация Ethernet, предложенная Робертом Меткалфом и Дэвидом Боггсом, использовала коаксиальный кабель, где все узлы подключались к одной шине.

В 1980 году компании DEC, Intel и Xerox опубликовали спецификацию Ethernet DIX (Digital-Intel-Xerox), которая закрепила использование CSMA/CD. В 1983 году этот протокол был стандартизирован Институтом инженеров по электротехнике и электронике (IEEE) как часть стандарта IEEE 802.3. До середины 1990-х годов CSMA/CD был доминирующим методом доступа в локальных сетях Ethernet, работающих в полудуплексном режиме. С широким внедрением коммутаторов (switches) и полнодуплексной передачи, где коллизии невозможны, CSMA/CD утратил свою актуальность для большинства современных сетей, но остаётся важной частью истории сетевых технологий и используется в устаревшем оборудовании или при работе в полудуплексном режиме.

Принцип работы

CSMA/CD основан на четырёх последовательных этапах: прослушивание несущей, передача данных, обнаружение коллизии и повторная передача после случайной задержки.

1. Контроль несущей (Carrier Sense)

Перед началом передачи данных устройство (узел) проверяет, свободна ли среда передачи. Если на кабеле присутствует электрический сигнал (несущая частота), устройство ждёт, пока среда освободится. Если среда свободна, устройство начинает передачу кадра данных.

2. Множественный доступ (Multiple Access)

Любое устройство в сети может начать передачу в любой момент, если среда свободна. Это создаёт риск одновременной передачи несколькими узлами, что приводит к коллизии.

3. Обнаружение коллизий (Collision Detection)

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

4. Обработка коллизий

После обнаружения коллизии устройство отправляет в среду специальный сигнал «jam» (зашумление) длительностью 32 или 48 бит, чтобы гарантировать, что все остальные узлы также обнаружат коллизию. Затем устройство ожидает случайный промежуток времени (backoff) перед повторной попыткой передачи. Длительность задержки вычисляется по алгоритму двоичной экспоненциальной задержки (Binary Exponential Backoff):

Характеристики и ограничения

Время обнаружения коллизий

Ключевым параметром CSMA/CD является минимальная длина кадра (64 байта для Ethernet). Она должна быть такой, чтобы коллизия была обнаружена до завершения передачи. Если кадр слишком короткий, передатчик может закончить отправку до того, как сигнал коллизии вернётся от удалённого узла. Это ограничение определяет максимальный диаметр коллизионного домена (расстояние между двумя самыми удалёнными узлами) — для Ethernet 10 Мбит/с он составляет около 2500 метров (с учётом повторителей).

Пропускная способность

CSMA/CD эффективен при низкой нагрузке на сеть, когда коллизии редки. При увеличении числа активных узлов и объёмов трафика частота коллизий растёт, что приводит к снижению полезной пропускной способности (так называемая «деградация производительности»). При высокой нагрузке сеть может тратить до 50% времени на обработку коллизий и повторные передачи.

Полудуплексный режим

CSMA/CD работает только в полудуплексном режиме, когда устройство не может одновременно передавать и принимать данные. В современных сетях с коммутаторами используется полнодуплексный режим, где коллизии исключены за счёт отдельных каналов для приёма и передачи.

Классификация и варианты

CSMA/CD является разновидностью более общего протокола CSMA (Carrier Sense Multiple Access). Существуют и другие модификации:

Применение

Основное применение CSMA/CD — классические сети Ethernet на коаксиальном кабеле (10BASE2, 10BASE5) и витой паре (10BASE-T) в полудуплексном режиме. До середины 1990-х годов CSMA/CD был стандартом для локальных сетей офисов, учебных заведений и промышленных предприятий. С появлением коммутаторов и полнодуплексного режима CSMA/CD утратил практическое значение, но продолжает использоваться в:

Критика и недостатки

Основные недостатки CSMA/CD:

С появлением коммутируемых сетей и полнодуплексного режима эти проблемы были решены, и CSMA/CD постепенно вышел из активного использования.

Интересные факты

Источники

BFOmetr — база данных и аналитика по компаниям России.

На главную BFOmetr →