【WIFI-6】wifi6的一些理解

最近入职新公司,被分配了wifi6特性验证和测试的任务,所以整篇文章记录下自己的一些理解(基础原理部分不做介绍了)

参考资料

  1. 徐方鑫的802.11ax解析专栏
  2. 802.11ax协议原本 Chapter 26 HE MAC specification
  3. 华为wifi6白皮书
  4. wifi professional网站blog
  5. CWNA教材

没有精力去上传这些资料或者贴链接,读者有意可以私信找我

OFDMA

wifi6新增四种PPDU format,HE SU、HE ER SU、HE MU、HE TB

在OFDMA中,物理层头部中的HE-SIG-B字段会携带每个用户的RU位置信息

因为AP会同时往多个用户发送数据,所以AP需要携带用户的ID信息,以及承载某个用户数据的RU的位置信息

这样用户才能根据用户ID信息,判断是否有自己的数据,进而根据RU位置信息,去相应的RU接受自己的数据

因此,想要抓取DL OFDMA的HE MU报文,必须要设置抓包卡的一些参数 ,即aid 和 bssid

这样,抓包卡才能认为自己是指定aid的终端,抓到对应RU的数据

使用wireshark分析HE报文,分析物理层头部更重要

HE-SIG-A和HE-SIG-B的字段体现在报文 radiotap header的HE SU information和 HE MU information里,但wireshark的展示不像协议那么标准,是放在一个个data_里

因此,一些filter可以用于快速过滤,比如 radio.he.data_x.xxx 之类的

验证OFDMA时,让AP发出DL MU OFDMA报文的一种有效方法是,多终端连接AP并观看在线视频(一定要多终端!!!)

TWT

TWT源自 802.11ah amendment,原来是为了工作在1GHz频段的传感器设计的,所以代码里有关TWT的部分能看到类似 S1G 的字样

TWT要想体现出明显优势,就要尽可能在协商时拉长终端的睡眠时间 ,但这个睡眠是某种意义上的死睡眠,终端一旦睡了,就只能等待规定的时间到来再醒来和AP交互,因此时延这块数据就不是很好看

其实也能说的通,TWT就很适合那些传感器,只需要半小时,甚至几个小时左右醒来一次上传数据,基本都是UL,没有太多DL

TWT 睡眠时间几小时意味着AP需要维护一个很大的association table

且这些设备最好使用 static IP 以避免 DHCP renewal 打断睡眠

BSS Color

理解 BSS Color 需要理解CCA门限(这块我没跟着源码一起看,也没有做实验,没有吃透)

搬出CWNA教材的讲述

CCA有两个门限,假设noise floor是-100dBm,那Signal Detect大概高出4dB,即-96dBm

而Energy Detect则又高出SD 20dB,为76dBm

可以认为SD是辨别802.11设备,ED是辨别非802.11设备

普通的CCA有这两个门限即可

在BSS Color中,为了解决OBSS带来的co-channel interference,首先按color(HE-SIG-A字段和mac帧中携带)区分inter-BSS和intra-BSS

对于 inter-BSS,可将Signal Detect适当提高,让终端 对不同染色的终端的传输信号 不那么敏感


MU-MIMO 以及一些其他的特性有做简单学习和了解,但没有实践,所以没有什么特殊的理解。

由于目前在做的chip比较看重power save,所以整理一些wifi6有关节能的设计

wifi6有关节能的设计

  1. TWT

    源码中,TWT开始后是会 clear TBTT timer,也就是不去听beacon帧的

    虽然如此,源码中依旧可见TWT启动时,设置了10s一次的send Qos null frame,不懂,这是为了保活防断?

  2. 选择性的接受数据帧

    传统的802.11中,节点需要接受所有的数据帧,检查MAC判断之后再丢包

    接收无用的数据帧也是要耗费能量的

    802.11ax中,节点可以在物理层的头部就判断HE-SIG-A的两个字段 UL/DL字段 和 BSS Color字段

  3. 发送功率限制

    trigger帧中通知不同节点,其上行传输所用的功率和MCS

    一方面是为了优化接收信号的性能,即为了执行OFDMA,需要不同节点的信号到AP处近似相等,否则远近效应

    另一方面,可以优化功耗(让部分节点不需要满功率发送)

相关推荐
我的xiaodoujiao12 小时前
API 接口自动化测试详细图文教程学习系列7--相关Python基础知识6
python·学习·测试工具·pytest
山川行12 小时前
Python快速闯关8:内置函数
java·开发语言·前端·笔记·python·学习·visual studio
charlie11451419112 小时前
嵌入式C++教程实战之Linux下的单片机编程:从零搭建 STM32 开发工具链(2) —— HAL 库获取、启动文件坑位与目录搭建
linux·开发语言·c++·stm32·单片机·学习·嵌入式
知识分享小能手12 小时前
MongoDB入门学习教程,从入门到精通,MongoDB聚合框架(7)
数据库·学习·mongodb
今儿敲了吗12 小时前
算法复盘——前缀和
笔记·学习·算法
啊我不会诶13 小时前
最小生成树
c++·笔记·学习·算法
STLearner13 小时前
AI论文速读 | 元认知监控赋能深度搜索:认知神经科学启发的分层优化框架
大数据·论文阅读·人工智能·python·深度学习·学习·机器学习
Z.风止14 小时前
Large Model-learning(1)
开发语言·笔记·git·python·学习
Be for thing14 小时前
分支管理与冲突解决
git·学习
-To be number.wan14 小时前
PyCharm接入DeepSeek全教程|3种方法+避坑指南
python·学习·pycharm