Введение
Технология
сетей Token Ring была впервые представлена IBM в 1982 г. и
в 1985 г. была включена IEEE (Institute
for Electrical and Electronic Engeneers)
как стандарт 802.5. Token Ring
попрежнему является основной технологией IBM для
локальных сетей (LAN), уступая по популярности среди технологий LAN только
Ethernet/IEEE 802.3. Сети Token Ring работают с двумя битовыми скоростями - 4
Мб/с и 16 Мб/с. Первая скорость определена в стандарте 802.5, а вторая является
новым стандартом де-факто, появившимся в результате развития технологии Token
Ring.
В Token Ring кабели подключаются по схеме “звезда”, однако он функционирует как логическое
кольцо .
В логическом
кольце циркулирует маркер (небольшой кадр специального формата, называемый
иногда токеном), когда он доходит до станции, то она захватывает канал. Маркер
всегда циркулирует в одном направлении. Узел, получающий маркер у ближайшего
вышерасположенного активного соседа передает его нижерасположенному. Каждая
станция в кольце получает данные из
занятого маркера и отправляет их ( в точности повторяя маркер) соседнему узлу
сети. Таким способом данные циркулируют по кольцу до тех пор, пока не достигнут
станции – адресата. В свою очередь эта станция сохраняет данные и передает их
протоколам верхнего уровня а кадр передает дальше (поменяв в нем два бита –
признак получения). Когда маркер достигает станции–отправителя – он
высвобождается, и далее процесс продолжается аналогично.
В сетях Token Ring 16 Мб/с
используется также несколько другой алгоритм доступа к кольцу, называемый
алгоритмом “раннего освобождения маркера” (Early Token
Release). В соответствии с ним станция передает маркер доступа следующей
станции сразу же после окончания передачи последнего бита кадра, не дожидаясь
возвращения по кольцу этого кадра с битом подтверждения приема. В этом случае
пропускная способность кольца используется более эффективно и приближается к 80
% от номинальной. Когда информационный блок циркулирует по кольцу, маркер в
сети отсутствует (если только кольцо не обеспечивает "раннего освобождения
маркера"), поэтому другие станции, желающие передать информацию, вынуждены
ожидать.Таким образом по сети может в один момент времени передаваться только
один пакет следовательно, в сетях Token Ring не может быть коллизий. Если
обеспечивается раннее высвобождение маркера, то новый маркер может быть выпущен
после завершения передачи блока данных.
Сети Тоkеn Ring используют сложную систему
приоритетов, которая позволяет некоторым станциям с высоким приоритетом,
назначенным пользователем, более часто пользоваться сетью. Блоки данных Token
Ring содержат два поля, которые управляют приоритетом: поле приоритетов и поле
резервирования.
Только станции с приоритетом, который равен или выше
величины приоритета, содержащейся в маркере, могут завладеть им. После того,
как маркер захвачен и изменен( в результате чего он превратился в
информационный блок), только станции, приоритет которых выше приоритета
передающей станции, могут зарезервировать маркер для следующего прохода по
сети. При генерации следующего маркера в него включается более высокий
приоритет данной резервирующей станции. Станции, которые повышают уровень
приоритета маркера, должны восстановить предыдущий уровень приоритета после
завершения передачи.
Когда кольцо установлено, интерфейс каждой станции хранит
адреса предшествующей станции и последующей станции в кольце. Периодически
держатель маркера рассылает один из SOLICIT_SUCCESSOR кадр , предлагая новым
станциям присоединиться к кольцу. В этом кадре указаны адрес отправителя и
адрес следующий за ним станции в кольце. Станции с адресами в этом диапазоне
адресов могут присоединиться к кольцу. Таким образом сохраняется
упорядоченность ( по возрастанию) адресов в кольце. Если ни одна станция не
откликнулась на SOLICIT_SUCCESSOR кадр, то станция-обладатель маркера закрывает
окно ответа и продолжает функционировать как обычно. Если есть ровно один
отклик, то откликнувшаяся станция включается в кольцо и становиться следующей в
кольце. Если две или более станции откликнулись, то фиксируется коллизия.
Станция-обладатель маркера запускает алгоритм разрешения коллизий, посылая кадр
RESOLVE_CONTENTION. Этот алгоритм - модификация алгоритма обратного двоичного
счетчика на два разряда.
У каждой станции в интерфейсе
есть два бит, устанавливаемых случайно. Их значения 0,1,2 и 3. Значение этих
битов определяют величину задержки, при отклике станции на приглашение
подключиться к кольцу. Значения этих бит переустанавливаются каждые 50mсек.
Процедура подключения новой станции
к кольцу не нарушает наихудшее гарантированное время для передачи маркера по
кольцу. У каждой станции есть таймер, который сбрасывается когда станция
получает маркер. Прежде чем он будет сброшен его значение сравнивается с
некоторой величиной. Если оно больше, то процедура подключения станции к кольцу
не запускается. В любом случае за один раз подключается не более одной станции
за один раз. Теоретически станция может ждать подключения к кольцу сколь угодно
долго, на практике не более нескольких секунд. Однако, с точки зрения
приложений реального времени это одно из наиболее слабых мест 802.4.
Отключение станции от кольцо очень просто. Станция Х с
предшественником S и последователем Р шлет кадр SET_SUCCESSOR, который
указывает Р что отныне его предшественником является S. После этого Х
прекращает передачу.
Инициализация кольца - это
специальный случай подключения станции к кольцу. В начальный момент станция
включается и слушает канал. Если она не обнаруживает признаков передачи, то она
генерирует CLAIM_TOKEN маркер.
Если конкурентов не обнаружилось, то она генерирует
маркер сама и устанавливает кольцо из одной станции. Периодически она
генерирует кадры SOLICIT_SUCCESSOR, приглашая другие станции включиться в
кольцо. Если в начальный момент сразу две станции были включены, то запускается
алгоритм обратного двоичного счетчика с двумя разрядами.
Под ISU (Information Symbol
Unit) понимается единица передачи информации
Общая часть
В сетях Token Ring используются различные типы
кадров:
Data/Command Frame (кадр
управления/данные), Token (маркер), Abort (кадр сброса).
Аппаратное обеспечение
сетей Token Ring
При подключении устройств в ARCNet применяют топологию
шина или звезда. Адаптеры ARCNet поддерживают метод доступа Token Bus (маркерная шина)
Смешение станций, работающих
на различных скоростях, в одном кольце не допускается.
Коллизии
Из-за ошибок передач и сбоев оборудования могут
возникать проблем с передачей маркера - коллизии. Стандарт Token Ring четко определяет методы разрешения коллизий:
Важной для разрешения
коллизий является возможность станций “слушать” после передачи.
В случае, если станция
передает маркер соседней, а та в это время отключается (например из-за
аппаратного сбоя), то если не последует передач кадра или маркера, то маркер
посылается вторично.
Если и при повторной
передаче маркера ничего не последовало, то станция посылает WHO_FOLLOWS кадр,
где указан не отвечающий сосед. Увидя этот кадр, станция, для которой не
отвечающая станция - предшественник, шлет кадр SET_SUCCESSOR, и становится
новым соседом. При этом неотвечающая станция исключается из кольца.
В случае, если остановилась не только следующая
станция, но и следующая за ней - запускается новая процедура, посылкой кадра SOLICIT_SUCCESSOR_2.
В ней участвует процедура разрешения конфликтов. При этом все кто хочет
подключиться к кольцу могут это сделать. Фактически кольцо переустанавливается.
Другой вид проблем возникает,
когда останавливается держатель маркера и маркер исчезает из кольца. Эта
проблема решается запуском процедуры инициализации кольца. У каждой станции
есть таймер, который сбрасывается каждый раз, когда маркер появляется. Если
значение этого таймера превысит некоторой заранее установленное значение (time out),
то станция генерирует кадр CLAIM_TOKEN. При этом запускается алгоритм обратного
двоичного счетчика.
Если оказалось два и более маркеров на шине, станция,
владеющая маркером, увидев передачу маркера на шине, сбрасывает свой маркер.
Так повторяется до тех пор пока не останется ровно один маркер в системе.
Не все станции в кольце
равны. Одна из станций обозначается как активный монитор, что означает
дополнительную ответственность по управлению кольцом. Активный монитор
осуществляет управление тайм-аутом в кольце, порождает новые маркеры (если
необходимо), чтобы сохранить рабочее состояние, и генерирует диагностические
кадры при определенных обстоятельствах. Активный монитор выбирается, когда
кольцо инициализируется, и в этом качестве может выступить любая станция сети.
Алгоритм определения активного монитора следующий: при включении
или если какая-то станции заметит отсутствие монитора, она посылает CLAIM_TOKEN
кадр. Если она первая, кто послал такой кадр, то она и становится монитором
Если монитор отказал по какой-либо причине, существует
механизм, с помощью которого другие станции (резервные мониторы) могут
договориться, какая из них будет новым активным монитором. Одной из функций
для которых служит активный монитор является удаление из кольца постоянно
циркулирующих блоков данных. Если устройство, отправившее блок данных,
отказало, то этот блок может постоянно циркулировать по
кольцу. Это может помешать другим станциям передавать собственные блоки данных
и фактически блокирует сеть. Активный монитор может выявлять и удалять такие
блоки и генерировать новый маркер. Важной функцией монитора является установка
задерки на кольце, задержка должна быть достаточна, для того, чтобы в кольце
уместился 24-битный маркер.
Звездообразная топология сети IBM Token Ring также
способствует повышению общей надежности сети. Т.к. вся информация сети Token
Ring просматривется активными MSAU, эти устройства можно запрограммировать так,
чтобы они проверяли наличие проблем и при необходимости выборочно удаляли
станции из кольца.
Алгоритм Token Ring,
называемый "сигнализирующим" (beaconing), выявляет и пытается
устранить некоторые неисправности сети. Если какая-нибудь станция обнаружит
серьезную проблему в сети (например такую, как обрыв кабеля), она высылает
сигнальный блок данных. Сигнальный блок данных указывает домен неисправности, в
который входят станция, сообщающая о неисправности, ее ближайший активный
сосед, находящийся выше по течению потока информации (NAUN), и все, что
находится между ними. Сигнализация инициализирует процесс, называемый
"автореконфигурацией" (autoreconfiguration), в ходе которого
узлы, расположенные в пределах отказавшего домена, автоматически выполняют
диагностику, пытаясь реконфигурировать сеть вокруг отказавшей зоны. В
физическом плане MSAU может выполнить это с помощью электрической
реконфигурации.
Практическая часть
Пусть у нас есть сеть из 50 станций, работающая на
скорости 10 Мбит/сек и настроенная так, что на подстанции с приоритетом 6
остается 1/3 пропускной способности. Тогда каждая станция имеет гарантированно
для приоритета 6 скорость не менее 67 Кб/с. Эта пропускная способность может
быть использована для управления устройствами в реальном масштабе времени.
Важной проблемой при создании кольцевой сети является
"физическая длина" бита. Пусть данные передаются со скоростью R
Mbps. Это значит, что каждые 1/R ms на линии появляется бит. Учитывая, что
сигнал распространяется со скоростью 200 m/ms, то один бит занимает 200/R
метров кольца. Отсюда, при скорости 1 Мbps и длине окружности 1 км кольцо
вмещает не более 5 бит одновременно.
Следствием конструкции сети кольцо с маркером является
т, что сеть должна иметь достаточную протяженность, чтобы маркер могут
уместиться в ней целиком даже когда все станции находятся в ожидании. Задержки
складываются из двух компонентов - 1 бит задержка на интерфейсе станции и
задержка на распространение сигнала. Учитывая, что станции могут выключаться,
например
на ночь, следует что на
кольце должна быть искусственная задержка, если кольцо не достаточно длинное.
При малой загрузке станции в сети кольцо с маркером сразу смогут передавать
свои сообщения. По мере роста загрузки у станций будут расти очереди на
передачу и они в соответствии с кольцевым алгоритмом будут захватывать маркер и
вести передачу. Постепенно загрузка кольца будет расти пока не достигнет 100%.
Формат маркера
Кадр маркера состоит из трех полей, каждое длиной в
один байт.
- Поле начального
ограничителя появляется в начале
маркера, а также в начале любого кадра, проходящего по сети. Поле состоит
из уникальной серии электрических импульсов, которые отличаются от тех
импульсов, которыми кодируются единицы и нули в байтах данных. Поэтому
начальный ограничитель нельзя спутать ни с какой битовой
последовательностью.
- Поле контроля доступа. Разделяется на четыре элемента данных:
PPP T M RRR,
где PPP - биты приоритета, T - бит маркера, M - бит монитора, RRR -
резервные биты.
Каждый кадр или маркер имеет приоритет,
устанавливаемый битами приоритета (значение от 0 до 7, 7 - наивысший приоритет).
Станция может воспользоваться маркером, если только она получила маркер с
приоритетом, меньшим или равным, чем ее собственный. Сетевой адаптер станции,
если ему не удалось захватить маркер, помещает свой приоритет в резервные биты
маркера, но только в том случае, если записанный в резервных битах приоритет
ниже его собственного. Эта станция будет иметь преимущественный доступ при
последующем поступлении к ней маркера.
Схема использования приоритетного метода
захвата маркера показана на рисунке 13. Сначала монитор помещает в поле
текущего приоритета P максимальное значение приоритета, а поле резервного
приоритета R обнуляется (маркер 7110). Маркер проходит по кольцу, в котором
станции имеют текущие приоритеты 3, 6 и 4. Так как эти значения меньше, чем 7,
то захватить маркер станции не могут, но они записывают свое значение
приоритета в поле резервного приоритета, если их приоритет выше его текущего
значения. В результате маркер возвращается к монитору со значением резервного
приоритета R = 6. Монитор переписывает это значение в поле P, а значение
резервного приоритета обнуляет, и снова отправляет маркер по кольцу. При этом
обороте его захватывает станция с приоритетом 6 - наивысшим приоритетом в
кольце в данный момент времени.
Бит маркера имеет значение 0 для маркера и 1 для
кадра.
Бит монитора устанавливается в 1 активным монитором и
в 0 любой другой станцией, передающей маркер или кадр. Если активный монитор
видит маркер или кадр, содержащий бит монитора в 1, то
активный монитор знает, что этот кадр или маркер уже однажды обошел кольцо и не
был обработан станциями. Если это кадр, то он удаляется из кольца. Если это
маркер, то активный монитор переписывает приоритет из резервных битов
полученного маркера в поле приоритета. Поэтому при следующем проходе маркера по
кольцу его захватит станция, имеющая наивысший приоритет.
- Поле конечного
ограничителя - последнее поле
маркера. Так же, как и поле начального ограничителя, это поле содержит
уникальную серию электрических импульсов, которые нельзя спутать с
данными. Кроме отметки конца маркера это поле также содержит два подполя:
бит промежуточного кадра и бит ошибки. Эти поля относятся больше к кадру
данных, который мы и рассмотрим
--------
. Поля Start delimiter и End
delimiter предназначены для распознавания начала и конца кадра. Они имеют
специальную кодировку, которая не может встретиться у пользователя. Поэтому
поля длина кадра не требуется. Поле Frame control отделяет управляющие поля от
полей данных. Для кадров данных здесь указывается приоритет кадра. Это поле
также используется станцией получателем для подтверждения корректного или не
корректного получения кадра. Без этого поля получатель был бы лишен возможности
давать подтверждения - у него нет маркера.
Token ring и
FDDI
Технология
Fiber Distributed Data Interface (FDDI) - первая технология локальных сетей, которая
использовала в качестве среды передачи данных оптоволоконный кабель.
FDDI по
существу представляет собой быстродействующий вариант Token Ring на
волоконной оптике. В отличае от Token
Ring FDDI реализуется без традиционных
концентраторов-“хабов”.
Еще одним отличием FDDI от Token Ring является возможность передавать данные одновременно, т.е. в сетях FDDI может
одновременно циркулировать несколько кадров.
По своей топологии FDDI состоит
из двух логических колец с циркуляцией маркеров по ним в противоположных
направлениях. Кольца образуют основной и резервный пути передачи данных между
узлами сети. Использование двух колец - это основной способ повышения отказоустойчивости
в сети FDDI, и узлы, которые хотят им воспользоваться, должны быть подключены к
обоим кольцам. В нормальном режиме работы сети данные проходят через все узлы и
все участки кабеля первичного (Primary) кольца, поэтому этот режим назван режимом
Thru - "сквозным" или "транзитным". Вторичное кольцо
(Secondary) в этом режиме не используется. В случае какого-либо вида отказа,
когда часть первичного кольца не может передавать данные (например, обрыв
кабеля или отказ узла), первичное кольцо объединяется со вторичным
), образуя вновь единое кольцо. Этот режим работы сети
называется Wrap, то есть "свертывание" или "сворачивание"
колец. Операция свертывания производится силами концентраторов и/или сетевых
адаптеров FDDI. Для упрощения этой процедуры данные по первичному кольцу всегда
передаются против часовой стрелки, а по вторичному - по часовой. Поэтому при
образовании общего кольца из двух колец передатчики станций по-прежнему
остаются подключенными к приемникам соседних станций, что позволяет правильно
передавать и принимать информацию соседними станциями.
В FDDI
достигается битовая скорость 100 Мб/с
Процедура инициализации FDDI несколько
отличается от инициализации Token
Ring:
Для
выполнения процедуры инициализации каждая станция сети должна знать о своих
требованиях к максимальному времени оборота токена по кольцу. Эти требования
содержатся в параметре, называемом "требуемое время оборота токена" -
TTRT (Target Token Rotation Time).
Параметр
TTRT отражает степень потребности станции в пропускной способности кольца - чем
меньше время TTRT, тем чаще станция желает получать токен для передачи своих
кадров. Процедура инициализации позволяет станциям узнать о требованиях ко
времени оборота токена других станций и выбрать минимальное время в качестве
общего параметра T_Opr, на основании которого в дальнейшем будет распределяться
пропускная способность кольца. Параметр TTRT должен находиться в пределах от 4
мс до 165 мс и может изменяться администратором сети.
Для
проведения процедуры инициализации станции обмениваются служебными кадрами
МАС-уровня - кадрами Claim. Эти кадры имеют в поле управления значение 1L00
0011, поле адреса назначения содержит адрес источника (DA = SA), а в поле
информации содержится 4-х байтовое значение запрашиваемого времени оборота
токена T_Req.
Если
какая-либо станция решает начать процесс инициализации кольца по своей
инициативе, то она формирует кадр Claim Token со своим значением требуемого
времени оборота токена TTRT, то есть присваивает полю T_Req свое значение TTRT.
Захвата токена для отправки кадра Claim не требуется. Любая другая станция,
получив кадр Claim Token, начинает выполнять процесс Claim Token. При этом
станции устанавливают признак нахождения кольца в работоспособном состоянии
Ring_Operational в состояние False, что означает отмену нормальных операций по
передаче токена и кадров данных. В этом состоянии станции обмениваются только
служебными кадрами Claim.
Для
выполнения процедуры инициализации каждая станция поддерживает таймер текущего
времени оборота токена TRT (Token Rotation Timer), который используется также и
в дальнейшем при работе кольца в нормальном режиме. Для упрощения изложения
будем считать, что этот таймер, как и другие таймеры станции, инициализируется
нулевым значением и затем наращивает свое значение до определенной величины,
называемой порогом истечения таймера. (В реальном кольце FDDI все таймеры
работают в двоичном дополнительном коде).
Таймер
TRT запускается каждой станцией при обнаружении момента начала процедуры Claim
Token. В качестве предельного значения таймера выбирается максимально
допустимое время оборота токена, то есть 165 мс. Истечение таймера TRT до
завершения процедуры означает ее неудачное окончание - кольцо не удалось
инициализировать. В случае неудачи процесса Claim Token запускается процессы
Beacon и Trace, с помощью которых станции кольца пытаются выявить некорректно
работающую часть кольца и отключить ее от сети.
Во
время выполнения процесса Claim Token каждая станция сначала может отправить по
кольцу кадр Claim со значением T_Req, равным значению ее параметра TTRT. При
этом она устанавливает значение T_Opr, равное значению TTRT. Рассмотрим пример
инициализируемого кольца, приведенный на рисунке 9.
В некоторый момент времени все станции передали по кольцу
свои предложения о значении максимального времени оборота токена: 72 мс, 37 мс,
51 мс и 65 мс. Станция, приняв кадр Claim от предыдущей станции, обязана
сравнить значение T_Req, указанное в кадре со значением TTRT своего
предложения.
Если другая станция просит установить время оборота
токена меньше, чем данная (то есть T_Req < TTRT), то данная станция
перестает генерировать собственные кадры Claim и начинает повторять чужие кадры
Claim, так как видит, что в кольце есть более требовательные станции. Одновременно
станция фиксирует в своей переменной T_Opr минимальное значение T_Req, которое
ей встретилось в чужих кадрах Claim. Если же пришедший кадр имеет значение
T_Req больше, чем собственное значение TTRT, то он удаляется из кольца.
Станция, являющаяся источником кадра для сети,
ответственна за то, чтобы удалить кадр из сети, после того, как он, совершив
полный оборот, вновь дойдет до нее.
Начальные
версии различных составляющих частей стандарта FDDI были разработаны комитетом
Х3Т9.5 в 1986 - 1988 годах, и тогда же появилось первое оборудование - сетевые
адаптеры, концентраторы, мосты и маршрутизаторы, поддерживающие этот стандарт.
В
настоящее время большинство сетевых технологий поддерживают оптоволоконные
кабели в качестве одного из вариантов физического уровня, но FDDI остается
наиболее отработанной высокоскоростной технологией, стандарты на которую прошли
проверку временем и устоялись, так что оборудование различных производителей
показывает хорошую степень совместимости.
Блок-схемы
Token Ring
(Логическое кольцо)
FDDI
Заключение
Сети с кольцевой топологией известны давно и используются
широко. Среди их многочисленных достоинств есть одно особо важное - это не
среда с множественным доступом, а последовательность соединений точка-точка,
образующих кольцо. Соединения точка-точка хорошо изучены, могут работать на
разных физических средах: витая пара, коаксиал или оптоволокно. Способ передачи
в основно цифровой, в то время как у 802.3 есть значительная аналоговый
компонент.