В этом примере показано, как моделировать планирование качества обслуживания (QoS) в сети 802.11a/n/ac/ax с использованием Toolbox™ SimEvents ®, Stateflow ® и WLAN. Используя QoS, уровень MAC определяет приоритеты данных приложения и выделяет больше ресурсов высокоприоритетному трафику по сравнению с низкоприоритетным трафиком. Уровень MAC, используемый в этом примере, реализует алгоритм расширенного доступа к распределенному каналу (EDCA) для получения доступа к каналу для передачи. В этом примере моделируется сеть 802.11 с пятью узлами, которые могут быть одновременно сконфигурированы с четырьмя типами трафика приложений, а именно: Best-effort, Background, Video и Voice. Тип и приоритет трафика приложения определяются категорией доступа (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 с низким приоритетом рассматривается как отказ передачи и вызывает процедуру повторной передачи.
Этот пример отличается от примера измерения MAC 802.11 и пропускной способности приложений как нескольких приложений на уровне приложений для генерации трафика различных типов.
Конфигурация модели
Можно настроить размер пакета приложения, выполнив следующие действия:
Открытая модель WLANMACQosSchedulingModel.slx
Чтобы войти в подсистему узла, щелкните стрелку вниз в левом нижнем углу узла.
Чтобы открыть параметры маски приложения, дважды щелкните по Best Effort Application
Чтобы включить приложение, установите App State в «Он»
Конфигурирование значений Packet Size, Packet Interval, Destination Name и Access category
Используйте шаги 3, 4 и 5 для настройки других приложений

Дополнительные параметры конфигурации см. в документе Измерение MAC 802.11 и пропускной способности приложений. Чтобы добавить дополнительные узлы в сеть, скопируйте и вставьте любой существующий узел в сеть.
В этом примере генерируются аналогичные результаты, полученные при измерении MAC 802.11 и пропускной способности приложений. Эти результаты включают в себя:
Визуализация во время выполнения, показывающая время, затраченное на соперничество в канале, передачу и прием для каждого узла. На этом графике показаны переходы состояния MAC относительно времени моделирования.

Во время моделирования необязательный график визуализации во время выполнения отображает количество кадров, поставленных в очереди передачи MAC для выбранного узла. Состояние во время выполнения буферов передачи уровня MAC можно наблюдать с помощью кнопки «Observe MAC queue lengts» в приведенной выше визуализации.

Гистограмма, показывающая метрики для каждого узла, такие как количество переданных, принятых и отброшенных пакетов на уровнях PHY и MAC. На этом графике показана статистика сети в конце моделирования.

Файл MAT «statistics.mat» хранит подробную статистику для каждого уровня и узла в сети. Так как этот пример имеет несколько приложений, уровень MAC передает пакеты данных от различных AC. Вы можете наблюдать количество передач от каждого AC в 'MACAC0DataTx', 'MACAC1DataTx', 'MACAC2DataTx' и колонках 'MACAC3DataTx' 'statisticsTable', сохраненного в 'statistics.mat'. В данном моделировании количество передач на AC прямо пропорционально приоритету AC.
В дополнение к приведенным выше результатам, в этом примере показаны задержки MAC всех ACs для выбранного узла на графике, а также создается MAT-файл macLatingLog.mat. Этот файл содержит информацию о каждом кадре MAC, например:
Метка времени входа: время, в которое пакет приложения поступает на уровень MAC
Идентификатор узла: идентификатор узла передатчика
AC: категория доступа пакета
Clear timestamp: время, в которое пакет очищается от MAC. Пакет очищается от MAC после успешного приема подтверждения или после завершения максимального количества попыток повторной передачи.
Эта информация используется для вычисления задержек MAC на пакет. В данном случае задержка MAC является временной задержкой между пакетом, поступающим в MAC с прикладного уровня и очищаемым от MAC. Пакет очищается от MAC в следующих сценариях:
Успешная передача: Получатель посылает подтверждение отправителю после получения пакета, предназначенного для него. Если подтверждение получено отправителем, оно рассматривается как успешная передача.
Если подтверждение не получено отправителем, он повторно передает пакет до тех пор, пока не будет достигнут предел повторной передачи. Если подтверждение не принято даже после завершения максимального количества повторных передач, пакет отбрасывается на уровне MAC.

Голосовой трафик имеет наивысший приоритет и, следовательно, имеет наименьшую задержку. В то время как наименьший приоритет фонового трафика приводит к наибольшей задержке.
Опции конфигурации:
В этой модели можно настроить параметры конкуренции MAC для каждого AC. Параметры конкуренции для каждого AC хранятся в «macConfigation.mat» как структура, содержащая три поля, а именно aifsn, cwMin и cwMax. Путем изменения этих параметров конкуренции можно изменить приоритет AC (Best-effort/Background/Video/Voice). Для этого можно включить несколько приложений в узле и изменить параметры конкуренции трафика. Чтобы изменить параметры конкуренции, используйте следующий код:
% 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 с абстракцией на физическом уровне.
Чтобы смоделировать многоузловую сеть с использованием распределенной координационной функции (DCF) MAC и 802.11a PHY, см. пример моделирования сети Multi-Node 802.11a с PHY и MAC.
В этом примере можно настроить и смоделировать планирование трафика QoS MAC в сети 802.11 с использованием модели Simulink для анализа задержек MAC в каждом AC. В этой модели параметры конкуренции MAC для каждого AC могут быть сконфигурированы для изменения приоритета трафика приложения на уровне MAC. В этом примере делается вывод о том, что речевой трафик, имеющий наивысший приоритет, имеет наименьшую задержку. В то время как фоновый трафик, имеющий наименьший приоритет, приводит к наибольшей задержке.
Вспомогательные функции и объекты, используемые в этом примере:
edCaFrameFormats.m: Создание перечисления для форматов кадров PHY.
edCaNityInfo.m: Возврат MAC-адреса узла.
edCaPlotQueeyLengths.m: Печать длин очереди MAC в моделировании.
edCaPlotStats.m: Печать переходов MAC-состояний относительно времени моделирования.
edcaStats.m: Создание перечисления для статистики моделирования.
edSunStats.m: Обновление статистики моделирования.
edCaLogLatencies.m: Регистрирует заданную информацию обо всех кадрах, которыми обмениваются в сети.
edCaPlotLatencies.m: График задержек кадров MAC во всех категориях доступа.
helperAggregateMPDUs.m: Aggregate MPDU для формирования A-MPDU.
helperSubframeBoundaries.m: Возврат границ подкадра A-MPDU.
phyRx.m: Моделирование операций PHY, связанных с приемом пакетов.
phyTx.m: Моделирование операций PHY, связанных с передачей пакетов.
edCaApplyFading.m: Применить эффект релеевского замирания к форме сигнала.
HeSIGBUserStartDecode.m: Декодирование пользовательского поля HE-SIG-B.
heCPECorrection.m: Оценка и исправление общей фазовой ошибки.
HeSIGBommonStartDecode.m: Декодирование общего поля HE-SIG-B.
heSIGBMergeSubchannels.m: Слейте подканалы HE-SIG-B на 20 МГц.
addMUPadding.m: Добавление или удаление разницы заполнения между HE-SU и HE-MU PSDU.
macQueureManagement.m: Создание объекта управления очередью MAC WLAN.
roundRobinScheduler.m: Создание объекта планировщика циклических операций.
calculateSubframesCount.m: Вычисление количества подкадров, необходимых для формирования MU-PSDU.
interpretVHTSIGABitFailCheck.m: Интерпретирует биты в поле VHT-SIG-A
rateAdaptationARF.m: Создайте объект алгоритма авто отступления уровня (ARF).
rateAdaptationMinstrelNonHT.m: Создайте объект алгоритма менестреля.
IEEE Std 802.11™. «Спецификации управления доступом к среде беспроводной локальной сети (MAC) и физического уровня (PHY)». Стандарт IEEE для информационных технологий - Телекоммуникации и обмен информацией между системами - Локальные и городские сети - Особые требования; Комитет по стандартам LAN/MAN Компьютерного общества IEEE