CSMA/CR
CSMA/CR (Carrier Sense Multiple Access with Collision Resolution — множественный доступ с контролем несущей и разрешением коллизий) — это протокол управления доступом к среде передачи данных, используемый в компьютерных сетях и системах связи. Он предназначен для организации совместного использования общего канала связи несколькими узлами (станциями) без централизованного управления, при этом коллизии (одновременные передачи) не предотвращаются, а разрешаются с помощью специального механизма приоритетов. CSMA/CR относится к классу протоколов с разрешением коллизий, в отличие от более распространённого протокола CSMA/CD (с обнаружением коллизий), где коллизия приводит к повторной передаче данных.
Принцип работы
Протокол CSMA/CR основан на принципе «слушай перед тем, как говорить» (listen before talk), как и другие протоколы семейства CSMA. Однако ключевое отличие заключается в том, что при возникновении коллизии (одновременной передачи двух или более станций) узлы не прекращают передачу, а продолжают её, используя механизм разрешения коллизий. Этот механизм позволяет определить, какая из станций имеет более высокий приоритет, и предоставить ей доступ к каналу, в то время как станции с более низким приоритетом откладывают свою передачу.
Этапы передачи данных
- Прослушивание канала. Перед началом передачи станция проверяет, свободен ли канал. Если канал занят, станция ожидает его освобождения.
- Начало передачи. Если канал свободен, станция начинает передачу данных.
- Обнаружение коллизии. Если две или более станции начинают передачу одновременно, возникает коллизия. В CSMA/CR коллизия не приводит к немедленному прекращению передачи, а служит сигналом для запуска механизма разрешения.
- Разрешение коллизии. В процессе разрешения коллизии станции передают специальные сигналы-приоритеты, которые позволяют определить, какая из них имеет право продолжить передачу. Станция с наивысшим приоритетом (обычно определяемым по её идентификатору или заранее заданному значению) продолжает передачу, а остальные прекращают её и переходят в режим ожидания.
Механизм приоритетов
В CSMA/CR каждой станции присваивается уникальный приоритет (например, в виде числа или битовой последовательности). При возникновении коллизии станции передают свои приоритеты в виде сигналов на канале. Если сигнал одной станции «перебивает» сигнал другой (например, за счёт разницы в амплитуде или длительности), то станция с более низким приоритетом распознаёт это и прекращает передачу. Таким образом, коллизия разрешается за один цикл, без необходимости повторной передачи данных.
Отличия от CSMA/CD
CSMA/CR принципиально отличается от более известного протокола CSMA/CD (Carrier Sense Multiple Access with Collision Detection), который используется в классическом Ethernet (IEEE 802.3). Основные различия:
| Параметр | CSMA/CD | CSMA/CR |
|---|---|---|
| Реакция на коллизию | Обнаружение коллизии и немедленное прекращение передачи | Разрешение коллизии без прекращения передачи |
| Повторная передача | Требуется повторная передача после случайной задержки (backoff) | Повторная передача не требуется — одна из станций продолжает передачу |
| Эффективность | Снижается при высокой загрузке сети из-за повторных коллизий | Сохраняется высокая эффективность даже при высокой загрузке |
| Сложность реализации | Относительно простая | Более сложная из-за необходимости приоритетного разрешения коллизий |
| Применение | Широко используется в Ethernet | Используется в специализированных системах (например, в некоторых промышленных сетях) |
Применение
CSMA/CR не получил широкого распространения в массовых компьютерных сетях, таких как Ethernet, где доминирует CSMA/CD (в классических версиях) или коммутируемые соединения (в современных сетях). Однако протокол нашёл применение в следующих областях:
- Промышленные сети и системы реального времени. В средах, где требуется детерминированное время доступа к каналу и предсказуемая задержка, CSMA/CR позволяет избежать потерь времени на повторные передачи, характерные для CSMA/CD.
- Автомобильные сети. В некоторых протоколах, используемых в автомобильной электронике (например, в CAN — Controller 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 →