分享总结
# 2020-05-20 峰哥
Galachip_WiFi开发入门学习总结_2020.05.09_V1.3.0.docx
## 文档
Galachip_WiFi开发入门学习总结_2020.05.09_V1.3.0.docx
## 认证
连接三步骤:扫描、认证、关联
上述认证有两种:Open System
、Shared Key(WEP)
。那 WPA 在哪呢?WPA 并不是这三步骤里面的内容,三步骤之后紧接着的四次握手 EAPOL * 4
才是 WPA 的内容,进行 WPA 之前先使用 Open System
进行认证。
## AP 信道挑选
AP 上电后,会对自己能力范围内的信道,逐个进行监听,分析每个信道监听阶段的信号占空比(接收所有包的时间总和/监听时间)、AP 数量等因素,从而选择一个自认为比较好(占空比低、AP 数量少、干扰信号少等)的信道。
以上要求 AP 处于信道自动选择模式下,人为设定信道,AP 就不需要进行上述工作了。
## 帧分类
Ⅰ类帧:认证前
Ⅱ类帧:认证中
Ⅲ类帧:认证后
## 帧类型
数据帧:传输数据
管理帧:认证、关联(如 Beacon、 Probe、Auth、Association)
控制帧:帮助数据帧更好的传输(如 RTS、CTS)
## OFDM
一个信道 20 MHz 带宽,只传输一路信号是非常浪费的。
OFDM 将信道划分成若干正交子信道,每个子信道传输一路信号,并行传输提高效率。
划分成多个子信道固然好,但是也不能无限制的划分,要知道,根据傅里叶变换,想要传递的一个波形,是由若干频率的正弦波(谐波)组合而成的,谐波数量越多(频宽越宽),波形拟合的就越好。
所以子信道划分的个数,和波形质量,相互制约,只能找一个两者平衡点。
## Beacon
Beacon 类似的场景
DHCP Discover
ARP request
UPnP
蓝牙、ZigBee、Wi-Fi:Beacon 帧
Beacon 帧
AP 会一直向外发 Beacon,并不是我之前理解的 AP 如果隐藏了 SSID,就不向外发 Beacon 帧,AP 隐藏 SSID,Beacon 帧也是会向外发的,只是 SSID 长度为 0。
## Sequence number
Seq 相同,代表同一个帧。
AP 和 STA 都有各自独立的 Seq。并且对 AP 而言,和不同的 STA 通信,使用不同的 Seq;甚至和同一个 STA 通信,不同类型的帧也有着独立的 Seq。
## 休眠省电
AP 暂存 STA 的帧
AP 通过 Beacon 帧传递 TIM(数据待传指示信息)
STA 醒来,接收 Beacon,检查 TIM,
STA 发现 AP 有帮自己暂存帧,发送 PS-Poll 向 AP 请求暂存帧
Wi-Fi 6:TWT
## RTS、CTS
RTS 用来取得介质的控制权,CTS 作为其回应。
注意隐藏节点问题
## 主动扫描的好处
比被动接收 Beacon,能够获得更快的响应速度
## AP 包含 STA 的所有功能
## Preamble 前导码
和 MDIO 中的前导码类比理解
## 硬件处理的必要性
FCS 都是硬件自动计算得到的。
帧里面的一些位其实是由硬件帮忙处理的,如 Check Sum,这样能够减轻 CPU 负担,甚至不让硬件去做的话,CPU 会被累死,功能都不能得以实现,这也是一些硬件模块存在的意义。具有 AES 指令的 CPU 能够省下很多精力去干别的事。
# 2020-05-22 麒哥
Galachip_WiFi_datapath_analysis.docx
Galachip_WiFi_HW_ACC_design.docx
TID
QoS –> TID –> queue
分流
控制帧为什么一定要送交给 CPU 处理?
VAP
VAP ≈ Port
高优先级帧
EAPOL, DHCP, ARP, QoSNULL 等
硬件通过描述符操作内存中的buff
Node
peer node
local node
dip/sip
Destination IP address
source IP address
同步/异步
本文中同步是指 针对一个报文发送的过程的顺序执行。
异步是指针对一个报文发送的过程发生中断。
DPI
Data path interface
硬件提供给软件的接口,用于灵活设置一些数据报文的datapath. 例如某些bit 匹配目标模式,将报文送至CPU处理 或者丢弃。
广播速率很低
高优先级、控制帧
保持一个一直可用的通道,buff
Vendor
一种丢包策略
中断上半部/中断下半部
中断处理程序就是上半部分,执行速度要非常快,我们总希望中断处理函数尽可能快地返回;
如果还有工作没处理完或者比较耗时,就把它放到下半部分。下半部严格讲应该不算中断吧?至少不是硬中断。
1.如果一个任务对时间非常敏感,感觉告诉我还是将其放在中断处理程序中执行是个好的选择。 2.如果一个任务和硬件相关,还是将其放在中断处理程序中执行吧。 3.如果一个任务要保证不被其他中断(特别是相同的中断)打断,那就将其放在中断处理程序中吧。 4.其他所有任务,除非你有更好的理由,否则全部丢到下半部执行。
上半部:屏蔽中断。硬中断
下半部:非屏蔽中断。软中断
# 2020-05-26 峰哥
Ipsec
Internet Protocol Securit,网络层协议
通过对IP协议的分组进行加密和认证来保护IP协议。
增加了复杂性和处理开销。
WiFi调校
每个板子都要调校
Beacon Interval 间接影响STA功耗
因为监听间隔也变长了,休眠时间也更长了。
DTIM
AP 告诉 STA,多少 Beacon 帧后,我要发多播帧了,你要保持清醒。
Ethernet SNAP
LLC 中存在 SNAP 帧
MPDU –> SNAP ?
gcnat
WAN、LAN之间加速
其加速规则是通过软件县走一边加速方法,然后设置硬件 rule,这样下次同样的数据帧过来直接走硬件加速。