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

Протокол антиколлизии

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

История возникновения

Проблема коллизий возникла с появлением первых компьютерных сетей с общей шиной, где несколько устройств разделяли одну физическую линию связи. В 1970-х годах в рамках разработки сети ALOHAnet на Гавайях был предложен первый протокол случайного доступа — ALOHA. Он позволял устройствам передавать данные в любой момент, а при возникновении коллизии — повторять передачу через случайный интервал времени. Недостатком была низкая пропускная способность (до 18 % от максимальной).

В 1973 году сотрудники Xerox PARC Роберт Меткалф и Дэвид Боггс разработали протокол CSMA/CD (Carrier Sense Multiple Access with Collision Detection), который стал основой для Ethernet. Этот протокол значительно повысил эффективность использования канала за счёт прослушивания среды перед передачей и обнаружения коллизий во время передачи. В 1980-х годах Ethernet с CSMA/CD стал доминирующей технологией локальных сетей.

С развитием беспроводных сетей (Wi-Fi) в 1990-х годах возникла необходимость в новых протоколах антиколлизии, так как в радиоканале невозможно одновременно слушать и передавать (коллизия обнаруживается только после получения подтверждения). Для этого был разработан протокол CSMA/CA (Collision Avoidance), использующий механизмы ожидания и случайных отсрочек (backoff).

Классификация протоколов антиколлизии

Протоколы антиколлизии делятся на два основных класса в зависимости от способа управления доступом к среде:

Детерминированные протоколы

Гарантируют, что каждое устройство получит доступ к каналу в строго определённый момент времени. Коллизии полностью исключены. Примеры:

Вероятностные (случайные) протоколы

Устройства конкурируют за доступ к каналу, и коллизии возможны, но протокол предусматривает механизмы их разрешения. Примеры:

Устройство и принцип работы (на примере CSMA/CD)

Протокол CSMA/CD, используемый в классическом Ethernet (стандарты IEEE 802.3 до 10BASE-T), работает по следующему алгоритму:

  1. Прослушивание канала (Carrier Sense). Устройство проверяет, есть ли в среде передачи несущий сигнал от другого устройства. Если канал занят — устройство ожидает его освобождения.
  2. Начало передачи. Если канал свободен в течение межкадрового интервала (9,6 мкс для 10 Мбит/с Ethernet), устройство начинает передачу данных.
  3. Обнаружение коллизии (Collision Detection). Во время передачи устройство сравнивает уровень сигнала на выходе и на входе. Если они различаются (например, из-за одновременной передачи другого устройства), фиксируется коллизия.
  4. Реакция на коллизию. Устройство немедленно прекращает передачу и отправляет короткий сигнал «затор» (32 бита), чтобы все остальные устройства узнали о коллизии.
  5. Случайная отсрочка (Backoff). После коллизии каждое устройство выбирает случайное число (k) из диапазона от 0 до 2^n-1, где n — номер повторной попытки (до 10). Устройство ждёт k * 512 битовых интервалов (для 10 Мбит/с Ethernet — 51,2 мкс на интервал) и затем повторяет попытку. После 16 неудачных попыток передача отменяется.

Этот алгоритм гарантирует, что при увеличении загрузки сети время разрешения коллизий растёт, но сеть остаётся работоспособной до определённого порога (обычно до 40–50 % загрузки).

Применение

Протоколы антиколлизии используются в различных областях:

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

Критика и ограничения

Вероятностные протоколы (CSMA/CD, CSMA/CA) имеют фундаментальные ограничения:

Детерминированные протоколы, напротив, обеспечивают предсказуемость, но требуют централизованного управления или синхронизации, что усложняет масштабирование.

Источники

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

На главную BFOmetr →