Исследование производительности алгоритма доступа к среде predictive p-persistent CSMA-протокола

С.А. Даденков, Е.Л. Кон

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

ИССЛЕДОВАНИЕ ПРОИЗВОДИТЕЛЬНОСТИ АЛГОРИТМА ДОСТУПА К СРЕДЕ PREDICTIVE P-PERSISTENT CSMA-ПРОТОКОЛА

Представлено подробное описание алгоритма доступа к среде передачи прогнозирующего псевдопостоянного CSMA-npo-токола. Выполнен анализ алгоритма и получены аналитические выражения для расчёта основных характеристик производительности LonWorks-cemu.

Эволюция развития сетей связи показывает, что на всём протяжении существования сетей актуальной задачей являются разработка и использование методов множественного доступа, основа которых -разделяемая среда передачи данных. Основными способами организации совместного доступа устройств к разделяемым линиям связи являются: централизованный подход на основе управляющего устройства - арбитра и децентрализованный подход. Так, на протяжении долгого времени разделяемая среда с децентрализованным подходом была основным механизмом использования каналов связи для локальных сетей на основе технологий Ethernet, ArcNet, Token Ring, FDDI [1]. Сегодня методы множественного доступа широко используются в беспроводных локальных сетях, а также промышленных fieldbus-системах. Области применения методов обусловлены следующими факторами [1]:

- простота и экономичность аппаратных решений;

- низкая и слабопредсказуемая производительность при больших нагрузках;

- плохая масштабируемость.

Очевидно, что основным фактором, ограничивающим применение методов совместного использования канала устройствами сети,

является производительность. Поэтому большое внимание инженеров и исследователей уделено разработке алгоритмов множественного доступа, обеспечивающих оптимальный уровень производительности в зависимости от загрузки сети. Одним из таких алгоритмов с децентрализованным подходом является прогнозирующий псевдопостоян-ный алгоритм множественного доступа с контролем несущей и предотвращением коллизий predictive p-persistent CSMA. Данный алгоритм нашёл применение в fieldbus-спстемах LonWorks, которые распространены и используются в области автоматизации зданий и технологических процессов промышленных предприятий. LonWorks являются системами реального времени. Поэтому актуальной задачей является исследование производительности алгоритма множественного доступа pp-CSMA.

Анализ публикаций, посвящённых данной тематике, позволил выявить ряд работ авторов Marek Miskowicz [4], Moshe Kam [5]. Указанные работы посвящены решению задачи оценки производительности сегментов Lon-сети, в основу которой положен уровень доступа к среде передачи. Это обусловлено тем, что уровень доступа определяет результирующую производительность сети в случае низких скоростей передачи и длинных пакетов, но и требует учёта в случае высоких скоростей передачи и коротких пакетов, когда производительность сети в значительной мере определяется быстродействием Neuron Chip [2, 3]. В отличие от указанных публикаций данная работа направлена на выполнение подробного анализа принципов функционирования алгоритма pp-CSMA протокола, а также на разработку аналитических выражений для оценки параметров производительности, учитывающих специфику механизма приоретизации в сети.

1. Протокол predictive p-persistent CSMA

Алгоритм управления доступом к каналу Lon-сети определён псевдопостоянным (p-persistent) CSMA-протоколом с предотвращением коллизий. Узел соперничает за совместно используемый канал согласно p-CSMA протоколу, успешно начинает передачу сообщения с вероятностью р, если канал неактивен, и задерживает передачу с вероятностью (1 -р) [3]. Оптимальность использования канала в p-CSMA сильно зависит от значения^, которое представляет уровень настойчивости протокола. В частности, большие значения^ вызывают чрезмерные коллизии в сети, в то время как маленькие значения вероятности

передачи ухудшают использование пропускной способности, приводя к неактивности канала. Таким образом, необходим компромисс между большими и маленькими значениями р, чтобы обеспечить использование пропускной способности на удовлетворительном уровне. Однако постоянный уровень настойчивости максимизирует пропускную способность только для предварительно выбранного числа узлов, конкурирующих за канал, что значительно ограничивает полезность чистого p-CSMA на практике. В случае, когда количество узлов, готовых к передаче, неизвестно или изменяется во времени, значение р не может быть установлено оптимально, и, следовательно, производительность p-CSMA может быть значительно уменьшена. Поэтому для решения задач выбора оптимального уровня настойчивости в Lon-сети используется прогнозирующий (predictive) p-CSMA-протокол с предотвращением коллизий.

Прогнозирующий p-persistent CSMA-протокол является адаптивной версией чистого p-CSMA и разработан специально для локальных операционных сетей (Lon), объединяющих интеллектуальные датчики и исполнительные механизмы [2]. Вероятность успешной передачи р становится переменной величиной и динамически корректируется согласно ожидаемой нагрузке, уменьшается в случае коллизий и увеличивается после каждой успешной передачи [3].

1.1. Алгоритм доступа к среде

Передача данных в Lon-сети выполняется пакетными циклами (packet cycle). Циклы принято разделять на свободные, когда в канале нет активности после передачи, и занятые, когда выполняется передача. Каждый занятый пакетный цикл представляет собой время передачи пакета с сообщением и время задержки, необходимое для того, чтобы узлы в сети смогли начать передачу. На рис. 1 изображен занятый пакетный цикл [3].

г

Пакет

Пакет

1ина пакета

'-Н

Рис. 1. Пакетный цикл

Алгоритм доступа к среде CSMA включает следующие этапы (см. рис. 1) [3]:

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

2. Межпакетный интервал. Узел выжидает минимальный временной межпакетный интервал pi для определения того, что канал свободен.

3. Приоритетный интервал. Узел выжидает фиксированное количество приоритетных временных (тайм) слотов I = [0..127] длительностью р2 каждый. Приоритеты в сети работают только после занятого пакетного цикла, если передаче предшествовал пустой пакетный цикл, то доступ к каналу происходит без приоритетного интервала [3].

4. Интервал избегания коллизий. Узел формирует случайную задержку Т, которая определяется случайным количеством таймслотов продолжительностью р2- Если канал после случайной задержки Т свободен, то узел начинает передачу пакета. В противном случае узел ждёт освобождение канала и снова пытается конкурировать за канал. В случае, если несколько узлов выбрали одинаковое количество временных слотов р2 и начали передачу одновременно, в сети возникает коллизия. Все пакеты, участвующие в столкновении, становятся повреждёнными.

Случайное время задержки Т определяется как псевдослучайное число состязательных слотов, взятых согласно равномерному распределению из интервала {Q..{BL-Wb^e~ 1)), где Wbass(W) - ширина основного состязательного окна, равная 16 слотам для EIA-709. BL - величина отставания канала (backlog), которая характеризует загруженность канала, изменяется от 1 до 63. Для свободного канала BL равняется единице и состязательное окно W содержит Wbase временных слотов. Когда нагрузка на канал увеличивается, количество слотов растёт, так как растёт отставание канала BL, и ширина состязательного окна может достигать максимального значения W =BL Wbase = 1008 слотов. Таким образом, уровень настойчивости р-CSMA равняется l/(Wbase'BL) и является переменным, имеет нижнюю границу вероятности успешной передачи одним узлом (1/16 = 0,0625) и верхнюю границу (1/1008 = 0,0009).

1.2. Алгоритм подсчёта отставаний (backlog) BL

Значение счётчика отставаний BL изменяется от одного пакетного цикла к другому. Изменение счётчика BL производится на величину, значение которой передаётся в закодированном 6-битном поле DeltaBL пакета и представляет собой количество сообщений (подтверждений), которые должны быть сформированы получателями и отправлены в ответ на данное сообщение. В литературе значение BL называют незавершённой работой в сети. Для одноадресных (unicast) сообщений Delta BL = 1, а для многоадресных (multicast) 1 < Delta BL < 63. Таким образом, величина счётчика отставания характеризует загруженность канала и определяет число пакетов, ожидающих соревнования во время следующего пакетного цикла [3].

Алгоритм изменения отставания канала зависит от вида службы, используемой для передачи сообщения по сети. Протокол LonTalk определяет четыре службы доставки сообщений и алгоритмы изменения отставаний [2, 3]:

- служба с подтверждением (Acknowledged). Приращение счётчика отставаний осуществляется на величину количества подтверждений, которые должны быть сформированы получателями;

- служба без подтверждения (Unacknowledged). Подразделяется на два вида - с повторениями и без повторений (repeated). Приращение счётчика отставаний производится на величину числа повторений для первичного сообщения и на нулевое значение для повторяемых сообщений в рамках одной транзакции;

- служба запрос/ответ (Message-Reminder). Приращение счётчика отставаний осуществляется на величину числа сообщений, которые ожидаются к получению.

Каждый узел в сети вычисляет отставание автономно, специальным счётчиком, реализованным в прошивке LonWorks-узла. Изменение отставания канала происходит согласно следующим принципам [3]:

• увеличение отставания BL происходит в следующих случаях:

- передача или приём пакета с ненулевым полем Delta BL (+Delta_BL);

- обнаружение коллизии (+1);

• уменьшение отставания BL происходит в следующих случаях:

- в конце каждого успешного пакетного цикла (-1);

- при успешно переданном пакете подтверждения (Delta_BL=0) (-1);

- пакетный цикл завершается бездействием канала (-1).

2. Средняя задержка доступа узла к каналу

Средняя задержка доступа узла к каналу (mean access delay) определяется как среднее время с момента, в который узел пытается начать отправку пакета, и до начала его успешной передачи [3].

Канал

свободен

Рис. 2. Время доступа узла к каналу

Задержка доступа узла к каналу /шеап состоит из следующих компонентов (рис. 2):

- задержка передачи пакетов другими узлами сети;

- задержка передачи, в случае коллизии;

- задержка нахождения пакета в очереди узла до отправки.

В работе для оценки времени доступа узлов к каналу учитываются только две первые компоненты. Согласно LonTalk/EIA-709.1 коллизия обнаруживается в конце пакетной передачи, что позволяет вычислять продолжительность пакетного цикла при неудачной передаче аналогично случаю с успешной передачей.

Передача пакетов организована в пакетных циклах продолжительностью х, которая включает:

- фиксированный межпакетный интервал pi;

- фиксированный приоритетный интервал /-рг;

- разыгрываемый случайный интервал времени W- рг;

- интервал времени передачи сообщения PktLength-рз.

2.1. Оценка средней задержки доступа

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

Ашеап =£* •

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

Время задержки узла на доступ к каналу /шеап означает задержку до начала успешной передачи и при этом не учитывает времени, требуемого на передачу пакета, после того, как узел выиграет состязание:

¿mean = Arnean “ PktLengtk  & .

где PktLength - длина пакета в битах, рз - время передачи одного бита сообщения.

Для простоты в работе предполагается, что длина пакетов (сообщение/подтверждение), передаваемых через канал, является постоянной. Это предположение верно в случае, когда поле данных в сообщении короткое по сравнению со служебной информацией протокола. Это так, когда узлы обмениваются короткими явными сообщениями или обновлением сетевых переменных [3].

Из (1) и (2) следует, что для оценки средней задержки доступа ¿mean должны быть определены число попыток до успешной передачи ^ и средняя длина пакетного цикла х.

2.2. Среднее количество попыток до успешной передачи

Рассмотрим сеть в определённый момент времени, в которой присутствует я узлов-соперников за доступ к каналу. Вычислим среднее число попыток передачи, прежде чем определенный узел выиграет соревнование за канал.

Различие между узлами сети по количеству попыток за доступ к каналу заключается в разнице вероятностей доступа, которые зависят от уровня приоритетности сообщений, передаваемых узлами. В работе сделано предположение, что все сообщения, передаваемые определённым узлом, имеют один уровень приоритета, поэтому далее в работе используется понятие «уровень приоритетности узла». Приоритетные узлы имеют меньшее число приоритетных временных слотов р2 для ожидания и поэтому характеризуются большей вероятностью выигрыша в соревновании за канал. Рассмотрим два различных сегмента сети - без приоритетов и с приоритетами. Слотовое представление конкурирующих узлов в рассматриваемых сегментах представлено на рис. 3.

В сегменте сети с приоритетами находится щ узлов каждого /-приоритета, где 1 = 0.. /тах, причём большее значение / соответствует

меньшему уровню приоритета. Значение приоритета I характеризует дополнительное фиксированное количество временных слотов, которые узел должен выжидать, прежде чем получить доступ к каналу (см. рис. 3). Общее количество узлов в сегменте сети п = ^пг,в диапазоне / = 0 .. /шах.

Система без приоритетов

Система с приоритетами 0&4

2 3 4 5 6 7 8 9 10 11 12 13 14 15 16

С 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16

с

Рис. 3. Конкурирующие узлы в системе с приоритетами и без них

Определим среднее количество попыток на доступ к каналу до успешной передачи для узлов в рассматриваемых сегментах. Сеть без приоритетов является частным случаем с / = 0 сети с приоритетами. Обозначим через х число испытаний для пакета, прежде чем будет выполнена его успешная передача. Обозначим ^иссО) вероятность того, что узел с уровнем приоритета / успешно выполняет передачу при каждом испытании. Поскольку каждый узел в сети может выиграть состязание, вероятность успешной передачи любого пакета в канале со многими п соперниками

Рейсс ~ X П1  Лисс(1) •

/=о

В сети без приоритетов все узлы характеризуются минимальным числом дополнительных слотов / = 0, и поэтому выражение (3) принимает частный вид ртсс = п-ртсс(\). Далее в работе все полученные выражения представляются в общем виде для системы с приоритетами.

Вероятность коллизии в сети вычисляется как

РоОН = 1 - Аисс •

Вероятность р\х) выигрыша соревнования узлом с приоритетом / на попытке с номером х определяется как произведение [4]:

- вероятности того, что узел с приоритетом I выигрывает соревнование за канал с определённой попытки;

- вероятности того, что до попытки с номером х узел не выигрывал.

Поэтому

Р1 (X) = (1 - р‘тсс(1))Х_1 • р‘тсс(1).

Среднее число попыток передачи узлом с /-приоритетом ^ определяется следующим выражением:

от от

% = X X • Р1

Умножая обе стороны выражения (6) на величину (1 -^иссО)), получаем

от

Разность выражений (6) и (7) позволяет записать соотношение

Правая сторона выражения (8) включает сумму бесконечного геометрического ряда, поэтому приближённо выражение может быть записано как

Среднее количество попыток до успешной передачи узлами в целом по сети может быть определено следующим образом:

Полученную формулу (10) можно использовать и для оценки среднего числа попыток до неудачной из-за коллизий передачи. Формула (10) определяет среднюю задержку доступа как среднее число пройденных испытаний, прежде чем узел выиграет соревнование за доступ к каналу в сети с п соперниками. Неизвестными величинами в выражении (10) являются вероятности выигрыша узлом с /-приоритетом соревнования за канал с одной попытки. Поэтому выполним более детальный анализ систем с приоритетами и определим выражения для определения вероятности успешной/неудачной передачи.

Расширим определение вероятности ^8цСС(1) и обозначим её через )(п) ~ вероятность, с которой узел с уровнем / приоритета

выигрывает соревнование за канал при ширине соревновательного окна, равной Ж-к, в сети с количеством узлов-соперников п.

для определения ^(х):

V = [1 + (1 - ^исс(1)) + (1 - р[исс(1))2 + ]•

В каждом пакетном цикле конкурирующие узлы выбирают случайное количество временных слотов, которое складывается из фиксированного числа приоритетных слотов [0..127] и случайного числа слотов для избегания коллизий из диапазона [0..W-к]. Узел, который выбирает меньшее количество слотов, выигрывает соревнование за канал и начинает передачу.

С учётом вышеизложенного вероятность р^1 )(и) определяется как сумма вероятностей выбора узлом каждого слота s из соревновательного окна:

W-к

Æ» -х рнаг w- си)

^=1

Вероятность выбора узлом слота с номером 5 при условии, что

W к I s / \

узел выигрывает на данном слоте соревнование за канал (п),

вычисляется как произведение:

- вероятности того, что узел победитель с приоритетом I выбирает определённый слот s из диапазона W-k;

- вероятности того, что остальные узлы с приоритетом I выбирают один из (W-k-s) более поздних слотов;

- вероятности того, что все остальные узлы с приоритетами, отличными от /, выбирают один из более поздних слотов.

Таким образом, выражение по определению вероятности можно записать как

w 1 1 1 ( ' к — s ^ ^ Ат--.:

¿й?

W • к \ W • к j

г=0&^/

В выражении (12) /- индикаторная функция вероятности выбора узлом с приоритетом / слота с номером 5:

[1,есливыполненоусловие (•),

[0,если условие(-)невыполнено.

Функция /(я > I) позволяет учитывать невозможность выбора узлом с приоритетом / слота с номером 5 < /.

Функция И в выражении (12) определяет вероятность выбора узлами с приоритетами г, отличными от приоритета I выигравшего узла, более позднего слота с номером 5:

£>(•) =

rW • к - s + гл”г

если выполнено условие (•),

W  к J

1, если условие (•) не выполнено.

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

Таким образом, определены все необходимые величины для расчёта вероятностей успешной/неудачной передачи в сети по выражениям (3-4). Выражение для определения вероятности успешной передачи принимает вид:

Рейсс (л) = X

Ж-к

п, X

5=1

/

1

W • к

П в ^ >г)

г=0&^1

С учётом представленных выше выражений формула (9) для определения среднего числа пакетных циклов до успешной передачи узлом с приоритетом / принимает вид:

Ж-к

X

^=1

1

Ж • к

W • к

2.3. Средняя длина пакетного цикла

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

Средняя длина пакетного цикла т в сети с п узлами-соперниками определяется как сумма длин успешных и неудачных пакетных циклов [4]:

* = Ло11

где т8исс (п), Тсои (и) - средние длины успешных/неудачных пакетных циклов.

Средние ДЛИНЫ пакетных ЦИКЛОВ Т8иСс (и), Хсо11 (и) могут быть определены по формулам:

^ис» = р! + Кис» -1] -р2 + PktLength Рз,

^сопС») = р1 + КопС») - !] -Рг + Р1аЬеЩ1Н Р

з >

где ^8исс (и) - среднее число слотов, при котором узел выигрывает конкуренцию и начинает передачу, ^соц (п) - среднее количество слотов, при котором происходит коллизия.

Определим среднее количество слотов в случае успешной/неудачной передачи. Отметим, что при расчётах среднего числа слотов следует учитывать также приоритетные слоты (см. рис. 3). Определим среднее количество слотов ’1 (п), выбранное выигравшим узлом с приоритетом / в успешном пакетном цикле:

№-к

^=1

В выражении (20) Д^со)'(п)- условная вероятность того, что

определённый узел с приоритетом I выигрывает состязание за канал с номером слота 5, где 5 находится в промежутке от 1 до W^k, при условии, что рассматриваемый пакетный цикл успешен:

Ж, к,/, ^ / \

<«)=лй:;

^зисс

Среднее количество слотов, выбираемых узлами сети, безотносительно к приоритету, определяется как:

^•А^тах ТТГ

4ис» =

я=1I=0

Среднее количество слотов, когда происходит конфликт,

5-1

г-к( о лХп1_1

¿со») =Х(^Г Г • ^

*=1 ^ Ш  к

С учётом формулы (4) выражение (17) принимает вид:

* = Р1 + [¿сои

С учётом полученных формул выражение для вычисления

среднего времени задержки доступа к каналу по формуле (2) прини-

мает вид:

'Г ^тах 77

^теап = X —Г---------* Р3 .

п 1=0 Реисс

3. Исходные данные для анализа производительности сети

Получено, что для оценки средней задержки доступа /шеап по формуле (25) должны быть вычислены следующие параметры:

- вероятность успешной передачи pSUcc(n), р1 succ(l) и вероятность КОЛЛИЗИЙ Рсой(п)\

- среднее количество СЛОТОВ при успешной передаче dsucc(n) И среднее ЧИСЛО СЛОТОВ, когда происходит КОЛЛИЗИЯ dcoll(ft).

Исходными данными для вычисления указанных параметров и средней задержки доступа являются:

- данные протокола:

• pi, р2, Рз - временные интервалы,

• W- ширина базового состязательного окна,

• к = BL - уровень отставания (backlog) в сети;

- данные сегмента сети:

• п,щ- количество активных узлов в сети и количество активных узлов с приоритетом /,

• /щах - максимальное количество приоритетных слотов в системе,

• PktLength - длина пакета в битах.

Все указанные исходные данные на протяжении функционирования сегмента сети носят неизменный характер, за исключением числа активных узлов, соперничающих за канал, и параметра отставания канала. Как утверждалось ранее, отставание изменяется в зависимости от загрузки сети согласно представленному алгоритму, воздействует на размер состязательного окна во время сетевой работы для достижения допустимого уровня коллизий в сети. Поэтому для произведения полного анализа производительности необходимо использовать устойчивое состояние сети со средней величиной отставания. Для нахождения устойчивого состояния системы должны использоваться аналитический и имитационные методы моделирования. Разработке и анализу таких моделей посвящены работы [4, 5].

Заключение

В статье представлено подробное описание алгоритма доступа к среде передачи pp-CSMA-протокола. Представлен подход к оценке производительности LonWorks-сети, в основе которой лежит анализ

уровня доступа к среде протокола LonTalk. Получены аналитические соотношения для оценки производительности Lon-сети, учитывающие уровни приоритетности узлов.

Библиографический список

1. Олифер В.Г., Олифер H.A. Компьютерные сети. Принципы, технологии, протоколы: учебник для вузов. - 4-е изд. - СПб.: Питер, 2010.

2. Тирш Ф. Введение в технологию LonWorks. - М.: Энергоатом-издат, 2001.

3. LonTalk protocol specification, ANSI/CEA-709.1-B. - United States: ISO/IEC JTC 1 SC 25, 2006.

4. Marek Miskowicz. Analysis of Mean Access Delay in VariableWindow CSMA // Sensors. - Krakow, Poland: MDPI, 2007.

5. Moshe Kam. Collision Resolution Simulation for Distributed Control Architectures using LonWorks // IEEE International Conference on Automation Science and Engineering. - Edmonton, Canada: IEEE, 2005.

Получено 05.09.2012