前言
根据上一节
已经可以抓取无线包头
本节主要详细学习包头
历时2日
1、 radiotap头
- 802.11发射和接收的事实标准
- linux在驱动和API中内建支持radiotap
- 802.11发射前,网卡驱动在802.11头前面添加radiotap头
- 网卡接收802.11时,驱动通知MAC层,此帧头包含radiotap头
- radiotap为802.11帧传递额外信息,厂家可自定义
- 不破坏原始头结构,增加传递的信息
结构
header
- reversion:8bit,值始终为0
- pad:8bit,始终是0,占位
- length:整个radiotap的长度
- present flags:32bit,指示data会出现的内容
data
- MAC timestamp:时间戳
- flags:8bit,一些标记
- data rate:速率
- channel frequency:信道频率
- channel type:信道类型以及详细信息
- SSI signal:信号强度
2、802.11MAC头部
- DU(data unit):数据单元,信息传输的最小数据集合
- 传递过程逐层封装(encapsulation)
- 一个DU对下层而言是SDU(service data unit),对上层而言是PDU(protiocol data unit)
- MSDU->完整性检查->分帧->添加起始向量->加密->添加MAC头->MPDU
- MPDU+物理头=PPDU(见下图),然后RF发射
802.11的MAC头部如图所示
(1)header
frame control(2bytes)
- protocol version:2bit,值为0,1,2,3
- type:2bit,0是管理帧,1是控制帧,2是数据帧
- subtype:子类型
- toDS:1是STATION到AP
- fromDS:与前者相反,四种组合见图
- more frag:1bit,1是有后续分段
- retry:1bit,1表示重传帧
- power management:1bit,0是活动模式,1是省电模式
- more data:1bit,当AP缓存了至少一个MSDU时,会向省电模式的STATION发生该值为1的帧
- protected frame:1bit,数据载荷为空时值为0
- order:1bit,通常为0,若为1表示数据必须按严格顺序处理
duraiton/ID(2bytes)
- control帧时,作用随type和subtype变化
- PS Poll帧(type=1,subtype=10)时,表示STATION关联AID
- 其他情况下,作为一种载波侦听机制,表示接收下一帧之前需要保持的时间间隔,用于NAV(network allocation vector)计算
MAC layer address(6bytes)
有四种
sequence control(2bytes)
- sequence number:每个帧的编号,0-4095,同一帧不同分段的该值相同
- fragment number:标识分段位置顺序的编号,0-15
(2)frame body(变长)
- 未加密:256bytes上层头+2048data
- WEP:增加8bytes
- TKIP(WPA1):增加20bytes
- CCMP(WPA2):增加16bytes
*control类型的没有这个部分
(3)FCS(4bytes)
- 发送端对header和framebody进行CRC计算,结果即为FCS
- 接收端进行相同计算,结果一致,返回ACK,否则丢弃
*wireshark抓包时已经删了FCS
3、控制帧
其type和subtype见图
(1)ACK
- 接收端正确接收数据后向发送端返回ACK
- 每个单播帧都要ACK立刻确认,组播和广播不需要
- 硬件完成,而非驱动层
结构
- type:01
- subtype:1101
- receiver address:6bytes,接收地址
- FCS:4bytes
(2)PS-poll帧
- RF系统的放大器:主要耗电组件
- 省电模式:关闭信号发射器节省电源
- AID:STATION关联到AP时,AP给的association ID
(3)RTS/CTS
- CSMA/CA的一种补充手段
- 降低冲突产生的可能性
- 正式通信前通过请求应答机制,确信通信介质的可用性
- 锁定传输介质和预约通信时间
- 只有在传输长帧时使用:阈值由驱动接口定义
- 过程:A发RTS给B,未发生冲突,B返回CTS给A,然后进行正常数据传输
4、管理帧
如图所示
(1)beacon帧
详细可参考:https://blog.csdn.net/rs_network/article/details/50676786
- AP发送的广播帧,通告无线网络的存在(BSSID、ESSID)
- 发包频率102.4ms(可变)
- 隐藏AP不发SSID广播
- 速率:802.11g
- 信道:11
结构
- IBSSI status:1是AD-HOC,0是infrastructure
- privicy:1是WEP/WPA加密
- ESSID:会展示名称和长度
(2)probe帧
- STATION扫描现有AP
(3)authentication帧
- 身份认证
- 有多个帧交换过程
结构
- algorithm:1是共享秘钥身份验证,0是开放系统身份验证
- seq:1-65535,每次验证过程该值唯一
- challenge text:只有共享秘钥才有
- status code:成功/失败
(4)association帧
- 身份验证成功后,STATION执行关联操作
5、数据帧
- null data:只包含MAC头和FCS,STATION用于声明进入省电模式
结语
本节较为详细的了解了802.11头内容
并通过抓包有些许体会
下一节学习加密算法