Обнаружение коллизий в CSMA / CD

Опубликовано: 4 Декабря, 2021

CSMA / CD (множественный доступ с контролем несущей / обнаружение коллизий) - это метод управления доступом к среде передачи, который широко использовался в ранних технологиях Ethernet / локальных сетях, когда использовался общий доступ
Топология шины и все узлы (компьютеры) были подключены коаксиальными кабелями. Теперь Days Ethernet является полнодуплексным, а CSMA / CD не используется, поскольку топология - либо звезда (подключена через коммутатор или маршрутизатор)
или «точка-точка» (прямое соединение), но они все еще поддерживаются.

Рассмотрим сценарий, в котором на канале есть n станций, и все они ожидают передачи данных по этому каналу. В этом случае все n станций захотят получить доступ к каналу / каналу для передачи своих данных. Проблема возникает, когда данные передаются более чем одной станцией в данный момент. В этом случае будут коллизии данных с разных станций.

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

Как работает CSMA / CD?

  • Шаг 1. Проверьте, готов ли отправитель к передаче пакетов данных.
  • Шаг 2: Проверить, свободен ли канал передачи?
    Отправитель должен постоянно проверять, свободен ли канал / среда передачи. Для этого он постоянно отслеживает передачи от других узлов. Отправитель отправляет фиктивные данные по каналу. Если он не получает никакого сигнала о конфликте, это означает, что канал в данный момент свободен. Если он определяет, что оператор связи свободен и коллизий нет, он отправляет данные. В противном случае он воздерживается от отправки данных.
  • Шаг 3: Передайте данные и проверьте наличие коллизий.
    Отправитель передает свои данные по ссылке. CSMA / CD не использует систему «подтверждения». Он проверяет успешные и неудачные передачи с помощью сигналов о столкновении. Во время передачи, если узел получает сигнал коллизии, передача останавливается. Затем станция передает сигнал о заглушке по каналу связи и ожидает в течение случайного интервала времени, прежде чем повторно отправить кадр. Через некоторое случайное время он снова пытается передать данные и повторяет описанный выше процесс.
  • Шаг 4: Если при распространении не было обнаружено коллизии, отправитель завершает передачу кадра и сбрасывает счетчики.

Как станция узнает о конфликте данных?

Рассмотрим описанную выше ситуацию. Две станции, A и B.
Время распространения: Tp = 1 час (сигналу требуется 1 час, чтобы перейти от A к B)

В момент времени t = 0 A передает свои данные.
        t = 30 мин: происходит столкновение.

После того, как происходит столкновение, генерируется сигнал столкновения, который отправляется как A, так и B, чтобы проинформировать станции о столкновении. Поскольку столкновение произошло на полпути, сигналу о столкновении также требуется 30 минут, чтобы добраться до A и B.

Следовательно, t = 1 час: A и B получают сигналы коллизии.

Этот сигнал коллизии принимается всеми станциями на этом канале. Потом,

Как сделать так, чтобы данные нашей станции не совпадали?

Для этого время передачи (Tt)> время распространения (Tp) [приблизительная граница]
Это потому, что мы хотим, чтобы перед передачей последнего бита наших данных с нашей станции мы, по крайней мере, были уверены, что некоторые из битов уже достигли места назначения. Это гарантирует, что канал не занят и не произойдет коллизий.
Но это не совсем так. Мы не потратили время, которое потребовалось сигналу о столкновении, чтобы вернуться к нам. Для этого рассмотрим наихудший сценарий.
Снова рассмотрим указанную выше систему.

В момент времени t = 0 A передает свои данные.
        t = 59:59 мин: происходит столкновение

Это столкновение происходит непосредственно перед тем, как данные достигают B. Теперь сигналу столкновения снова требуется 59:59 минут, чтобы достичь A. Следовательно, A получает информацию о столкновении примерно через 2 часа, то есть после 2 * Tp.

Следовательно, чтобы обеспечить более жесткую границу, чтобы полностью обнаружить столкновение,
  Tt>> = 2 * Tp  

Это максимальное время коллизии, которое может потребоваться системе, чтобы определить, возникла ли коллизия ее собственных данных.

Какой должна быть минимальная длина передаваемого пакета?
Время передачи = Tt = длина пакета / пропускная способность канала
[Количество битов, передаваемых отправителем в секунду]
Подставляя выше, получаем,
Длина пакета / Пропускная способность канала> = 2 * Tp

Длина пакета> = 2 * Tp * Пропускная способность канала

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

Читать далее - Эффективность CSMA / CD