1 (1131253), страница 27
Текст из файла (страница 27)
А достигает максимума при p=1/k , А→1/е при k→∞. Вероятность, что период состязаний будет иметь j слотов, равна A(1-A)j-1. Отсюда среднее число слотов в состязаниях равно
Так как каждый слот имеет длительность 2τ, то средний интервал состязаний w равен 2τ/А. Предполагая оптимальное значение р, w
е
5.4
. Если передача кадра средней длины занимает m сек, то при условии большого числа станций, постоянно имеющих кадры для передачи, эффективность канала равна
Из этой формулы видно, что чем длиннее кабель, тем хуже эффективность, т.к. растет длительность периода состязаний. При длительности 51,2 мксек, что соответствует 2,5 км при четырех репитерах и скорости передачи 10 Мбит/сек., минимальный размер кадра - 512 бит, или 64 байта. Хотя с ростом длины кадра эффективность канала растет, время задержки кадра в системе также увеличивается.
Билет № 29.
Стандарты IEEE 802.х для локальных и муниципальных сетей: Стандарт IEEE 802.4 – шина с маркером (область применения, протокол МАС подуровня, логическая поддержка логического кольца). Стандарт IEEE 802.2: управление логическим каналом.
Стандарт 802.3 получил очень широкое распространение. Однако там, где возникала потребность в режиме реального времени, он вызывал нарекания. Во-первых, потому что с ненулевой вероятностью станция может ожидать сколь угодно долго отправки кадра. В стандарте нет понятия приоритета кадра, что очень важно для приложений реального времени.
Простейшая система с заранее известным наихудшим случаем ожидания - кольцо. Если есть n станций, соединенных в кольцо, и передача кадра занимает Т сек., то максимальное время ожидания передачи кадра будет не более nT. Специалистам по системам реального времени нравилась идея кольца, но не нравилась ее физическая реализация. Во-первых, кольцо не надежно - обрыв в одном месте разрушает всю систему. Во-вторых, оно плохо соответствовало топологии многих сборочных линий на заводах. В результате был разработан стандарт, который объединял достоинства 802.3 с гарантированным наихудшим временем передачи и приоритетностью кадров.
Этот стандарт был назван 802.4 и описывал шину с маркером. Физически шина с маркером имеет линейную или древовидную топологию. Логически станции объединены в кольцо (рисунок 4-22), где каждая станция знает своего соседа справа и слева. Когда кольцо инициализировано, станция с наибольшим номером может послать первый кадр. После этого она передает разрешение на передачу кадра своему непосредственному соседу, посылая ему специальный управляющий кадр - маркер. Передача кадра разрешена только той станции, которая владеет маркером. Так как маркер один, то всегда только одна станция может осуществлять передачу, и коллизий не возникает.
Рисунок 4-22. Маркерная шина
Важно отметить, что на порядок передач влияет только логические номера станций, а не их физическое размещение. Маркер передается только логическому соседу. Естественно, протокол должен учитывать случай, когда станция подключается к кольцу в ходе функционирования.
802.4 МАС - очень сложный протокол, который поддерживает 10 таймеров и более 24 внутренних переменных. Его описание занимает более 200 страниц.
На физическом уровне 802.4 использует коаксиальный 75-омный кабель, три разные схемы аналоговой модуляции, скорость передачи - 1,5 и 10 Мбит/сек. Он полностью несовместим с физическим уровнем 802.3.
МАС-протокол для шины с маркером.
При инициализации станции образуют кольцо в соответствии с их адресами от старших к младшим. Маркер передают от станций с большими адресами к станциям с меньшими адресами. Каждый раз, когда станция получает маркер, она может передавать кадры в течение определенного промежутка времени. После этого она должна передать маркер следующей станции. Если кадры достаточно короткие, то может быть послано несколько последовательных кадров. Если у станции нет данных для передачи, то она передает маркер дальше, немедленно по его получении.
Шина с маркером определяет четыре приоритета для кадров: 0, 2, 4 и 6. Для простоты можно представить, что станция разделена внутри на четыре подстанции, по одной на уровень приоритета. Как только кадр поступает сверху, он распределяется на одну из подстанций в соответствии с приоритетом. Таким образом, каждая подстанция имеет свою очередь кадров на передачу.
Когда маркер поступил по кабелю, он попадает на подстанцию с приоритетом 6. Если у нее есть кадр на передачу, она его передает, если нет, то маркер передается подстанции с приоритетом 4. Эта подстанция передает свои кадры в течение своего интервала времени, либо по истечении определенного временного промежутка передает маркер подстанции с приоритетом 2. Так продолжается до тех пор, пока либо подстанция с приоритетом 0 перешлет свои кадры, либо ее таймер исчерпается и она отдаст маркер следующей станции.
Из приведенной схемы ясно, что подстанция с номером 6 имеет наивысший приоритет и в любом случае ее кадрам обеспечена некая гарантированная пропускная способность. Эта подстанция и используется для передачи трафика реального времени.
На рисунке 4-23 показан формат кадра для шины с маркером. Поле Preamble предназначено для синхронизации таймера получателя. Его длина не короче одного байта. Поля Start delimiter и End delimiter предназначены для распознавания начала и конца кадра. Они имеют специальную кодировку, которая не может встретиться у пользователя. Поэтому поля длины кадра не требуется. Поле Frame control отделяет управляющие поля от полей данных. Для кадров данных здесь указывается приоритет кадра. Это поле также используется станцией-получателем для подтверждения корректного или некорректного получения кадра. Для этого отправитель устанавливает в этом поле специальный индикатор подтверждения. При наличии такой установки станция-получатель, даже не имея маркера, может послать подтверждение. Без этого поля получатель был бы лишен возможности давать подтверждения - у него было бы маркера.
Рисунок 4-23. Формат кадра для шины с маркером
В управляющих кадрах это поле используется для указания типа кадра. Среди них передача маркера, всевозможные кадры для поддержки кольца, например, включение станции в кольцо и исключение станции из кольца.
Поле адреса получателя и адреса отправителя такие же, как и в стандарте 802.3. В нем адреса могут быть 2-байтные или 6-байтные. Поле данных может иметь длину не более 8182 байта при 2-байтном адресе и 8174 - при 6-байтном адресе. Это в пять раз длиннее, чем в 802.3, т.к. в нем необходимо предотвратить захват одной станцией канала надолго. Здесь это не опасно, т.к. есть таймер, а для реального времени бывает полезно иметь длинные кадры. Контрольная сумма, как и в 802.3, используется для обнаружения ошибок.
Поддержка логического кольца.
Поддержка логического кольца в основном связана с проблемами включения и выключения станций. МАС-подуровень 802.4 детально описывает алгоритм, позволяющий сохранять известным наихудший случай при передаче маркера. Ниже мы рассмотрим кадры, которые используются в этом случае (таблица 4-24).
Таблица 4-24. Управляющие кадры шины с маркером
| Контрольное поле | Название | Значение поля |
| 00000000 | Claim_token | Запуск маркера при инициализации |
| 00000001 | Solicit_successor_1 | Разрешение присоединиться к кольцу |
| 00000010 | Solicit_successor_2 | Разрешение присоединиться к кольцу |
| 00000011 | Who_follows | Восстановление при потере маркера |
| 00000100 | Resolve_contention | Запуск разрешения коллизии |
| 00001000 | Token | Передача маркера |
| 00001100 | Set_successor | Разрешение покинуть кольцо |
Когда кольцо установлено, интерфейс каждой станции хранит адреса предшествующей и последующей станции. Периодически держатель маркера рассылает один из кадров SOLICIT_SUCCESSOR, предлагая новым станциям присоединиться к кольцу. В этом кадре указаны адрес отправителя и адрес следующей за ним станции в кольце. Станции с адресами в этом диапазоне адресов могут присоединиться к кольцу. Таким образом, сохраняется упорядоченность (по возрастанию) адресов в кольце.
Если ни одна станция не откликнулась на SOLICIT_SUCCESSOR, то станция-обладатель маркера закрывает окно ответа и продолжает функционировать, как обычно. Если есть ровно один отклик, то откликнувшаяся станция включается в кольцо и становится следующей в кольце. Если две или более станции откликнулись, то фиксируется коллизия. Станция-обладатель маркера запускает алгоритм разрешения коллизий, посылая кадр RESOLVE_CONTENTION. Этот алгоритм - модификация алгоритма обратного двоичного счетчика на два разряда.
У каждой станции в интерфейсе есть два бита, устанавливаемых случайно. Их значения 0, 1, 2 и 3. Значение этих битов определяют величину задержки при отклике станции на приглашение подключиться к кольцу. Значения этих бит переустанавливаются каждые 50 мсек.
Процедура подключения новой станции к кольцу не нарушает наихудшее гарантированное время для передачи маркера по кольцу. У каждой станции есть таймер, который сбрасывается, когда станция получает маркер. Прежде чем он будет сброшен, его значение сравнивается с некоторой величиной. Если оно больше, то процедура подключения станции к кольцу не запускается. В любом случае за один раз подключается не более одной станции. Теоретически станция может ждать подключения к кольцу сколь угодно долго, на практике, не более нескольких секунд. Однако с точки зрения приложений реального времени это одно из наиболее слабых мест 802.4.
Отключение станции от кольца очень просто. Станция Х с предшественником S и последователем Р шлет кадр SET_SUCCESSOR, который указывает Р, что отныне его предшественником является S. После этого Х прекращает передачу.
Инициализация кольца - это специальный случай подключения станции к кольцу. В начальный момент станция включается и слушает канал. Если она не обнаруживает признаков передачи, то она генерирует маркер CLAIM_TOKEN. Если конкурентов не обнаружилось, то она генерирует маркер сама и устанавливает кольцо из одной станции. Периодически она генерирует кадры SOLICIT_SUCCESSOR, приглашая другие станции включиться в кольцо. Если в начальный момент сразу две станции были включены, то запускается алгоритм обратного двоичного счетчика с двумя разрядами.
Из-за ошибок передач и сбоев оборудования могут возникать проблем с передачей маркера. Например, станция передала маркер соседней, а та неожиданно «грохнулась» - что делать? Стандарт дает прямолинейное решение - передав маркер, станция слушает. Если не последует передач кадра или маркера, то маркер посылается вторично.
Если и при повторной передаче маркера ничего не последовало, то станция посылает кадр WHO_FOLLOWS, где указан не отвечающий сосед. Увидев этот кадр, станция, для которой не отвечающая станция - предшественник, шлет кадр SET_SUCCESSOR и становится новым соседом. При этом не отвечающая станция за плохое поведение исключается из кольца.















