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

CSMA

CSMA (Carrier Sense Multiple Access, множественный доступ с контролем несущей) — это протокол управления доступом к среде передачи данных в компьютерных сетях, основанный на принципе прослушивания канала перед началом передачи. CSMA относится к классу протоколов случайного доступа (random access) и широко применяется в локальных сетях, особенно в стандартах Ethernet (IEEE 802.3) и беспроводных сетях Wi-Fi (IEEE 802.11). Основная цель CSMA — минимизировать коллизии (одновременные передачи данных двумя или более узлами), которые приводят к искажению сигнала и потере пакетов.

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

В основе CSMA лежит идея, что каждый узел сети перед отправкой данных проверяет состояние среды передачи (канала). Если канал свободен (несущая частота отсутствует или уровень сигнала ниже порогового), узел начинает передачу. Если канал занят, узел откладывает передачу на случайный или фиксированный интервал времени. Этот механизм называется «прослушивание несущей» (carrier sensing). В зависимости от того, как узел реагирует на занятость канала, различают несколько модификаций CSMA.

Основные модификации CSMA

  1. 1-персистентный CSMA (1-persistent CSMA):
  • Узел постоянно прослушивает канал. Как только канал освобождается, узел немедленно начинает передачу с вероятностью 1.
  • Преимущество: минимальная задержка при освобождении канала.
  • Недостаток: высокая вероятность коллизий, так как несколько узлов, ожидающих освобождения, могут начать передачу одновременно.
  1. Неперсистентный CSMA (non-persistent CSMA):
  • Если канал занят, узел ждёт случайный интервал времени, затем снова проверяет канал. Если канал свободен, передаёт.
  • Преимущество: снижение вероятности коллизий по сравнению с 1-персистентным.
  • Недостаток: возможны дополнительные задержки, так как узел может ждать даже после освобождения канала.
  1. p-персистентный CSMA (p-persistent CSMA):
  • Применяется в сетях с временным разделением (slotted channels). Узел прослушивает канал: если свободен, передаёт с вероятностью p; с вероятностью (1-p) откладывает передачу на следующий слот.
  • Позволяет гибко регулировать вероятность коллизий и пропускную способность. Используется, например, в некоторых версиях Wi-Fi.
  1. CSMA/CD (Collision Detection):
  • Дополнение CSMA, при котором узел во время передачи продолжает прослушивать канал. Если обнаружена коллизия (сигнал искажён), передача немедленно прекращается, и узел отправляет специальный сигнал «затор» (jam signal), чтобы уведомить другие узлы. Затем узел ждёт случайное время (backoff) и повторяет попытку.
  • Используется в классическом Ethernet (IEEE 802.3) на медных и оптоволоконных линиях.
  • Эффективен в сетях с небольшой задержкой распространения сигнала (например, в пределах одного сегмента).
  1. CSMA/CA (Collision Avoidance):
  • Применяется в беспроводных сетях, где обнаружение коллизий затруднено из-за проблем «скрытого узла» и «затухания сигнала». Узел перед передачей прослушивает канал; если свободен, отправляет короткий запрос RTS (Request to Send), получает ответ CTS (Clear to Send), и только затем передаёт данные. Это снижает вероятность коллизий, но увеличивает накладные расходы.
  • Используется в Wi-Fi (IEEE 802.11).

История

Протокол CSMA был впервые предложен в 1970-х годах в рамках исследований по созданию локальных сетей. Одним из пионеров является Норман Абрамсон, разработавший ALOHAnet (1970) — протокол случайного доступа, который лёг в основу CSMA. В 1973 году Роберт Меткалф и Дэвид Боггс в Xerox PARC создали Ethernet, который использовал CSMA/CD. В 1980 году был опубликован стандарт Ethernet (DIX), а в 1983 году — IEEE 802.3. В 1990-х годах с развитием беспроводных сетей появился CSMA/CA, стандартизированный в IEEE 802.11 (1997).

Классификация

CSMA относится к классу протоколов множественного доступа с контролем несущей. В зависимости от способа обнаружения коллизий и реакции на занятость канала, выделяют:

  • CSMA без обнаружения коллизий (pure CSMA) — узел только прослушивает канал перед передачей, но не обнаруживает коллизии во время передачи.
  • CSMA с обнаружением коллизий (CSMA/CD) — узел обнаруживает коллизии во время передачи и прекращает её.
  • CSMA с предотвращением коллизий (CSMA/CA) — узел пытается избежать коллизий до начала передачи с помощью сигналов RTS/CTS.

Также CSMA может быть:

  • Синхронным (slotted CSMA) — время разделено на слоты, передача начинается только в начале слота.
  • Асинхронным (unslotted CSMA) — передача может начинаться в любой момент.

Устройство и характеристики

Основные параметры CSMA

  • Время распространения сигнала (propagation delay) — время, за которое сигнал достигает всех узлов сети. Влияет на вероятность коллизий: чем больше задержка, тем выше риск, что два узла одновременно начнут передачу, считая канал свободным.
  • Время обнаружения коллизии — минимальное время, необходимое для того, чтобы узел узнал о коллизии. В CSMA/CD оно равно удвоенному времени распространения сигнала (round-trip time).
  • Интервал backoff — случайное время ожидания после коллизии. В Ethernet используется экспоненциальный backoff (двоичный экспоненциальный backoff), где интервал удваивается после каждой коллизии до 10 попыток, затем фиксируется.
  • Пропускная способность — зависит от нагрузки сети. При низкой нагрузке CSMA эффективен, при высокой — резко падает из-за коллизий.

Преимущества и недостатки

Преимущества:

  • Простота реализации.
  • Децентрализованность (не требуется центральный контроллер).
  • Хорошая работа при низкой и средней нагрузке.

Недостатки:

  • Нестабильность при высокой нагрузке (резкое падение пропускной способности из-за коллизий).
  • Зависимость от времени распространения сигнала (ограничение длины сегмента сети).
  • В CSMA/CA — накладные расходы на сигналы RTS/CTS.

Применение

CSMA широко применяется в компьютерных сетях:

  • Ethernet (IEEE 802.3) — используется CSMA/CD в классических версиях (10BASE5, 10BASE2, 10BASE-T). В современных гигабитных и более быстрых версиях Ethernet (1000BASE-T, 10GBASE-T) CSMA/CD обычно не применяется, так как используется полнодуплексный режим.
  • Wi-Fi (IEEE 802.11) — используется CSMA/CA. Стандарт включает обязательное прослушивание канала и механизм RTS/CTS для снижения коллизий.
  • Сети с общей шиной — например, устаревшие сети на коаксиальном кабеле.
  • Беспроводные сенсорные сети — некоторые протоколы (например, Zigbee) используют модификации CSMA/CA.

Примеры

  • В Ethernet 10BASE5 (толстый коаксиал) максимальная длина сегмента 500 метров, время распространения сигнала около 2,5 мкс, что позволяет CSMA/CD эффективно работать при скорости 10 Мбит/с.
  • В Wi-Fi 802.11g (2,4 ГГц) CSMA/CA использует временные слоты длительностью 9 мкс, а интервал DIFS (Distributed Interframe Space) составляет 28 мкс.

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

  • Название «CSMA» впервые появилось в статье Роберта Меткалфа и Дэвида Боггса «Ethernet: Distributed Packet Switching for Local Computer Networks» (1976).
  • В 1980-х годах CSMA/CD был основным протоколом для локальных сетей, но с переходом на коммутируемые сети (switched Ethernet) и полнодуплексный режим его использование сократилось.
  • В беспроводных сетях проблема «скрытого узла» (когда два узла не слышат друг друга, но оба слышат точку доступа) решается с помощью CSMA/CA и сигналов RTS/CTS.

Критика

Основная критика CSMA связана с его неэффективностью при высокой нагрузке. В сетях с большим количеством узлов и интенсивным трафиком коллизии становятся частыми, что приводит к резкому падению пропускной способности. Также CSMA/CD накладывает ограничения на длину сегмента сети (максимальное расстояние между узлами), что делает его непригодным для глобальных сетей. В современных сетях CSMA часто заменяется более детерминированными протоколами (например, TDMA — Time Division Multiple Access) или полнодуплексными режимами.

Источники

  • Меткалф Р., Боггс Д. «Ethernet: Distributed Packet Switching for Local Computer Networks» (1976).
  • Стандарт IEEE 802.3-2018 (Ethernet).
  • Стандарт IEEE 802.11-2020 (Wi-Fi).
  • Таненбаум Э., Уэзеролл Д. «Компьютерные сети» (5-е издание, 2012).
  • Куроуз Дж., Росс К. «Компьютерные сети: нисходящий подход» (6-е издание, 2013).

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

На главную BFOmetr →