Обнаружение коллизий в CSMA / CD
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