exponenta event banner

Планирование трафика QoS 802.11 MAC

В этом примере показано, как моделировать планирование качества обслуживания (QoS) в сети 802.11a/n/ac/ax с использованием Toolbox™ SimEvents ®, Stateflow ® и WLAN. Используя QoS, уровень MAC определяет приоритеты данных приложения и выделяет больше ресурсов высокоприоритетному трафику по сравнению с низкоприоритетным трафиком. Уровень MAC, используемый в этом примере, реализует алгоритм расширенного доступа к распределенному каналу (EDCA) для получения доступа к каналу для передачи. В этом примере моделируется сеть 802.11 с пятью узлами, которые могут быть одновременно сконфигурированы с четырьмя типами трафика приложений, а именно: Best-effort, Background, Video и Voice. Тип и приоритет трафика приложения определяются категорией доступа (AC) на уровне MAC. Полученные результаты показывают, что речевой трафик с наивысшим приоритетом имеет наименьшее время ожидания, в то время как фоновый трафик с наименьшим приоритетом приводит к наибольшему времени ожидания.

Планирование QoS в сети 802.11

Стандарт 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 определяет приоритеты данных приложения и выделяет больше ресурсов высокоприоритетному трафику по сравнению с низкоприоритетным трафиком.

Моделирование сети QoS

В этом примере моделируется сеть WLAN с пятью узлами, как показано на этом рисунке. Эти узлы реализуют множественный доступ с учетом несущей с предотвращением коллизий (CSMA/CA) с физическим восприятием несущей и виртуальным восприятием несущей. Физическое обнаружение несущей использует механизм оценки свободного канала (CCA), чтобы определить, занята ли среда перед передачей. Тогда как обнаружение виртуальной несущей использует квитирование RTS/CTS для предотвращения проблемы скрытого узла.

Каждый узел может быть одновременно сконфигурирован с этими четырьмя типами трафика приложений:

  • Наилучшие усилия (AC0)

  • Фон (AC1)

  • Видео (AC2)

  • Голос (AC3)

AC, присутствующий на уровне MAC, идентифицирует тип и приоритет трафика приложения.

Уровень MAC реализует алгоритм EDCA для доступа к каналу для передачи. Параметры конкуренции EDCA разработаны таким образом, что высокоприоритетный трафик получает больше возможностей передачи, чем низкоприоритетный трафик. Конфигурация по умолчанию назначает приоритет трафику приложения в следующем порядке: фоновый, оптимальный, видео и голос. Однако даже после использования этих параметров конкуренции существует вероятность того, что более одного переменного тока получат возможность передачи одновременно, что приведет к внутреннему столкновению. При возникновении внутреннего столкновения:

  • Высокоприоритетный AC получает возможность передачи

  • AC с низким приоритетом рассматривается как отказ передачи и вызывает процедуру повторной передачи.

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

Конфигурация модели

Можно настроить размер пакета приложения, выполнив следующие действия:

  1. Открытая модель WLANMACQosSchedulingModel.slx

  2. Чтобы войти в подсистему узла, щелкните стрелку вниз в левом нижнем углу узла.

  3. Чтобы открыть параметры маски приложения, дважды щелкните по Best Effort Application

  4. Чтобы включить приложение, установите App State в «Он»

  5. Конфигурирование значений Packet Size, Packet Interval, Destination Name и Access category

  6. Используйте шаги 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');

Связанные примеры

Для дальнейшего изучения см. следующие примеры:

В этом примере можно настроить и смоделировать планирование трафика QoS MAC в сети 802.11 с использованием модели Simulink для анализа задержек MAC в каждом AC. В этой модели параметры конкуренции MAC для каждого AC могут быть сконфигурированы для изменения приоритета трафика приложения на уровне MAC. В этом примере делается вывод о том, что речевой трафик, имеющий наивысший приоритет, имеет наименьшую задержку. В то время как фоновый трафик, имеющий наименьший приоритет, приводит к наибольшей задержке.

Приложение

Вспомогательные функции и объекты, используемые в этом примере:

  1. edCaFrameFormats.m: Создание перечисления для форматов кадров PHY.

  2. edCaNityInfo.m: Возврат MAC-адреса узла.

  3. edCaPlotQueeyLengths.m: Печать длин очереди MAC в моделировании.

  4. edCaPlotStats.m: Печать переходов MAC-состояний относительно времени моделирования.

  5. edcaStats.m: Создание перечисления для статистики моделирования.

  6. edSunStats.m: Обновление статистики моделирования.

  7. edCaLogLatencies.m: Регистрирует заданную информацию обо всех кадрах, которыми обмениваются в сети.

  8. edCaPlotLatencies.m: График задержек кадров MAC во всех категориях доступа.

  9. helperAggregateMPDUs.m: Aggregate MPDU для формирования A-MPDU.

  10. helperSubframeBoundaries.m: Возврат границ подкадра A-MPDU.

  11. phyRx.m: Моделирование операций PHY, связанных с приемом пакетов.

  12. phyTx.m: Моделирование операций PHY, связанных с передачей пакетов.

  13. edCaApplyFading.m: Применить эффект релеевского замирания к форме сигнала.

  14. HeSIGBUserStartDecode.m: Декодирование пользовательского поля HE-SIG-B.

  15. heCPECorrection.m: Оценка и исправление общей фазовой ошибки.

  16. HeSIGBommonStartDecode.m: Декодирование общего поля HE-SIG-B.

  17. heSIGBMergeSubchannels.m: Слейте подканалы HE-SIG-B на 20 МГц.

  18. addMUPadding.m: Добавление или удаление разницы заполнения между HE-SU и HE-MU PSDU.

  19. macQueureManagement.m: Создание объекта управления очередью MAC WLAN.

  20. roundRobinScheduler.m: Создание объекта планировщика циклических операций.

  21. calculateSubframesCount.m: Вычисление количества подкадров, необходимых для формирования MU-PSDU.

  22. interpretVHTSIGABitFailCheck.m: Интерпретирует биты в поле VHT-SIG-A

  23. rateAdaptationARF.m: Создайте объект алгоритма авто отступления уровня (ARF).

  24. rateAdaptationMinstrelNonHT.m: Создайте объект алгоритма менестреля.

Ссылки

  1. IEEE Std 802.11™. «Спецификации управления доступом к среде беспроводной локальной сети (MAC) и физического уровня (PHY)». Стандарт IEEE для информационных технологий - Телекоммуникации и обмен информацией между системами - Локальные и городские сети - Особые требования; Комитет по стандартам LAN/MAN Компьютерного общества IEEE