Система с передачей маркера обычно реализуется в локальной сети с кольцевой топологией или с общей шиной. Считается, что имеет место циклическая нумерация узлов, т.е. за узлом с последним номером следует узел с первым номером. При включении в системе генерируется маркер - специальная кодовая последовательность, которая передается по кольцу. Все узлы, соединенные по кольцевой схеме, имеют приемный и передающий регистры, устройство для сравнения кодовых комбинаций и переключатели. Если узел имеет данные для передачи, он вынужден ждать, пока предшествующий узел не вышлет ему маркер. Когда узел получает маркер, он на время удаляет его из кольца и помещает вслед за пакетом данных, сохраняемым в сдвиговом регистре для передачи. Затем сдвиговый передающий регистр последовательно включается в кольцо, а его содержимое, включая маркер в конце пакета, посылается по кольцу. Далее регистр отключается от кольца, а узел ожидает возвращения отправленного им пакета. Первый же пакет, полученный на приемной стороне, должен при нормальных условиях быть этим отправленным пакетом. Поэтому первый же полученный пакет считывается в приемный регистр для анализа. После этого восстанавливается обычная цепь кольца, а узел переходит в состояние ожидания следующего маркера для передачи следующей порции информации. Таким образом, поступающий в некоторый узел поток информации всегда начинается пакетом, отправленным данным узлом. Каждый отправитель ответственен за удаление своих пакетов из кольца. Каждый передаваемый пакет всегда становится последним в последовательности пакетов, предшествующих маркеру. Устройство-получатель читает пакет по мере его прохождения через узел и может выставить флаг подтверждения в его конце, не изменяя при этом сам пакет.
Основные трудности систем с передачей маркера:
- потеря маркера,
- неудаление своего пакета отправителем,
- дублирование маркера,
Первая ситуация может возникнуть когда маркер удален каким-либо узлом передающим информацию, а затем не восстановлен по причине аппаратного сбоя или когда маркер оказался поврежденным при передаче и стал поэтому нераспознаваем. Пакет может оказаться неудаленным потому, что произошла ошибка в узле-отправителе, и поток поступающей информации не был отведен в приемный буфер этого узла. С первыми двумя ситуациями удается справиться с помощью специального устройства, ответственного за наличие маркера и следящего за циркуляцией пакетов по кольцу, или, поручив выполнять эти функции одному из узлов.
Ситуация дублирования маркера случается если какие-то два узла генерируют новые маркеры одновременно. Этого можно избежать, если каждый узел, генерирующий маркер, всегда помещает перед маркером полный пакет и следит за тем, чтобы он вернулся первым. Каждый появившийся на входе пакет проверяется и удаляется, если он отличается от переданного пакета. Если два узла делают это одновременно, то они уничтожают маркеры и пакеты друг друга. После произвольного временного интервала в какой-то точке кольца снова генерируется маркер. Если каждый из узлов, уже передавших пакет, всегда уничтожает первые пакеты, поступившие к нему из кольца, пока не дойдет до своего пакета, то тем самым решается и проблема неудаленных пакетов.
Варианты реализации систем с передачей маркера, имеющих кольцевую топологию:
- системы, в которых удаление пакета из сети осуществляет приемный узел;
- системы, в которых пакет посылается вместо удаленного маркера, а восстановление маркера осуществляется после удаления своего пакета, и другие.
Принцип работы системы с передачей маркера с общей шиной такой же, как и в случае кольцевой топологии. В каждом узле для маркера устанавливается очередность прохождения остальных узлов, т. е. заранее формируется предполагаемый циклический маршрут маркера. Узлу, которому по его адресу, указанному в маркерном пакете, был передан маркер, предоставляется право пересылки информационного пакета. При отсутствии пакетов, ожидающих передачи, маркерный пакет немедленно высылается следующему по очереди узлу.