Передача маркера демонстрируется в видеоролике TokenPassing из папки Demos.
Захватив маркер для передачи данных, компьютер меняет в нем значение бита установки монитора (monitor setting bit) и отправляет пакет назад в MAU для передачи по кольцу. В этот момент компьютер переходит в режим отправки (transmit mode). Измененное значение бита установки монитора информирует другие компьютеры, что сеть используется, и они не могут захватывать маркер. Затем компьютер немедленно передает пакет данных.
MAU пересылает пакет по очереди каждому компьютеру кольца. В конце концов, пакет опять попадает в компьютер, который его сгенерировал. Одновременно с переходом компьютера в режим отправки его принимающая пара проводов переходит в режим удаления (stripping mode). Обойдя все кольцо, пакет данных возвращается в исходную точку, и компьютер, сгенерировавший пакет, должен удалить его из сети. Это необходимо, чтобы предотвратить бесконечную циркуляцию пакета по кольцу.
Этапы передачи пакета в сетиToken Ring демонстрируются в видеоролике TokenRingNetwork из папки Demos.
В исходном варианте сети Token Ring система, передавшая пакет данных, дожидалась возвращения в нее последнего бита данных и лишь, потом присваивала биту установки монитора в кадре маркера его исходное значение и передавала маркер в сеть. В большинстве современных сетей Token Ring со скоростью 16 Мбит/сек используется раннее освобождение маркера (early token release): маркер с сигналом «сеть свободна» передается сразу после пакета данных. Система, которой адресован пакет данных, может захватить маркер и начать передачу собственного кадра данных еще до того, как все данные из первого пакета вернутся в исходную систему. Таким образом, в сети могут одновременно находиться фрагменты двух кадров данных, но никогда не бывает более одного маркера «сеть свободна».
Кадр Token Ring
В отличие от Ethernet, где один формат кадра используется для всех коммуникаций, в Token Ring кадры бывают четырех видов: кадр данных (data frame), маркера (token frame), команды (command frame) и сброса (abort delimiter frame). Самый большой и сложный из них — кадр данных (рис. 3). Он похож на кадр Ethernet, в том смысле, что инкапсулирует данные, полученные из протокола сетевого уровня, между заголовком и трейлером. Кадры других видов используются исключительно для управления сетью, например, для поддержания работы кольца и передачи сообщений об ошибках.
Рис. 3. Кадр данных Token Ring
Функции полей кадра данных таковы.
• Start Delimiter (1 байт)— набор битов, указывающий принимающей системе на начало кадра.
• Access Control (1байт)— набор битов, которые можно использовать для создания в сети Token Ring системы приоритетов, оказывая некоторым системам предпочтение при доступе к кадру маркера и к сети.
• Frame Control (1 байт)— набор битов, определяющий, является кадр здесь кадром данных или кадром команды.
• Destination Address (6 байт)— шестнадцатеричный адрес сетевого адаптера в локальной сети, которому будет передан пакет.
• Source Address (6 байт)— шести адиатеричный адрес сетевого адаптера системы, сгенерировавшей пакет.
• Information (до 4500 байт) — данные протокола сетевого уровня, включая стандартный заголовок LLC, определенный в IEEE 802.2.
• Frame Check Sequence (4 байта) — контрольная сумма для содержимого пакета (не считая полей Start Delimiter, End Delimiter и Frame Status), с помощью которой принимающая система проверяет, правильно ли передан пакет.
• End Delimiter (1 байт) — набор битов, сигнализирующий об окончании кадра, в том числе бит, указывающий, ожидают ли передачи другие пакеты из той же последовательности, и бит с информацией о наличии в пакете ошибок.
• Frame Status(1 байт)— набор битов, указывающий, приняла ли целевая система кадр и скопировала ли его в свои буферы.
Кадр маркера имеет длину 3 байта (рис. 4) и содержит только поля Start Delimiter, Access Control и End Delimiter. Формат полей Start Delimiter и End Delimiter тот же, что и в кадре данных; бит маркера в поле Access Control устанавливается в 1.
Рис. 4.Кадр маркера Token Ring |
Кадр команды называется также кадром MAC, поскольку он работает на подуровне MAC в отличие от кадра данных, действующего на подуровне LLC. Формат у него в целом такой же, как и у кадра данных. Различаются лишь значение поля Frame Control и содержимое поля Information. В последнем вместо данных протокола сетевого уровня записаны 2 байта главного вектора ID (major vector ID), который идентифицирует управляющую функцию, выполняемую пакетом, и собственно управляющие данные, длина которых может меняться. Ниже перечислены основные управляющие функции и соответствующие значения главного вектора ID.
• Beacon (0010)— уведомление (beaconing). С помощью процесса уведомления системы в сети Token Ring сообщают, что не приняли данные от предыдущей системы, вероятно, из-за неполадок в сети. Уведомления облегчают поиск неисправных компьютеров.
• Claim Token (0011) — используется активным монитором для генерации кадра маркера.
• Ring Purge (0100)— используется активным монитором в случае ошибки для очистки кольца от не удаленных данных и перевода всех систем в режим повтора.
Кадр сброса содержит всего 2 байта — поля Start Delimiter и End Delimiter. Они имеют те же значения, что и в кадрах данных и команды. При возникновении проблем в сети, например, в случае неполной передачи пакета, активный монитор генерирует кадр сброса для удаления из кольца всех имеющихся в нем данных.