Инициализация кольца

Процедура инициализации кольца, известная под названием Claim Token (это название в свободном переводе можно может интерпретироваться как "соревнование претендентов на генерацию токена"), выполняется для того, чтобы все станции кольца убедились в его потенциальной работоспособности, а также пришли к соглашению о значении параметра T_Opr - максимально допустимому времени оборота токена по кольцу, на основании которого все станции вычисляют время удержания токена THT.
Процедура Claim Token выполняется в нескольких ситуациях:

  • При включении новой станции в кольцо и при выходе станции из кольца.
  • При обнаружении какой-либо станцией факта утери токена. Токен считается утерянным, если станция не наблюдает его в течение двух периодов времени максимального оборота токена T_Opr.
  • При обнаружении длительного отсутствия активности в кольце, когда станция в течение определенного времени не наблюдает проходящих через нее кадров данных.
  • По команде от блока управления станцией SMT.

Для выполнения процедуры инициализации каждая станция сети должна знать о своих требованиях к максимальному времени оборота токена по кольцу. Эти требования содержатся в параметре, называемом "требуемое время оборота токена" - 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. Рассмотрим пример инициализируемого кольца, приведенный на рисунке 2.24.

Процесс инициализации кольца
Рис. 2.24. Процесс инициализации кольца

В некоторый момент времени все станции передали по кольцу свои предложения о значении максимального времени оборота токена: 72 мс, 37 мс, 51 мс и 65 мс. Станция, приняв кадр Claim от предыдущей станции, обязана сравнить значение T_Req, указанное в кадре со значением TTRT своего предложения. Если другая станция просит установить время оборота токена меньше, чем данная (то есть T_Req < TTRT), то данная станция перестает генерировать собственные кадры Claim и начинает повторять чужие кадры Claim, так как видит, что в кольце есть более требовательные станции. Одновременно станция фиксирует в своей переменной T_Opr минимальное значение T_Req, которое ей встретилось в чужих кадрах Claim. Если же пришедший кадр имеет значение T_Req больше, чем собственное значение TTRT, то он удаляется из кольца.

Процесс Claim завершается для станции в том случае, если она получает кадр Claim со своим адресом назначения. Это означает, что данная станция является победителем состязательного процесса и ее значение TTRT оказалось минимальным. В рассматриваемом примере это станция B со значением TTRT, равным 37 мс. Другие станции кольца не смогут получить свой кадр Claim, так как он не сможет пройти через станцию B. При равных значениях параметра TTRT преимущество отдается станции с большим значением МАС-адреса.
После того, как станция обнаруживает, что она оказалась победителем процесса Claim Token, она должна сформировать токен и отправить его по кольцу. Первый оборот токена - служебный, так как за время этого оборота станции кольца узнают, что процесс Claim Token успешно завершился. При этом они устанавливают признак Ring_Operational в состояние True, означающее начало нормальной работы кольца. При следующем проходе токена его можно будет использовать для захвата и передачи кадров данных.
Если же у какой-либо станции во время выполнения процедур инициализации таймер TRT истек, а токен так и не появился на входе станции, то станция начинает процесс Beacon.
После нормального завершения процесса инициализации у всех станций кольца устанавливается одинаковое значение переменной T_Opr.