Приоритетный доступ к кольцу, Кадр маркера, данных, управляющий кадр MAC-уровня в Token Ring.


 

  Каждый кадр данных или маркер имеет приоритет, устанавливаемый битами приоритета (значение от 0 до 7, причем 7 - наивысший приоритет). Станция может воспользоваться маркером, если только у нее есть кадры для передачи с приоритетом равным или большим, чем приоритет маркера. Сетевой адаптер станции с кадрами, у которых приоритет ниже, чем приоритет маркера, не может захватить маркер, но может поместить наибольший приоритет своих ожидающих передачи кадров в резервные биты маркера, но только в том случае, если записанный в резервных битах приоритет ниже его собственного. В результате в резервных битах приоритета устанавливается наивысший приоритет станции, которая пытается получить доступ к кольцу, но не может этого сделать из-за высокого приоритета маркера.

Станция, сумевшая захватить маркер, передает свои кадры с приоритетом маркера, а затем передает маркер следующему соседу. При этом она переписывает значение резервного приоритета в поле приоритета маркера, а резервный приоритет обнуляется. Поэтому при следующем проходе маркера по кольцу его захватит станция, имеющая наивысший приоритет.

При инициализации кольца основной и резервный приоритет маркера устанавливаются в 0.

Хотя механизм приоритетов в технологии Token Ring имеется, но он начинает работать только в том случае, когда приложение или прикладной протокол решают его использовать. Иначе все станции будут иметь равные права доступа к кольцу, что в основном и происходит на практике, так как большая часть приложений этим механизмом не пользуется. Это связано с тем, что приоритеты кадров поддерживаются не во всех технологиях, например в сетях Ethernet они отсутствуют, поэтому приложение будет вести себя по-разному, в зависимости от технологии нижнего уровня, что нежелательно. В современных сетях приоритетность обработки кадров обычно обеспечивается коммутаторами или маршрутизаторами, которые поддерживают их независимо от используемых протоколов канального уровня.

Маркер

Кадр маркера состоит из трех полей, каждое длиной в один байт.

  • Поле начального ограничителя появляется в начале маркера, а также в начале любого кадра, проходящего по сети. Поле состоит из уникальной серии электрических импульсов, которые отличаются от тех импульсов, которыми кодируются единицы и нули в байтах данных. Поэтому начальный ограничитель нельзя спутать ни с какой битовой последовательностью.
  • Поле контроля доступа. Разделяется на четыре элемента данных: 
    PPP T M RRR, где PPP - биты приоритета, T - бит маркера, M - бит монитора, RRR - резервные биты. 

    Бит маркера имеет значение 0 для маркера и 1 для кадра.

    Бит монитора устанавливается в 1 активным монитором и в 0 любой другой станцией, передающей маркер или кадр. Если активный монитор видит маркер или кадр, содержащий бит монитора в 1, то активный монитор знает, что этот кадр или маркер уже однажды обошел кольцо и не был обработан станциями. Если это кадр, то он удаляется из кольца. Если это маркер, то активный монитор переписывает приоритет из резервных битов полученного маркера в поле приоритета. Поэтому при следующем проходе маркера по кольцу его захватит станция, имеющая наивысший приоритет.

  • Поле конечного ограничителя - последнее поле маркера. Так же, как и поле начального ограничителя, это поле содержит уникальную серию электрических импульсов, которые нельзя спутать с данными. Кроме отметки конца маркера это поле также содержит два подполя: бит промежуточного кадра и бит ошибки. Эти поля относятся больше к кадру данных, который мы и рассмотрим.

 Кадр данных

Кадр данных состоит из нескольких групп полей:

  • последовательность начала кадра;
  • адрес получателя;
  • адрес отправителя;
  • данные;
  • последовательность контроля кадра;
  • последовательность конца кадра.

Кадр данных может переносить данные либо для управления кольцом (данные MAC-уровня), либо пользовательские данные (LLC-уровня). Стандарт Token Ring определяет 6 типов управляющих кадров MAC-уровня. Поле "последовательность начала кадра" определяет тип кадра (MAC или LLC) и, если он определен как MAC, то поле также указывает, какой из шести типов кадров представлен данным кадром.

Назначение этих шести типов кадров следующее.

  • Чтобы удостовериться, что ее адрес уникальный, станция посылает кадр "Тест дублирования адреса", когда впервые присоединяется к кольцу.
  • Чтобы сообщить другим станциям, что он еще жив, активный монитор запускает кадр "Активный монитор существует" так часто, как только может.
  • Кадр "Существует резервный монитор" отправляется любой станцией, не являющейся активным монитором.
  • Резервный монитор отправляет "Маркеры заявки", когда подозревает, что активный монитор отказал. Резервные мониторы затем договариваются между собой, какой из них станет новым активным монитором.
  • Станция отправляет кадр "Сигнал" в случае возникновения серьезных сетевых проблем, таких как оборванный кабель, или при обнаружении станции, передающей кадры без ожидания маркера. Определяя, какая станция отправляет кадр сигнала, диагностирующая программа может локализовать проблему.
  • Кадр "Очистка" отправляется после того, как произошла инициализация кольца, и новый активный монитор заявляет о себе.

Каждый кадр (MAC или LLC) начинается с "последовательности начала кадра", которая содержит три поля:

  • Начальный ограничитель, такой же, как и для маркера;
  • Управление доступом, также совпадает для кадров и для маркеров;
  • Контроль кадра - это однобайтовое поле, содержащее два подполя - тип кадра и идентификатор управления MAC: 2 бита типа кадра имеют значения 00 для кадров MAC и 01 для кадров LLC. Биты идентификатора управления MAC определяют тип кадра управления кольцом из приведенного выше списка 6-ти управляющих кадров MAC.

Адрес получателя (либо 2, либо 6 байтов). Первый бит определяет групповой или индивидуальный адрес как для 2-х байтовых, так и для 6-ти байтовых адресов. Второй бит в 6-ти байтовых адресах говорит, назначен адрес локально или глобально.

Адрес отправителя имеет тот же размер и формат, что и адрес получателя.

Поле данных кадра может содержать данные одного из описанных управляющих кадров MAC или запись пользовательских данных, предназначенных для (или получаемых от) протокола более высокого уровня, такого как IPX или NetBIOS. Это поле не имеет определенной максимальной длины, хотя существуют практические ограничения на его размер, основанные на временных требованиях к тому, как долго некоторая станция может управлять кольцом.

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

Последовательность конца кадра состоит из двух полей: конечный ограничитель и статус кадра.

Конечный ограничитель в кадре данных имеет дополнительное значение по сравнению с маркером. Кроме уникальной последовательности электрических импульсов он содержит два однобитовых поля: бит промежуточного кадра и бит обнаружения ошибки. Бит промежуточного кадра устанавливается в 1, если этот кадр является частью многокадровой передачи, или в 0 для последнего или единственного кадра. Бит обнаружения ошибки первоначально установлен в 0; каждая станция, через которую передается кадр, проверяет его на ошибки (по коду CRC) и устанавливает бит обнаружения ошибки в 1, если она выявлена. Очередная станция, которая видит уже установленный бит обнаружения ошибки, должна просто передать кадр. Исходная станция заметит, что возникла ошибка, и повторит передачу кадра.

Статус кадра имеет длину 1 байт и содержит 4 резервных бита и два подполя: бит распознавания адреса и бит копирования кадра. Так как это поле не сопровождается вычисляемой суммой CRC, то используемые биты дублируются в байте. Когда кадр создается, передающая станция устанавливает бит распознавания адреса в 0; получающая станция устанавливает бит в 1, чтобы сообщить, что она опознала адрес получателя. Бит копирования кадра также вначале установлен в 0, но устанавливается в 1 получающей станцией (станцией назначения), когда она копирует содержимое кадра в собственную память (другими словами, когда она реально получает данные). Данные копируются (и бит устанавливается), если только кадр получен без ошибок. Если кадр возвращается с обоими установленными битами, исходная станция знает, что произошло успешное получение. Если бит распознавания адреса не установлен во время получения кадра, это означает, что станция назначения больше не присутствует в сети (возможно, вследствие неполадок). Возможна другая ситуация, когда адрес получателя опознается, но бит копирования кадра не установлен. Это говорит исходной станции, что кадр был искажен во время передачи (бит обнаружения ошибки в конечном ограничителе также будет установлен). Если оба бита опознавания адреса и копирования кадра установлены, и бит обнаружения ошибки также установлен, то исходная станция знает, что ошибка случилась после того, как этот кадр был корректно получен.

Прерывающая последовательность

Состоит из двух байтов, содержащих начальный ограничитель и конечный ограничитель. Прерывающая последовательность может появиться в любом месте потока битов и сигнализирует о том, что текущая передача кадра или маркера отменяется.