В случае
использования несколькими передатчиками одного канала передачи данных (при
условии, что все подключенные к этому каналу приемники должны иметь возможность
принимать сигналы всех передатчиков) практически всегда требуется эффективное
решение задачи управления доступом к среде передачи. В рассмотренных ранее
системных и периферийных шинах управление доступом к шине нескольких
передатчиков и приемников осуществляется посредством механизма арбитража шин. В
сетевых телекоммуникациях применение такого решения оказывается неприемлемым
из-за значительной протяженности среды передачи данных и обусловленных этим
существенных задержек арбитражных запросов и ответов. Использование
внеполосных сигналов для арбитража невозможно, так как обычно все
синхронизирующие и другие служебные сигналы распространяются в той же среде,
что и данные.
Прием
сигналов двух и большего количества одновременно работающих передатчиков как
правило приводит к невосстановимой потере данных. Ситуация, когда приемник
слышит сигнал двух или более передатчиков, носит название коллизии (от лат. collision
–столкновение). Так как сигнал
распространяется по среде с конечной скоростью, то во многих современных сетях
время распространения кадра данных по среде сравнимо с временем его передачи.
При этом последовательность событий оказывается обусловленной тем, из какой
точки сети эти события наблюдаются: вполне может оказаться, что один приемник
получит два разнесенных по времени кадра, второй же обнаружит коллизию.
Время
распространения кадра данных по сети определяется ее геометрическими размерами
и скоростью распространения сигнала. Важнейшим параметром является так
называемый диаметр сети: наибольшее
расстояние между двумя приемопередатчиками (пространственное для беспроводных
сетей или по кабелю для сетей кабельных). Для сетей с выделенной центральной
станцией важнейшим параметром оказывается радиус
сети: расстояние от центральной станции до самой удаленной рабочей
станции. Размер сети часто измеряют не линейными единицами, а временем
прохождения сигнала. Это особенно важно для кабельных сетей, в которых
скорость прохождения сигнала отличается от световой, а также возможна ситуация,
когда скорость прохождения сигнала различна в разных сегментах сети (например,
при сочетании медных и волоконно-оптических кабелей или кабелей и
радиосегментов).
Множество
рабочих станций, функционирование которых может приводить к возникновению
коллизий, называется доменом коллизий.
Вероятность возникновения коллизии зависит от степени вероятности одновременной
передачи данных каждой станцией и общего количества работающих станций.
Один из
способов решения проблемы доступа к среде в простейшем случае двухточечного канала является прокладка
двух однонаправленных каналов навстречу друг другу. Второй способ состоит в
том, что приемник вычитает из сигнала, распространяющегося в кабеле, сигнал
собственного передатчика. Этот способ используется существенно реже, потому
что требует значительного усложнения приемника.
В сетях с
чисто кольцевой топологией управление
доступом к среде осуществляется посредством использования так называемого маркера, который предваряет сообщение.
Такой маркер обычно представляет собой короткий кадр, состоящий из стандартной
преамбулы и поля, указывающего, что за маркером не следует данных. Маркер
также может содержать поле приоритета. При
маркерном управлении доступом в кольцевой сети в ситуации, когда
какой-либо станции нечего передавать, она безусловно транслирует проходящий
через нее маркер. Если всем станциям нечего передавать, пустой маркер
циркулирует по кольцу. Наконец, если у какой-то из станций появляются данные
для передачи, то эта станция, получив маркер, захватывает его и передает кадр.
Получатель кадра может принять его (если имеет свободные буферы) или может
отказаться от приема, отметив в трейлере кадра этот факт. Безотносительно к
этому, он транслирует полученный кадр дальше по кольцу. Задача удаления кадра
из кольца возлагается на отправителя. Таким образом отправитель может узнать
судьбу своих данных: нашли ли они адресата, и если нашли, то были ли приняты.
Смысл удаления кадра отправителем заключается в обеспечении «справедливого»
управления доступом: удаление кадра из кольца сопровождается генерацией свободного
маркера. Если бы оно производилось получателем, то какая-либо из пар
«отправитель–получатель» могла бы завладеть маркером на неограниченное время.
Маркерные кольца имеют ряд преимуществ, главным из которых является хорошая
реакция на перегрузку: не получив маркер, сетевой интерфейс ничего не может
передать, что обеспечивает эффективное распределение доступа к среде и
возможность передачи данных реального времени, в том числе и в сочетании с
пакетными данными. Недостатком маркерных колец является необходимость ожидания
маркера, что при низкой загрузке сети может привести к неоправданно большим задержкам.
Наличие нескольких маркеров в кольце сглаживает этот недостаток.
Технология передачи маркера имеет успех не только в физически кольцевых
сетях, но и в некоторых сетях шинной и звездообразной топологии. В ряде сетей
маркер передается по шине. Маркер содержит адрес станции, которая имеет право
начать передачу.
Существуют
два основных способа генерации маркера: логическое
кольцо и выделенный контроллер.
В логическом кольце маркер поочередно генерируется всеми станциями. Получив
маркер, станция, возможно, посылает пакет данных и после этого обязана породить
маркер для следующей по кольцу станции. Определенную сложность при этом представляет
включение новых станций в логическое кольцо. В сетях с контроллером маркер
генерируется одним устройством. В некоторых сетях контроллер выбирается динамически
и им может оказаться любой (или почти любой) адаптер: например, при включении
сети или пропадании старого контроллера (пропадание определяется по отсутствию
маркера в течение определенного интервала) производятся выборы, в которых
побеждает станция с наименьшим адресом. В шинных сетях основной недостаток
маркерной схемы – большие задержки – не может быть скомпенсирован запуском
нескольких маркеров, поэтому маркерные шины эффективны лишь в низкоскоростных
сетях и при небольшом количестве станций.
Для
широковещательных сред передачи без централизованного арбитра распространенным
решением проблемы доступа к среде является применение соревновательного механизма доступа.
Простейший протокол соревновательного доступа к среде был реализован в
начале 1970-х годов в экспериментальной радиосети ALOHANet (название ALOHA не является аббревиатурой). Использованный
в этой сети протокол достаточно прост и состоит в том, что станции передают
пакеты данных, когда сочтут нужным. Если в результате произойдет коллизия,
считается, что этому пакету «не повезло». Не получив в течение определенного
времени подтверждения на отправленный пакет, станция делает вывод, что он был
потерян, и повторяет передачу. Главный смысл механизма доступа протокола ALOHA, воспроизведенного позднее в ряде
других протоколов доступа к среде, заключается в том, что повторять передачу
сразу после истечения таймера нельзя: если пакет был потерян в результате
коллизии, то вторая станция также сделает повторную попытку передачи. Если
интервал между попытками определяется только тайм-аутом ожидания
подтверждения, все последующие попытки также будут приводить к коллизиям и,
следовательно, к блокировке. Чтобы избежать блокировок в сетях ALOHA время
ожидания перед повторной передачей определяется генераторами случайных чисел.
Очевидно, что пропускная способность среды с таким алгоритмом управления
доступом будет невелика: коллизии редки только при малом числе посылаемых
пакетов. Преимуществами стратегии ALOHA являются простота и нечувствительность
к диаметру сети – эта стратегия работоспособна практически при любых условиях.
Характерным преимущественным свойством ALOHA и других подобных алгоритмов
разрешения коллизий является малая задержка при низких уровнях загрузки сети. В
этих условиях средняя величина задержки в сетях с соревновательным доступом
значительно меньше, чем в маркерных – несмотря на то, что максимальная
величина задержки в такой сети вообще ничем не ограничена. Напротив, в
маркерных сетях существует гарантированное максимальное время задержки (за это
приходится расплачиваться увеличением значений минимальной и средней задержек).
Сравнительный анализ относительного распространения маркерных и
соревновательных сетей показывает, что при построении локальных сетей
разработчики склонны предпочитать низкую среднюю задержку гарантированной
максимальной, а малую эффективность соревновательных сред компенсировать разделением домена коллизий и расширением полосы пропускания.
Одним из эффективных приемов повышения
производительности соревновательных сетей является разделение домена коллизий. Например, при разделении частотного
диапазона на два поддиапазона и работе одной половины станций в одном поддиапазоне,
а второй половины – в другом, происходит разделение сегмента, за который
происходит соревнование, на две части. При этом ожидаемое число попыток передачи
уменьшается более чем вдвое.
Ряд
протоколов соревновательного доступа используют экспоненциальный откат – при каждой последующей коллизии время
ожидания увеличивается в определенное число раз (чаще всего в два раза). Это позволяет
сохранить низкие задержки при малых загрузках и сгладить короткие всплески
сетевой активности. Экспоненциальный откат в некоторых случаях приводит к
«несправедливому» распределению пропускной способности. А именно, при
множественной коллизии, в которой участвовало несколько станций, та станция,
которой удалось успешно передать пакет, начинает следующую попытку с нулевым
счетчиком коллизий и будет использовать при следующей коллизии меньший
интервал ожидания. Чтобы компенсировать это явление, многие протоколы, применяющие
экспоненциальный откат, ограничивают количество попыток повторных передач
после коллизии.
Существенного улучшения характеристик сети можно
добиться, синхронизировав передатчики (то есть заставив их всех начинать передачу
в дискретные промежутки времени). На практике это вдвое снижает интервал
перекрытия пакетов, а максимальная пропускная способность сети оказывается
вдвое выше и достигается при вдвое большей интенсивности посылки пакетов.
Такую реализацию доступа к среде называют дискретной
(или синхронной) ALOHA. Однако из-за конечной скорости распространения сигналов
возникает следующая ситуация: тот момент времени, который с точки зрения одного
приемника является началом дискретного интервала, с точки зрения другого
приемника не попадает на начало интервала. В результате этого синхронная ALOHA
применима лишь в сетях с выделенной базовой станцией. Кроме того, синхронная
ALOHA требует согласования часов передатчиков. На практике это часто
достигается рассылкой синхросигналов с базовой станции. При значительных
диаметрах сети интервалы часто приходится разделять защитными паузами.
Практически важным усовершенствованием протокола ALOHA является
протокол CSMA (Carrier Sence
Multiple Access –множественный доступ с
контролем несущей), который состоит в том, что станция перед началом
передачи прослушивает среду и только убеждаясь, что никто больше не передает,
начинает свою передачу. Из-за конечного времени распространения сигнала это не
исключает возможности коллизий, но оказывается эффективным. В отличие от ALOHA,
этот протокол устанавливает ограничение на диаметр сети: если время
распространения сигнала по сети превосходит время передачи самого короткого из
возможных пакетов, он сводится к базовому ALOHA. He удается также отказаться и
от подтверждений на отправленные пакеты. Значительное улучшение характеристик
CSMA может быть достигнуто за счет отказа от «настойчивости»: если станция при
попытке передачи обнаруживает, что среда занята, она не начинает свою передачу
сразу по освобождении среды, а выжидает случайный промежуток времени, как и при
коллизии. «Ненастойчивый» CSMA устойчив в том смысле, что график пропускной
способности в зависимости от активности не имеет максимума и асимптотически
(хотя и относительно медленно) приближается к 1. За это приходится платить
увеличением задержек и некоторым снижением эффективности при низких загрузках.
В целом CSMA представляет лишь некоторое улучшение по сравнению с базовыми
вариантами ALOHA. Тем не менее CSMA, ALOHA и их варианты часто используются, но
обычно их роль оказывается вспомогательной.
Важное улучшение алгоритма CSMA может быть достигнуто,
если передатчик прослушивает среду не только до начала передачи, но и во время
передачи. Таким образом, коллизия может быть обнаружена не только по отсутствию
подтверждения от приемника, но и непосредственно во время ее возникновения.
Это позволяет отказаться от подтверждений, но ограничение на размер сети
становится критически важным. Такой алгоритм (и соответствующий протокол) имеет
название CSMA/CD (Carrier Sence
Multiple Access/Collision Detection – множественный
доступ с контролем несущей и обнаружением коллизий). Размер пакета в
CSMA/CD должен быть ограничен как сверху, так и снизу. Ограничение сверху
обусловлено, во-первых, желанием обеспечить «справедливость» – имея
возможность передавать пакеты неограниченной длины, станция может занять среду
на практически неограниченное время (по этой же причине запрещено передавать
кадры вплотную один за другим); во-вторых, как и во всех других пакетных протоколах,
станции должны иметь буфер, достаточный для приема пакета (иначе они попросту
не смогут его принять); в третьих, использование длинных пакетов сведет на нет
главное преимущество соревновательных сред – малые задержки. Ограничение снизу
обусловлено требованием, чтобы самый короткий из пакетов успевал
распространиться по всей среде и все станции, которые могли бы начать за это
время передачу, обнаружили бы столкновение. Для этого время передачи
минимального пакета должно превосходить удвоенное время прохождения сигнала по
среде.
CSMA/CD
можно рассматривать как протокол, переходный от чисто соревновательных
протоколов к обширному семейству протоколов с резервированием пропускной
способности: передав начало пакета (размер которого определяется диаметром
сети), абонент резервирует среду передачи на весь остальной пакет. Для
резервирования используется алгоритм CSMA. Реальная производительность CSMA/CD
определяется не только интенсивностью передачи, но и средней длиной пакета.
Увеличение длины пакета приводит к повышению эффективности.
Алгоритм CSMA/CD удобен в кабельных сетях, где
затухание сигнала на пути от передатчика к приемнику невелико. В беспроводных
сетях мощность собственного сигнала на антенне нередко превосходит мощность
принимаемых сигналов на несколько порядков. В этих условиях обнаружение
коллизий практически не реализуемо, но большой успех имеет родственный
протокол, называемый CSMA/CA
(Carrier Sence Multiple Access/Collision Avoidance – множественный доступ с контролем несущей и избежанием коллизий).
Другое название этого протокола – МАСА
(Multiple Access with Collision Avoidance – множественный
доступ с избежанием коллизий). CSMA/CD использует для резервирования алгоритм
CSMA, a CSMA/CA – алгоритм ALOHA.
Станция, желающая передать
пакет данных, сначала посылает в сеть запрос RTS (Request To Send – запрос
на отправку) с указанием адресата будущего пакета. Если адресат нормально
принимает этот пакет, то он посылает CTS
(Clear To Send – разрешение отправки)
с указанием адреса отправителя. Получив CTS,
отправитель передает пакет данных и ждет подтверждения АСК (ACKnowledge – подтверждение).
Все остальные станции, услышав обмен пакетами RTS/CTS, воспринимают это как резервирование полосы пропускания и
воздерживаются от каких-либо передач или до прохода пакета АСК, или (если в течение заданного интервала времени АСК не
последует) выжидают, как при коллизии, случайный интервал времени.
|