171
получит маркер. После получения маркера, станция №1 изымает маркер из кольца и получает доступ к кольцу и передает кадр (пакет) А к станции №3.
Кадр проходит через станцию №2 кольца, которая как повторитель, побитно продвигает этот кадр дальше по кольцу. И вот он попадает к станции №3.
Станция №3 получив кадр устанавливает два признака:
−признак распознавания адреса
−признак копирования кадра в буфер (он показан в виде звездочки внутри кадра на рис 7.9)
Рис. 7.9. Принцип маркерного доступа
Проделав это, станция №3 передает этот же кадр дальше в кольцо. Действия стаций №4,5 аналогичны действиям станции № 2. Стация №1 получив кадр обратно, распознает свой кадр (по адресу отправителя), узнает, что он принят и удаляет его из кольца. О том, что ее кадр дошел до адресата
172
и был успешно скопирован в свой буфер, станция отправитель узнает по двум установленным в кадре признакам распознания и копирования (в кадре имеется также и признак ошибки при передаче, но об этом мы поговорим немного позже). После удаления своего кадра из кольца станция №1 отпускает маркер, который опять начинает циклически передвигаться, предоставляя другим станциям право на доступ к кольцу.
Станция может передавать данные только после получения маркера. В этом случае самостоятельно начать передачу данных, как это было в сети с методом CSMA/CD в сетях Ethernet, станция не может.
Маркерный метод доступа применяется в сетях Token Ring со скоростью работы 4 Мбит/с, описанных в стандарте 802.5.
Необходимо заметить, что время владения разделяемой средой в сети Token Ring ограничивается временем удержания маркера - token holding time
Например, станция №1 после того, как она передала, и убедилась, что удачно передала свой кадр, пожелала сразу же передать кадр станции №5, она не "отпустит" маркер в кольцо, а пошлет свой следующий кадр и т.д. Таким образом, другие станции не смогут передавать свои кадры, потому что они не получат маркера, который позволил бы им получить доступ к среде. Этот вопрос разработчиками Token Ring был сразу изначально решен путем ограничения времени владения маркером. После того, как это время закончится, любая из станций обязана прекратить передачу собственных данных (правда текущий кадр разрешается завершить) и передать маркер далее по кольцу. Обычно время удержания маркера по умолчанию равно 10 мс, а максимальный размер кадра в стандарте 802.5 не определен. Для сетей 4 Мбит/с он обычно равен 4 Кбайт, а для сетей 16 Мбит/с - 16 Кбайт. Это связано с тем, что за время удержания маркера станция должна успеть передать хотя бы один кадр.
Для сетей Token Ring с пропускной способностью 16 Мбит/с появилась задача повысить скорость передачи данных, и разработчики несколько изменили алгоритм маркерного доступа к кольцу, который используется в 4 Мегабитных сетях Token Ring. Большую скорость удалось достичь за счет того, что станция после передачи последнего бита кадра сразу передает маркер следующей станции. Станция не дожидается возвращения по кольцу отосланного кадра с битом подтверждения приема. Как только кадр послан в сеть, она сразу "отпускает" маркер. В таком случае пропускная способность кольца используется более эффективно, так как по кольцу одновременно продвигаются кадры сразу нескольких станций. Тем не менее, свои кадры в каждый момент времени может генерировать только одна станция - та, которая в данный момент владеет маркером доступа. Остальные станции в это время только повторяют чужие кадры, так что принцип разделения кольца во времени сохраняется, ускоряется только процедура передачи владения кольцом. Такой алгоритм называют
алгоритмом раннего освобождения маркера (Early Token Release) .
В связи с принципом работы маркерного доступа, необходимо отметить два момента:
173
−в реальной сети часто складывается ситуация, когда передавать данные необходимо всем станциям;
−в локальных сетях существуют такие станции, для которых необходимо обеспечить возможность доступа к среде в первую очередь.
Т.е. сетях Token Ring существуют приоритеты, назначаемые
передаваемым кадрам. Таких приоритетов – семь: 0 - низший; 7 - высший Какой приоритет, у какого кадра должен быть определяет станция
отправитель. Это решение MAC уровень Token Ring принимает через межуровневые интерфейсы от протоколов верхнего уровня, например прикладного. Маркер всегда имеет некоторый уровень текущего приоритета.
Работа по принципу приоритетного доступа заключается в том, что: станция имеет право захватить переданный ей маркер только в том
случае, если приоритет кадра, который она хочет передать, выше (или равен) приоритета маркера. В противном случае станция обязана передать маркер следующей по кольцу станции.
Вернемся к нашему примеру сети из 6-ти станций (рис. 7.9). Если станция №1 должна передать кадр станции №3 с приоритетом 3, она получает в какой-то момент маркер, у которого текущий приоритет 0. Поскольку приоритет ее кадра выше, она "захватывает" доступ и передает кадр в сеть. После передачи кадра, станция №1 "отпускает" маркер, теперь у него приоритет равен 3. Следующая станция №2 тоже должна передать кадр с приоритетом - 0, она получает маркер, приоритет которого выше, поэтому станция №2 не получает доступа к сети, а просто предает маркер дальше по кольцу. То есть сетевой адаптер станции с кадрами, у которых приоритет ниже, чем приоритет маркера, не может захватить маркер. Но в сетях Token Ring предусмотрена следующая особенность. Если станция обнаруживает, что приоритет ее кадра ниже, чем приоритет маркера, то она может поместить наибольший приоритет своих кадров, которые ей нужно передать в специально существующие для этого резервные биты маркера.
Однако станция может занести приоритет своего кадра в резервные биты маркера, только в том случае если уже записанный в них приоритет ниже его собственного. В результате в резервных битах приоритета устанавливается наивысший приоритет станции, которая претендует получить доступ к кольцу, но не может этого сделать из-за высокого приоритета маркера.
Рассмотрим ситуацию на примере: если в сети присутствует маркер с приоритетом 6. Станция №1 имеет приоритет - 0, станция №2 – приоритет 3, станция №3 - 6. Станция №1 получает маркер (приоритет 6), не может его захватить, но записывает 0 в резервные биты маркера. Маркер попадает к станции №2. Она также его не может захватить, но может записать в резервные биты свой приоритет 3, потому что он выше, чем уже записанный там. Станция №3 захватывает маркер (потому что имеет приоритет 6), передает свой кадр с приоритетом маркера. Затем следует очень важная процедура: значения приоритета резервных бит маркера переписывается в поле приоритета, а сами резервные биты обнуляются.
174
Втаком виде маркер передается ближайшему соседу (то есть станции №1), которая не может его захватить, т.к. теперь у маркера с приоритет 3, его захватывает станция №2. Она передаст свой кадр и перепишет в поле приоритета маркера приоритет резервных бит - 0, резервные биты обнуляются. Поскольку станция №3 имеет приоритет выше чем ноль, то она сначала передаст свои данные, но потом опять же перепишет в поле приоритета значение резервных бит, то есть в данном случае 0. Поэтому сейчас, наконец-то, и станция №1 также получит доступ к кольцу.
Таким образом, после передачи кадров в кольце маркер захватывает та станция, у которой приоритет резервных бит был выше всех, то есть следующая по приоритету станция. И при этом обеспечивается, что все в свое время все равно смогут получить возможность передать кадр со своим приоритетом. При инициализации кольца основной и резервный приоритет маркера устанавливаются в 0.
Следует отметить, что хотя механизм приоритетов в технологии Token Ring существует, но он начинает работать только в том случае, когда приложение или прикладной протокол решают его использовать. Иначе все станции будут иметь равные права доступа к кольцу, что в основном и происходит на практике, так как большая часть приложений этим механизмом не пользуется.
Всовременных сетях приоритетность обработки кадров обычно обеспечивается коммутаторами или маршрутизаторами, которые поддерживают их независимо от используемых протоколов канального уровня.
Основа маркерного доступа – постоянное наличие маркера в кольце, которое контролирует специально выделенная станция - активный монитор. Активный монитор выбирается в начале работы сети (во время инициализации кольца) как станция с максимальным значением МАС-адреса.
Если активный монитор выходит из строя, процедура инициализации кольца повторяется и выбирается новый активный монитор. Чтобы сеть могла обнаружить отказ активного монитора, он каждые 3 секунды генерирует специальный кадр, который подтверждает его присутствие в кольце.
Если этот кадр не появляется в сети более 7 секунд, то остальные станции сети начинают процедуру выборов нового активного монитора.
Таким образом, в сети Token Ring станции сами могут определить возникшие неполадки.
Активный монитор полностью отвечает за наличие в сети маркера, и, причем, единственной его копии. Если он не получает маркер в течение длительного времени (например, 2.6 с), то он порождает новый маркер. Кроме этого, активный монитор должен осуществлять текущий контроль за работой всей сети. Он должен проверять корректность отправки и получения кадров, отслеживать кадры, проходящие по кольцу более одного раза.
175
В заключении следует отметить, что маркерный метод доступа используется не только в сетях Token Ring, но и с некоторыми отличиями и в сетях построенных по технологии FDDI и 100-VG AnyLAN
7.6.3 Форматы кадров Token Ring
ВToken Ring существуют три различных формата кадров:
−маркер - специальный кадр, который определяет право доступа станций к общему разделяемому ресурсу;
−кадр данных - собственно сами данные;
−прерывающая последовательность - последовательность, которая прерывает всякую передачу в кольце, как маркера, так и кадра.
Рассмотрим каждый из перечисленных форматов.
Маркер. Кадр маркера состоит из трех полей, каждое поле имеет длину в один байт.
|
|
|
|
|
SD |
|
AC |
|
ED |
|
|
|
|
|
J K O J K O O O |
|
P P P T M R R R |
|
J K 1 J K 1 I E |
|
|
|
|
|
Рис. 7.10
1. Поле - начальный ограничитель (Start Delimiter, SD)
SD является начальным ограничителем не только маркера, но и любого кадра данных проходящего по сети. Поле SD представляет собой следующую уникальную последовательность символов манчестерского кода: J K O J K O