Token Ring – это самая распространенная технология локальной сети с передачей маркера (Маркерный метод доступа). В таких сетях циркулирует (передается станциями друг другу в определенном порядке) специальный блок данных – маркер (token). Станция, которая приняла маркер, имеет право передавать свои данные. Для этого она изменяет в маркере один бит (“маркер занят”), добавляет к нему свои данные и передает в сеть (следующие станции). Станции передают такой кадр далее по кольце, пока он не достигнет получателя, который скопирует из него данные и передаст дальше. Когда отправитель получает свой кадр с данными, который сделал полный круг, он его отбрасывает и или передает новый кадр данных (если не минуло максимальное время владения маркером), или изменяет бит занятости маркера на “свободный” и передает маркер далее по кольце.
В течение всего времени владения маркером, к и после передачи своего кадра, станция должна выдавать последовательность, которая заполняет (fill sequence), - произвольную последовательность 0 и 1. Это делается для поддержки синхронизации и контроля за обрывом кольца.
Основной режим работы адаптера - повторение: передатчик побитно выдает данные, которые поступили к приемнику. Когда в станции есть кадр для передачи и принят свободный маркер, станция переходит в режим передачи, при этом битовый поток, который поступает через приемник, анализируется на служебные кадры и или (если обнаружен служебный кадр) инициирующее прерывание (прекращение передачи своего кадра и выдача кадра прерывания), или приняты данные отбрасываются.
В сетях Token Ring 4 Мбит/со станция освобождала маркер только по возвращении ее кадра данных. Сети Token Ring 16 Мбит/с используют алгоритм раннего освобождения маркера (Early Token Release): маркер передается в кольцо сразу по окончании передачи кадру данных. При этом по кольцу одновременно передается несколько кадров данных, но генерировать их в каждый момент времени может только одна станция, которая владеет в этот момент маркером.
За правильной работой сети следит активный монитор (Active Monitor, AM), избираемый во время инициализации кольца как станция с максимальным MAC-адресою. В случае отказа активного монитора, проводятся выборы нового (все станции в сети, кроме активного монитора, считаются резервными мониторами (Standby monitor)). Основная функция активного монитора – контроль наличия единственного маркера в кольце. Монитор выпускает в кольцо маркер и удаляет кадры, которые прошли больше одного оборота по кольцу. Чтобы сообщить другие станции о себе, активный монитор периодически передает служебный кадр AMP. Если за время какой-то (достаточный для оборота маркера по кольцу) маркер не вернется к активному монитору, маркер считается затерянным, и активный монитор генерирует новый маркер.
На режим передачи кадров влияют отмеченные в стандарте максимальные интервалы времени, за соблюдением которых следят специальные таймеры в сетевых адаптерах (приведены значения за умалчиванием, администратор сети может их изменять):
- время содержания маркера (Token Holding, THT) – 8,9 мс; по окончании этого интервала станция должна прекратить передачу своих данных (текущий кадр можно передать) и освободить маркер; за время содержания маркера станция может передать несколько (небольших) кадров;
- допустимое время передачи кадру (Valid Transmission, TVX) – 10 мс; максимальное время, в которое должна заключиться передача одного кадра; контролируется активным монитором;
- время ожидания свободного маркера (No Token, TNT) – 2,6 с; время ожидания свободного маркера активным монитором; если за это время маркер не появится, активный монитор выполняет очистку кольца и генерирует новый маркер;
- период посылки AMP (Active Monitor, TAM) – 7 с;
- время ожидания AMP (Standby Monitor Detect AMP, TSM) – 16 с; если за этот интервал не было ни одного кадра AMP, инициирующие выборы нового активного монитора.
Форматы кадров Token Ring
Token Ring определяет три типа кадров: маркер, кадр данных (служебных или пользовательских) и прерывания.
Маркер
Полет |
SD |
AC |
ED |
Длина (байт) |
1 |
1 |
1 |
Кадр данных
Полет |
SD |
AC |
FC |
DA |
SA |
RI |
Info |
FCS |
ED |
FS |
Длина (байт) |
1 |
1 |
1 |
6 |
6 |
0 |
0 |
4 |
1 |
1 |
Прерывание
Полет |
SD |
ED |
Длина (байт) |
1 |
1 |
Рис.8.1. Форматы кадров Token Ring
Поле SD (Starting Delimiter, начальное ограничение) указывает на начало кадра и имеет значение JK0JK000 в манчестерском коде. Поскольку в поле присутствуют специальных кодов J и K, последовательность данных нельзя попутать с ограничением кадру.
Поле ED (Ending Delimiter, конечное ограничение) имеет значение JK1JK1IE, где бит I (Intermediate, промежуточный) указывает, является ли кадр промежуточным в последовательности кадров (I=1) или останнім/єдиним (I=0), а бит E (Error, ошибка) указывает на обнаруженную ошибку (E=1).
Поле AC (Access Control, управление доступом) имеет формат PPPTMRRR, где биты PPP (Priority, приоритет) содержат приоритет маркера, бит T (Token, маркер) отличает свободный маркер (T=1) от кадра данных (T=0), бит M (Monitor, монитор) используется для распознавания кадров, которые сделали больше одного оборота по кольцу: монитор устанавливает M=1 во всех проходящих через него кадрах (другие станции устанавливают M=0), а кадры из M=1 должны удаляться монитором. Биты RRR (Priority reservation, резервирование) несут приоритет станции, которая желает захватить маркер.
Поле FC (Frame Control, управление кадром) имеет формат FFZZZZZZ. Биты FF определяют тип кадра:
- 00 – кадр данных со служебной информацией ( MAC-кадр);
- 01 – кадр данных пользователя ( LLC-кадр);
- 10, 11 - резерв.
Биты ZZZZZZ используются LLC-кадрами для хранения информации о приоритете кадра уровня LLC. MAC-кадри в этих битах хранят свой тип. IEEE 802.5 определяет 25 типов MAC-кадрів, среди которых основные:
- CT (Claim Token, заявка на создание маркера) – отправляется резервным монитором при подозрении об отказе активного монитора;
- DAT (Duplicate Address Test, тест на дублирование адреса) – отправляется станцией при подключении к кольцу для проверки уникальности своего адреса;
- AMP (Active Monitor Present, является присутствует активный монитор) – регулярно (раз в 7 с) отправляется активным монитором для подтверждения своего присутствия;
- SMP (Standby Monitor Present, является присутствует резервный монитор) – ответ на кадр AMP;
- BCN (Beacon, бакен) – отправляется станцией, которая обнаружила сетевую проблему (тишину или бесконечный поток, который может указывать на обрыв кабеля, наличие неисправного адаптера у одной из станций и тому подобное);
- PRG (Purge, очистка) – сигнал от активного монитора об очистке кольца от всех кадров.
Поле DA (Destination Address, адрес назначения) имеет структуру, подобную структуре адреса в стандарте IEEE 802.3. Старший бит адреса определяет получателя: 0 - индивидуальный (одна станция), 1 - групповой. Второй бит адреса определяет способ назначения адреса: 0 - глобально (универсально, зашито в ПЗП адаптера), 1 - локально. Другие биты используются для указания адреса станции, кольца или группы получателей. Несколько адресов зарезервировано для служебных целей:
FF FF FF FF FF FF – широковещательный кадр (всем станциям)
C0 00 FF FF FF FF – широковещательный MAC-кадр
C0 00 00 00 00 01 – активный монитор
C0 00 00 00 00 02 – сервер параметров кольца
C0 00 00 00 00 08 – монитор ошибок кольца
C0 00 00 00 00 10 – сервер отчетов о конфигурации
C0 00 00 00 01 00 – мост
C0 00 00 00 20 00 – управление сетью.
Поле SA (Source Address, адрес источника) имеет тот же формат, что и адрес назначения, за исключением старшего бита. В адресе источника старший бит называется RII (Routing Information Indicator) и указывает (если RII=1) на наличие данных в поле RI.
Поле RI (Routing Information, маршрутная информация), если используется (RII=1), содержит последовательность (двохбайтних) адресов сегментов на пути к получателю. Данные этого поля управляют работой мостов в режиме маршрутизации от источника.
Поле Info содержит или данные пользователя (кадр LLC), или служебные данные, обусловленные типом кадра (кадр MAC). Стандарт не ограничивает размер этого поля, хотя практически его максимальный размер определяется соотношением времен передачи кадру и содержания маркера. Для 4 Мбит/с максимальный размер кадра обычно устанавливается в 4 Кбайт, а для 16 Мбит/с - в 16 Кбайт. Минимальный размер поля данные не определенный.
Поле FCS (Frame Check Sequence, контрольная сумма) хранит 4-байтный CRC-код для всех полей из FC по Info включительно.
Поле FS (Frame Status, статус кадра) имеет формат AСrrACrr. Биты rr зарезервированы и не используются, другие биты дублируются для надежности. Бит A (Address Recognized, адрес распознан) указывает на то, что получатель кадра присутствует в кольце, а бит C (Frame Copied, кадр скопирован) указывает на то, что приемник скопировал кадр себе в буфер. По этим полям станция-отправитель может узнать, что передан ею кадр был получен.