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

CSMA/CR

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

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

Протокол CSMA/CR основан на принципе «слушай перед тем, как говорить» (listen before talk), как и другие протоколы семейства CSMA. Однако ключевое отличие заключается в том, что при возникновении коллизии (одновременной передачи двух или более станций) узлы не прекращают передачу, а продолжают её, используя механизм разрешения коллизий. Этот механизм позволяет определить, какая из станций имеет более высокий приоритет, и предоставить ей доступ к каналу, в то время как станции с более низким приоритетом откладывают свою передачу.

Этапы передачи данных

  1. Прослушивание канала. Перед началом передачи станция проверяет, свободен ли канал. Если канал занят, станция ожидает его освобождения.
  2. Начало передачи. Если канал свободен, станция начинает передачу данных.
  3. Обнаружение коллизии. Если две или более станции начинают передачу одновременно, возникает коллизия. В CSMA/CR коллизия не приводит к немедленному прекращению передачи, а служит сигналом для запуска механизма разрешения.
  4. Разрешение коллизии. В процессе разрешения коллизии станции передают специальные сигналы-приоритеты, которые позволяют определить, какая из них имеет право продолжить передачу. Станция с наивысшим приоритетом (обычно определяемым по её идентификатору или заранее заданному значению) продолжает передачу, а остальные прекращают её и переходят в режим ожидания.

Механизм приоритетов

В CSMA/CR каждой станции присваивается уникальный приоритет (например, в виде числа или битовой последовательности). При возникновении коллизии станции передают свои приоритеты в виде сигналов на канале. Если сигнал одной станции «перебивает» сигнал другой (например, за счёт разницы в амплитуде или длительности), то станция с более низким приоритетом распознаёт это и прекращает передачу. Таким образом, коллизия разрешается за один цикл, без необходимости повторной передачи данных.

Отличия от CSMA/CD

CSMA/CR принципиально отличается от более известного протокола CSMA/CD (Carrier Sense Multiple Access with Collision Detection), который используется в классическом Ethernet (IEEE 802.3). Основные различия:

ПараметрCSMA/CDCSMA/CR
Реакция на коллизиюОбнаружение коллизии и немедленное прекращение передачиРазрешение коллизии без прекращения передачи
Повторная передачаТребуется повторная передача после случайной задержки (backoff)Повторная передача не требуется — одна из станций продолжает передачу
ЭффективностьСнижается при высокой загрузке сети из-за повторных коллизийСохраняется высокая эффективность даже при высокой загрузке
Сложность реализацииОтносительно простаяБолее сложная из-за необходимости приоритетного разрешения коллизий
ПрименениеШироко используется в EthernetИспользуется в специализированных системах (например, в некоторых промышленных сетях)

Применение

CSMA/CR не получил широкого распространения в массовых компьютерных сетях, таких как Ethernet, где доминирует CSMA/CD (в классических версиях) или коммутируемые соединения (в современных сетях). Однако протокол нашёл применение в следующих областях:

  • Промышленные сети и системы реального времени. В средах, где требуется детерминированное время доступа к каналу и предсказуемая задержка, CSMA/CR позволяет избежать потерь времени на повторные передачи, характерные для CSMA/CD.
  • Автомобильные сети. В некоторых протоколах, используемых в автомобильной электронике (например, в CANController Area Network), применяется механизм, аналогичный CSMA/CR, где приоритеты определяются идентификатором сообщения.
  • Беспроводные сети. В некоторых специализированных беспроводных протоколах (например, в системах связи для управления роботами или дронами) CSMA/CR может использоваться для обеспечения надёжной передачи данных в условиях высокой плотности узлов.

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

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

  • Высокая эффективность при высокой загрузке. В отличие от CSMA/CD, где коллизии приводят к повторным передачам и снижению пропускной способности, CSMA/CR разрешает коллизии за один цикл, что позволяет поддерживать стабильную производительность.
  • Детерминированность. Время доступа к каналу может быть предсказуемым, что важно для систем реального времени.
  • Отсутствие потерь данных. Поскольку коллизия не приводит к прекращению передачи, данные не теряются и не требуют повторной отправки.

Недостатки

  • Сложность реализации. Требуется аппаратная или программная поддержка механизма приоритетов и разрешения коллизий, что увеличивает стоимость и сложность оборудования.
  • Ограниченная масштабируемость. При большом количестве узлов механизм приоритетов может стать узким местом, особенно если приоритеты не сбалансированы.
  • Специализированность. Протокол не универсален и не подходит для всех типов сетей, особенно для тех, где требуется простота и низкая стоимость.

Исторический контекст

Протокол CSMA/CR был разработан в 1970-х годах как альтернатива CSMA/CD в рамках исследований в области компьютерных сетей. Одним из первых применений стала сеть ALOHAnet, где использовался протокол ALOHA, предшественник CSMA. Позднее идеи CSMA/CR были частично реализованы в протоколе CAN, разработанном компанией Bosch в 1983 году для автомобильной промышленности. В CAN используется механизм разрешения коллизий на основе приоритетов, который по сути является вариантом CSMA/CR.

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

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

  • В протоколе CAN, который использует механизм, аналогичный CSMA/CR, приоритет сообщения определяется его идентификатором. Чем меньше числовое значение идентификатора, тем выше приоритет. Это позволяет, например, сообщениям о торможении в автомобиле иметь приоритет над сообщениями о включении фар.
  • В некоторых реализациях CSMA/CR для разрешения коллизий используется метод «битового арбитража» (bitwise arbitration), где станции передают свои приоритеты побитно, и станция, передающая «0», «перебивает» станцию, передающую «1» (если канал реализован с открытым коллектором).

Источники

  • Tanenbaum, A. S. (2011). Computer Networks (5th ed.). Prentice Hall.
  • Stallings, W. (2013). Data and Computer Communications (10th ed.). Pearson.
  • Bosch, R. (1991). CAN Specification Version 2.0. Robert Bosch GmbH.
  • IEEE Standard 802.3-2018 (Ethernet).

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

На главную BFOmetr →