В этом примере показано, как симулировать планирование трафика качества сервиса (QoS) среднего управления доступом (MAC) в 802.11a/n/ac/ax сети с помощью SimEvents®, Stateflow® и WLAN Toolbox™. Используя QoS, слой MAC приоритизирует данные приложения и выделяет больше ресурсов высокоприоритетному трафику по сравнению с низкоприоритетным трафиком. Слой MAC, используемый в этом примере, реализует алгоритм улучшенного распределенного доступа к каналу (EDCA), чтобы получить доступ к каналу для передачи. Этот пример демонстрирует 802,11 сети с пятью узлами, которые могут быть одновременно сконфигурированы с четырьмя типами трафика приложения а именно: максимальные усилия, Фон, Видео и Речь. Тип и приоритет трафика приложения идентифицированы категорией доступа (AC) на слое MAC. Выведенные результаты показывают, что самый высокий приоритетный речевой трафик подвергается самой низкой задержке, тогда как самый низкий приоритетный фоновый трафик приводит к самой высокой задержке.
Стандарт IEEE 802.11 WLAN [1] поддерживает приложения низкого процента и предоставляет обслуживание по принципу максимальных усилий на слое MAC. Широкое использование мультимедийного контента в реальном времени наряду с развертыванием чувствительных ко времени важных приложений создало потребность оказать поддержку QoS в 802,11 сетях. Чтобы достигнуть этого, IEEE 802.11 TGe ввел QoS как часть поправок IEEE 802.11e к спецификации IEEE 802.11. Путем оказания поддержки QoS слой IEEE 802.11 MAC приоритизирует данные приложения и выделяет больше ресурсов высокоприоритетному трафику по сравнению с низкоприоритетным трафиком.
Этот пример демонстрирует сеть WLAN с пятью узлами как показано в этом рисунке. Эти узлы реализуют обнаружение несущей, к которому несколько получают доступ с предотвращением столкновения (CSMA/CA) с физическим и виртуальным обнаружением несущей с обнаружением несущей. Физическая несущая, распознающаяся, использует механизм ясной оценки канала (CCA), чтобы определить, занят ли носитель перед передачей. Принимая во внимание, что, виртуальная несущая, распознающаяся, использует квитирование RTS/CTS, чтобы предотвратить скрытую проблему узла.
Каждый узел может быть одновременно сконфигурирован с этими четырьмя типами трафика приложения:
Максимальные усилия (AC0)
Фон (AC1)
Видео (AC2)
Речь (AC3)
AC, существующий на слое MAC, идентифицирует тип и приоритет трафика приложения.
Слой MAC реализует алгоритм EDCA, чтобы получить доступ к каналу для передачи. Состязательные параметры EDCA спроектированы таким образом, что высокоприоритетный трафик получает больше возможностей передачи, чем низкоприоритетный трафик. Настройка по умолчанию присваивает приоритеты трафику приложения в этом порядке: Фон, Максимальные усилия, Видео и Речь. Однако даже после использования этих состязательных параметров, существует шанс, что больше чем один AC получает возможность передачи, одновременно приводящую к внутреннему столкновению. Если внутреннее столкновение происходит:
Высокоприоритетный AC получает возможность передачи
Низкоприоритетный AC рассматривается как отказ передачи и вызывает процедуру повторной передачи
Этот пример отличается от 802,11 MAC и примера Измерения Пропускной способности Приложения как несколько приложений на прикладном уровне, чтобы сгенерировать различные типы трафика.
Настройка модели
Можно сконфигурировать пакетный размер приложения с помощью этих шагов:
Открытая модель WLANMACQosSchedulingModel.slx
Чтобы войти в подсистему узла, нажмите на направленную вниз стрелку в левой нижней части узла
Чтобы открыть параметры маски приложения, дважды щелкают по Best Effort Application
Чтобы включить приложение, установите App State
к 'On'
Сконфигурируйте значения Packet Size
, Packet Interval
, Destination Name
и Access category
Используйте шаги 3, 4 и 5, чтобы сконфигурировать другие приложения
Для большего количества параметров конфигурации отошлите 802,11 MAC и Измерение Пропускной способности Приложения. Чтобы добавить дополнительные узлы в сети, скопируйте и вставьте любой существующий узел в сеть.
Этот пример генерирует подобные результаты, которые получены в 802,11 MAC и Измерении Пропускной способности Приложения. Эти результаты включают:
Визуализация во время выполнения, показывающая время, проведенное на конкуренции канала, передаче и приеме для каждого узла. Этот график показывает изменения состояния MAC относительно времени симуляции.
Во время симуляции дополнительный график визуализации во время выполнения отображает количество кадров, поставленное в очередь в очередях передачи MAC для выбранного узла. Можно наблюдать состояние во время выполнения буферов передачи слоя MAC с помощью кнопки 'Observe MAC queue lengths' в вышеупомянутой визуализации.
Столбчатый график, показывающий метрики для каждого узла, такие как количество переданных, полученных, и пропущенных пакетов на слоях PHY и MAC. Этот график показывает сетевую статистику в конце симуляции.
Файл MAT 'statistics.mat' хранит подробную статистику для каждого слоя и узла в сети. Поскольку этот пример имеет несколько приложений, слой MAC передает пакеты данных от различного ACS. Можно наблюдать количество передач от каждого AC в 'MACAC0DataTx', 'MACAC1DataTx', 'MACAC2DataTx' и столбцах 'MACAC3DataTx' 'statisticsTable', сохраненного в 'statistics.mat'. В данной симуляции количество передач на акр прямо пропорционально приоритету AC.
В дополнение к вышеупомянутым результатам этот пример показывает задержки MAC всего ACS для выбранного узла в графике и также создает файл MAT 'macLatenciesLog.mat'. Этот файл содержит информацию о каждой системе координат MAC, такой как:
Метка времени записи: время, в которое пакет приложения имеет, прибывает в слой MAC
NodeID : идентификатор узла передатчика
AC: Доступ к категории пакета
Очистите метку времени: Время, в которое пакет очищен от MAC. Пакет очищен от MAC после успешного приема подтверждения или после завершения максимального количества попыток повторной передачи.
Эта информация используется, чтобы вычислить задержки MAC на пакет. Здесь, задержка MAC является задержкой между пакетом, прибывающим в MAC от прикладного уровня и этим очищаемый от MAC. Пакет очищен от MAC в этих сценариях:
Успешная передача: приемник отправляет подтверждение в отправителя после получения пакета, предназначенного для него. Если подтверждение получено отправителем, это рассматривается как успешную передачу.
Пакетное отбрасывание: Если подтверждение не получено отправителем, оно ретранслирует пакет, пока предел повторной передачи не достигнут. Если подтверждение не получено даже после завершения максимального количества повторных передач, пакет отбрасывается на слое MAC.
Речевой трафик имеет самый высокий приоритет и следовательно подвергается самой низкой задержке. Принимая во внимание, что, самый низкий приоритет фонового трафика приводит к самой высокой задержке.
Параметры конфигурации:
В этой модели можно сконфигурировать параметры конкуренции MAC для каждого AC. Состязательные параметры для каждого AC хранятся в 'macConfiguration.mat' как структура, содержащая три поля а именно, aifsn, cwMin и cwMax. Можно изменить приоритет AC (Максимальные усилия/Фон/Видео/Речь) путем изменения этих состязательных параметров. Можно наблюдать это путем включения нескольких приложений в узле и изменения состязательных параметров трафика. Чтобы изменить состязательные параметры, используйте этот код:
% Change the contention parameters for Background traffic backgroundContentionParams.cwMin = 15; % CW minimum backgroundContentionParams.cwMax = 1023; % CW maximum backgroundContentionParams.aifsn = 7; % AIFSN slots % Change the contention parameters for Best-effort traffic bestEffortContentionParams.cwMin = 15; % CW minimum bestEffortContentionParams.cwMax = 1023; % CW maximum bestEffortContentionParams.aifsn = 3; % AIFSN slots % Change the contention parameters for Video traffic videoContentionParams.cwMin = 7; % CW minimum videoContentionParams.cwMax = 15; % CW maximum videoContentionParams.aifsn = 2; % AIFSN slots % Change the contention parameters for Voice traffic voiceContentionParams.cwMin = 3; % CW minimum voiceContentionParams.cwMax = 7; % CW maximum voiceContentionParams.aifsn = 2; % AIFSN slots % Save updated contention parameters to 'macConfiguration.mat' save('macConfiguration.mat', 'backgroundContentionParams', 'bestEffortContentionParams', 'videoContentionParams', 'voiceContentionParams');
Связанные примеры
Отошлите эти примеры для дальнейшего исследования:
Чтобы измерить MAC и пропускную способность Прикладного уровня в мультиузле 802.11a/n/ac/ax сеть, отошлите 802,11 MAC и пример Измерения Пропускной способности Приложения.
Чтобы смоделировать сеть IEEE 802.11ax мультиузла с абстрактным PHY, относитесь 802.11ax Симуляция Уровня системы с примером Абстракции Физического уровня.
Чтобы смоделировать сеть мультиузла, использующую MAC Распределенной функции координации (DCF) и 802.11a PHY, отошлите Мультиузел 802.11a Моделирование Сети с примером MAC и PHY.
Этот пример позволяет вам сконфигурировать и симулировать планирование трафика MAC QoS в 802,11 сетях с помощью модели Simulink для анализа задержек MAC в каждом AC. В этой модели параметры конкуренции MAC для каждого AC могут быть сконфигурированы, чтобы изменить приоритет трафика приложения на слое MAC. Этот пример приходит к заключению, что речевой трафик, который имеет самый высокий приоритет, подвергается самой низкой задержке. Принимая во внимание, что, фоновый трафик, который имеет самые низкие приоритетные результаты в самой высокой задержке.
Помощник функционирует, и объекты, используемые в этом примере:
edcaFrameFormats.m: Создайте перечисление для форматов системы координат PHY.
edcaNodeInfo.m: Возвратите Мак адрес узла.
edcaPlotQueueLengths.m: Постройте длины очереди MAC в симуляции.
edcaPlotStats.m: Постройте изменения состояния MAC относительно времен симуляции.
edcaStats.m: Создайте перечисление для статистики симуляции.
edcaUpdateStats.m: Обновите статистику симуляции.
edcaLogLatencies.m: Регистрирует данную информацию всех систем координат, которыми обмениваются в сети.
edcaPlotLatencies.m: Строит задержки системы координат MAC во всей категории доступа.
helperAggregateMPDUs.m: Совокупный MPDUs, чтобы сформировать A-MPDU.
helperSubframeBoundaries.m: Возвратите контуры подкадра A-MPDU.
phyRx.m: операции PHY Модели связаны с пакетным приемом.
phyTx.m: операции PHY Модели связаны с пакетной передачей.
edcaApplyFading.m: Примените эффект Релеевского замирания на форме волны.
heSIGBUserFieldDecode.m: Декодируйте пользовательское поле HE-SIG-B.
heCPECorrection.m: Оцените и откорректируйте общую ошибку фазы.
heSIGBCommonFieldDecode.m: Декодируйте общее поле HE-SIG-B.
heSIGBMergeSubchannels.m: Объедините подканалы HE-SIG-B на 20 МГц.
addMUPadding.m: Добавьте или удалите дополнительное различие между HE-SU и HE-MU PSDU.
macQueueManagement.m: Создайте объект управления очереди ВЛАНА МАКА.
roundRobinScheduler.m: Создайте циклический объект планировщика.
calculateSubframesCount.m: Вычислите количество подкадров, требуемых сформировать MU-PSDU.
interpretVHTSIGABitsFailCheck.m: Интерпретирует биты в поле VHT-SIG-A
rateAdaptationARF.m: Создайте объект алгоритма автоматической нейтрализации уровня (ARF).
rateAdaptationMinstrelNonHT.m: Создайте объект алгоритма менестреля.
Станд. IEEE 802.11™. "Беспроводное Среднее управление доступом (MAC) LAN и Физический уровень (PHY) Технические требования". Стандарт IEEE для Информационных технологий - Телекоммуникаций и обмена информацией между системами - Локальными сетями и городскими компьютерными сетями - Конкретные требования; Комитет по Стандартам LAN/MAN Общества эпохи компьютеризации IEEE