# 2020-05-20 峰哥

Galachip_WiFi开发入门学习总结_2020.05.09_V1.3.0.docx

## 文档

Galachip_WiFi开发入门学习总结_2020.05.09_V1.3.0.docx

## 认证

连接三步骤:扫描、认证、关联

上述认证有两种:Open SystemShared 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,这样下次同样的数据帧过来直接走硬件加速。

hook