
Коллизии
Так как сеть CSMA/CD является равноранговой сетью, станции запрашивают канал, только когда у них есть данные для передачи.
Соперничество за канал может возникнуть тогда, когда сигналы вводятся в кабель от разных станций примерно одновременно. Когда это происходит, возникает наложение и искажение сигналов. Их правильный прием станциями невозможен. Центральным аспектом коллизий является окно коллизий. Этим термином описывается интервал времени, необходимый для распространения сигнала по каналу и обнаружения его любой станцией сети. Например, предположим, что в сети имеется кабель длиной 0,6 миль. Если станции расположены в самом дальнем конце кабеля, расстояние до самой отдаленной станции составляет около 0,6 мили. Передача сигнала на это расстояние потребует 4,2 мкс.
tp – время распространения сигнала, t – время захвата канала.
Рис. 4. Схема образования коллизий
Когда станция А готова передавать данные, она «прослушивает» кабель, чтобы определить, имеется ли сигнал в цепи. Если станция В ранее передала кадр в канал, но он еще не достиг станции А, то станция А ошибочно будет считать, что канал свободен, и начнет передачу своего пакета. В данной ситуации произойдет коллизия двух сигналов (рис. 4).
В наихудших для однополосной сети условиях время, необходимое для обнаружения столкновения (и захвата канала), в два раза больше задержки распространения, так как сигнал, образовавшийся в результате коллизии, должен распространиться обратно к передающим станциям. Задержка распространения и обнаружение коллизий в случае широкополосной сети составляют еще большее время, поскольку в такой сети используются два кабеля для передачи и приема сигналов. В наихудшем случае время обнаружения коллизии в четыре раза больше задержки распространения.
Коллизия является нежелательным явлением, так как приводит к ошибкам в работе сети. Более того, при передаче длинных кадров коллизия поглощает больше канального времени, чем при использовании коротких кадров. CSMA/CD учитывает эту проблему на уровне управления доступа к среде путем прекращения передачи кадра сразу же после обнаружения коллизии.
Другую точку зрения на коллизии представляет длительность слота (кванта)—время, необходимое для распространения кадра по всему каналу вместе с задержкой получения канала. Канал Ethernet 10 Мбит/с (однополосный) имеет задержку распространения, составляющую 450 битовых длительностей (45 мкс x 10 000 000=450). Ethernet требует, чтобы длительность слота была больше суммы времени распространения (450 бит) и максимального времени подавления (передачи сигналов подавления или затора) (48 бит).
Если сигнал распространился во все части канала без коллизий, говорят, что станция, которая передала этот сигнал, получила или захватила канал. Если это произошло, коллизии устранены, поскольку все станции обнаружили сигнал и уступили ему. Однако, если произошла коллизия, компонент доступа к каналу на передающей стороне замечает наложение сигналов в канале (в виде аномального изменения напряжения) и устанавливает для управления доступом к среде (передающей стороны) специальный сигнал обнаружения коллизии.
Для обработки коллизии управление доступом к среде выполняет две функции. Во-первых, усиливается эффект коллизии путем передачи специальной последовательности битов, называемой затором (jam). Цель затора состоит в том, чтобы сделать коллизию настолько продолжительной, чтобы ее смогли заметить все другие передающие станции, которые вовлечены в коллизию. В локальной сети CSMA/CD требуется, чтобы затор состоял, по меньшей мере, из 32 бит, но не более 48 бит. Это гарантирует, что продолжительность коллизии будет достаточно большой, чтобы ее обнаружили все передающие станции в сети. Ограничение сверху длины последовательности необходимо для того, чтобы станции ошибочно не приняли ее за действительный кадр. Любой кадр, содержащий менее 64 байт (октетов), считается фрагментом испорченного коллизией сообщения и. игнорируется любой принимающей станцией сети.
Компонент управления доступом к среде (передающая сторона) выполняет после этого еще одну функцию: после посылки затора он прекращает передачу и планирует передачу на более позднее время, определяемое на основе случайного выбора интервала ожидания, Прерывание передачи кадра уменьшает отрицательный эффект коллизий при передаче длинных кадров.
В принимающей станции или станциях биты, которые образовались в результате коллизии, декодируются физическим уровнем. Фрагменты кадров, вовлеченных в коллизию, опознаются уровнем управления доступом к среде (на принимающей стороне) как недействительные кадры. Он замечает, что коллизионный фрагмент меньше, чем самый короткий действительный кадр, и игнорирует подобный фрагмент. Следовательно, затор используется с той целью, чтобы гарантировать, что все передающие станции заметят коллизию, а передача фрагментарного кадра гарантирует, что любая принимающая станция проигнорирует эту передачу.
Как в спецификации Ethernet, так и в стандарте IEEE 802.3 обычно используется «1-настойчивый» метод для управления коллизиями и соперничеством за канал. Однако этот «1-настойчивый» алгоритм применим к целому кратному длительности слота (512 бит), а планирование повторной передачи производится управляемым вероятностным процессом, называемым усеченным двоичным экспоненциальным возвратом (truncated binary exponential back-off).
По окончании последовательности затора уровень доступа к среде ожидает, прежде чем сделать попытку повторной передачи максимум 16 раз. Каждый раз среднее значение случайного числа r удваивается:
«Длительность ожидания является целым кратным длительности слота... Число этих слотовых интервалов, в течение которых имеет место ожидание перед n-й попыткой повторной передачи, выбирается как равномерно распределенная случайная величина r в диапазоне 0 < r < sk где k=min (n, 10)». min – функция, определяющая наименьшую из двух величин: п или 10.
Однако существуют методы, позволяющие избежать появления коллизий в сети. Один из подходов состоит в том, чтобы использовать в сети дополнительное устройство, называемое таймером или арбитром. Это устройство определяет, когда станция может вести передачу без опасности коллизий. Временные параметры определяются каждой станцией; главная станция для управления использованием канала не предусмотрена.
Каждый порт имеет предварительно установленный временной порог. После того как этот временной порог пройден, порт на основании некоторого временного параметра определяет, когда можно вести передачу. (Это напоминает концепцию «захвата» маркера.) Значения времени могут устанавливаться на приоритетной основе, причем у порта с наивысшим приоритетом переполнение таймера наступает раньше всего. Если этот порт не намерен вести передачу, канал будет находиться в состоянии покоя. Станция со следующим по величине приоритетом обнаруживает, что канал свободен. Ее таймер показывает, что лимит времени, когда может вестись передача, не исчерпан, поэтому она может захватить канал.
Станции с высоким приоритетом в случае, если они не ведут передачу, переводят канал в состояние покоя, что позволяет станциям с более низким приоритетом использовать его. В традиционных слотовых сетях время покоя представляет собой не что иное, как упущенные возможности для передачи данных. Однако сеть без коллизий использует арбитра, чтобы дать возможность станции со следующим по величине приоритетом в канале захватить время покоя, если у нее есть данные, которые необходимо передать. Этот подход значительно уменьшает время покоя канала.
Метод CSMA/CD наиболее эффективен в условиях относительно низкой общей загрузки канала (менее 30%). Однако в случаях, когда локальная сеть более равномерно загружена, больше подходят другие типы сетей. Например, в условиях большей загрузки канала более высокую производительность, как правило, можно обеспечить, используя такой тип локальной сети, как маркерное кольцо.