IEEE 802.11无线wifi帧结构
一、IEEE 802.11无线wifi帧类型
IEEE 802.11是现今无线局域网通用的标准,它是由国际电机电子工程学会(IEEE)所定义的无线网络通信的标准。802.11 无线WiFi有 数据帧,管理帧、控制帧 三种类型帧。
数据帧: 数据数据包的作用是用来携带更高层次的数据(如IP数据包,ISO7层协议)。它负责在工作站之间传输数据
管理帧: 管理数据包控制网络的管理功能,
1) 信标帧(Beacons): 在无线设备中,定时依次按指定间隔发送的有规律的无线信号(类似心跳包),主要用于定位和同步使用
2) 解除认证(Deauthentication)数据包
3) Probe(request and response)
4) Authenticate(request and response)
5) Associate(request and response)
6) Reassociate(request and response)
7) Dissassociate(notify)
管理帧负责监督,主要用来加入或退出无线网络,以及处理接入点之间连接的转移关系
控制帧: 控制数据包得名于术语"媒体接入控制(Media Access Control, MAC)",是用来控制对共享媒体(即物理媒介,如光缆)的访问。
1) 请求发送(Request To Send,RTS)数据包
2) 清除发送(Clear To Send,CTS)数据包
3) ACK确认(RTS/CTS)
4) PS-Poll: 当一部移动工作站从省电模式中苏醒,便会发送一个 PS-Poll 帧给基站,以取得任何暂存帧
控制帧通常与数据帧搭配使用,负责区域的清空、信道的取得以及载波监听的维护,并于收到数据时予以正面的应答,借此促进工作站间数据传输的可靠性
==========================================
二、IEEE 802.11无线 WiFi帧结构
1、通用结构
802.11 无线WiFi帧结构由 9 个部分组成:Frame Control,Duration ID,Address1,Address2,Address3,Seq-ctl,Address4,Frame Body,FCS。这只是一种通用的结构,并不是所有的数据都是必须的,各种帧类型个别的组成有差异。
功能简介如下:
Frame Control (帧控制):Frame Control字段位于帧的开头,用于定义帧的类型、子类型、协议版本、帧方向、以及一些控制标志。
Duration/ID (持续时间/标识符):该字段用于指定网络中其他节点的NAV (网络分配向量)计时器,用于控制介质访问。
Address1 (地址1):常表示帧的接收者 MAC 地址。在To DS 为 1 的情况下,表示目标 AP 的地址
Address2 (地址2):通常表示帧的发送者 MAC 地址。
Address3 (地址3):根据帧类型的不同,这个字段可以表示不同的地址
Sequence Control (序列控制):该字段用于帧的序列控制和片段管理
Address4 (地址4):无线分布式系统) 或中继的情况下使用。通常用于表示源或目标地址。
Frame Body (帧体):包含实际的数据负载或管理信息。根据帧的类型和子类型,该字段的内容和长度可以不同。
FCS (Frame Check Sequence,帧校验序列):用于帧的错误检测。通常是一个 32 位的 CRC 校验码,用于验证帧的完整性。
--------------------------------------------------------------
2、Frame Control(帧控制)结构
每个标志位代表的含义如下:
Protocol (协议版本) [第0-1位],指定协议的版本号。当前的 802.11 标准使用版本号 00,即 0。
Type (帧类型) [第2-3位] ,定义帧的主要类型:
00 | 管理帧 (Management Frame) |
01 | 控制帧 (Control Frame) |
10 | 数据帧 (Data Frame) |
11 | 保留 |
Subtype (子类型) [第4-7位],定义帧的子类型,不同的主类型有不同的子类型
对于管理帧的Subtype (子类型):
0000 | Association Request |
0001 | Association Response |
1000 | Beacon |
对于控制帧:
1101 | ACK |
1011 | RTS (Request to Send) |
1101 | CTS (Clear to Send) |
对于数据帧:
0000 | 数据帧 (无数据类型区分) |
1000 | QoS 数据帧 |
To DS (发送到分布式系统) [第8位],指示该帧是否发送到分布式系统 (即无线接入点AP)
取值:
0 | 帧不是发送到 DS (通常是 STA 发送给 AP 的帧) |
1 | 帧是发送到 DS (通常是 AP 发送给 STA 的帧) |
From DS (来自分布式系统) [第9位],指示该帧是否来自分布式系统。
取值:
0 | 帧不是来自 DS (通常是 AP 发送给 STA 的帧) |
1 | 帧是来自 DS (通常是 STA 发送给 AP 的帧) |
More Fragments (更多片段) [第10位],指示当前帧是否有更多的片段。如果一个数据帧被分片发送,那么除最后一个片段外,所有片段的此位都置为1。
取值:
0 | 这是最后一个片段 |
1 | 后续还有片段 |
Retry (重传) [第11位],指示当前帧是否为重传帧。如果之前发送的帧没有被正确确认,帧会被重传,此位会置为1。
取值:
0 | 首次发送 |
1 | 重传帧 |
Power Management (电源管理) [第12位],指示站点的电源管理状态。
取值:
0 | 站点处于活动模式; |
1 | 站点处于省电模式 |
More Data (更多数据) [第13位],由AP设置,用于指示站点是否有更多的数据帧等待接收。
取值:
0 | 没有更多数据 |
1 | 有更多数据 |
Protected Frame (保护帧) [第14位],指示帧的内容是否加密,使用的是 WEP、TKIP、CCMP 等加密协议。
取值:
0 | 帧未加密 |
1 | 帧已加密 |
Order (顺序) [第15位],指示该帧是否以严格顺序处理,通常用于 QoS 数据帧。
取值:
0 | 不需要严格顺序处理 |
1 | 需要严格顺序处理 |
====================================
3、Duration/ID结构
Duration/ID 字段的功能主要有以下两种主要用途:网络分配向量 (NAV)持续时间 和 AID (Association ID)
1、网络分配向量 (NAV)持续时间
NAV是一个计时器,指示设备在特定时间内不能去访问通信介质,避免通信的冲突。
当第15bit被设定为0时表示持续期,duration/ID位会用来设定NAV,数值代表目前所进行的传输预计使用介质多少微秒 (µs)。对于大多数数据帧和管理帧,Duration/ID字段表示剩余的帧传输时间。它告诉网络中的其他设备该帧将占用通信介质多长时间,从而更新它们的网络分配向量 (NAV)。
数据帧: Duration/ID 字段表示从当前帧开始,到ACK帧结束所需的时间。这包括数据帧传输时间、SIFS (短帧间隙)时间和ACK传输时间。
RTS/CTS帧 在RTS (Request to Send) 和 CTS (Clear to Send) 帧中,Duration/ID 字段表示整个传输会话的剩余时间,包括数据帧和相应的ACK帧传输。
2、 AID (Association ID)
在某些帧 (如 Power Save Poll 帧)中,Duration/ID 字段包含的是站点的 Association ID (AID)身份标识,这是一个由接入点 (AP) 分配给每个关联站点的唯一标识符。当字段被用于此目的时,字段的高两位通常设置为 11 以表示 AID,而剩余的14位表示实际的 AID 值。休眠状态醒来的工作站和必须发送一个PS-poll帧,以便从基站取得以前暂存的帧,AID值介于1-2007之间。
4. Address(n:0-4)
Address (地址域):源地址( SA )、目的地址( DA )、传输工作站地址( TA )、接收工作站地址( RA), SA 与 DA 必不可少,后两个只对跨 BSS 的通信有用,而目的地址可以为单播地址( Unicast address )、多播地址( Multicast address )、广播地址( Broadcast address );
4、Sequence Control (序列控制)
1、Sequence Control结构
2、Sequence Control 字段分两部分
Fragment Number (片段号):4位 和 Sequence Number (序列号):12位
Sequence Control占16bit位,用来重组帧片段以及丢弃重复帧。它由4个bit的fragment number(片段编码)位以及12个bit的sequence number(顺序编号)位所组成。
fragment number(片段编号)在上层封包被切割处理时使用,第一个片段的编号为0。其后每个片段依序累加1,方便帧进行重组。所有帧片段都会具有相同的顺序编号,如果是重传帧,则顺序编号不会有任何改变。片段号用于标识帧的分片部分。由于无线传输可能会受到干扰,大型帧在传输前可能会被分割成多个小片段,每个片段都有唯一的片段号
取值范围:0 到 15 (即2^4 - 1)
sequence number(顺序编号)位的作用,相当于已传帧的计数器取4096 的模(modulo)。此计数器由0 起算,MAC每处理一个上层封包就会累加1。如果发生重传,则顺序编号不变,便于进行帧处理,丢弃重复帧。将发送的帧进行编号,对重新传输的帧进行刷选,保证帧的正确性。序列号用于标识发送方发出的帧的顺序,以便接收方能够检测丢失的帧并正确重组数据。
取值范围:0 到 4095 (即2^12 - 1)
--------------------------------------------------------------
3、Fragment Number 的主要功能
片段管理: 当一个帧被分片时,片段号用于标识每个片段的顺序,以便接收端正确重组原始帧。重传管理: 在某些情况下,如果一个片段由于传输错误而丢失,只有丢失的片段需要重传,而不是整个帧。片段号帮助识别需要重传的具体片段。
--------------------------------------------------------------
4、Sequence Number 主要功能
帧顺序管理:序列号帮助接收端按正确的顺序排列接收到的帧。如果接收到的帧序列号不连续,说明有帧丢失或需要重传。
重传检测:当帧重传时,序列号保持不变,但片段号可能变化。接收方通过序列号识别重传的帧,并决定是否丢弃或处理该帧。 如果帧在传输过程中丢失或被接收端判断为错误,发送端会重传该帧。重传帧的序列号与原帧相同,但片段号可能发生变化,具体取决于传输的片段。
========================================
三、IEEE 802.11无线 WiFi管理帧结构
当帧控制字段的“帧类型”字段为“00”时,代表该帧为管理帧。不同的子类型值标示了不同的管理帧。
0000 | 关联请求 |
0001 | 关联相应 |
0010 | 重关联请求 |
0011 | 重关联相应 |
0100 | 探询请求 |
0101 | 探询相应 |
0110~0111 | 保留 |
1000 | 信标 |
1001 | 广播业务量指示消息(ATIM) |
1010 | 去关联 |
1011 | 认证 |
1100 | 解除认证 |
1101 | 功能帧 |
1110 | 无需确认的功能帧 |
1111 | 保留 |
管理帧类型有:Beacon 信标帧、Probe Request 检测请求帧、Probe Response 检测应答帧、Authentication 认证帧、De-Authentication 解除认证帧、Association Request 连接请求帧、Re-Association Request 重新连接请求、Association Response 连接应答帧。
1、Beacon帧结构
Frame Control (帧控制):协议版本00,类型字段为管理帧00,子类型字段为Beacon 1000,因此帧控制为:0000100001000000。
Duration/ID (持续时间/ID):Beacon帧一般设为 0。
Address 1 (目的地址) :通常设置为广播地址(FF:FF:FF:FF:FF)。
SA (源地址):AP的MAC地址,标识发送Beacon帧的无线接入点。
BSS ID: 网络的BSSID,通常与SA 相同。
Sequence Control: 包含序列号和片段号,用于管理帧的顺序和重组。
信标帧的帧主体包含网络的配置信息和时间同步信息。
1、信标帧关键字段
Timestamp (时间戳):用于同步客户端设备的时钟。
Beacon Interval (信标间隔):AP发送Beacon帧的时间间隔,单位为TU(Time Unit,1TU = 1024微秒)。
Capability Information (能力信息):描述AP支持的功能,如是否启用加密、是否为基础设施模式等。
SSID (服务集标识符):网络的名称,帮助客户端识别网络。
Supported Rates (支持的速率):AP支持的数据速率列表。
DS Parameter Set (DS参数集):指示使用的信道号。
Traffic Indication Map (TIM,流量指示图):用于指示AP暂存的数据包,尤其在节能模式下,告诉客户端何时需要唤醒以接收数据。
Country Information (国家信息):包括地区、信道等限制信息 (可选)。
RSN Information (RSN信息):如果网络启用了加密 (如WPA/WPA2),此字段包含安全信息。
======================================
2、Beacon帧的功能
网络发现:Beacon帧包含了无线网络的SSID (Service Set Identifier),帮助客户端设备发现和识别无线网络。
同步:Beacon帧携带时间戳,客户端设备通过接收Beacon帧可以同步其时钟与AP的时钟,这对于协调设备的定时和节能至关重要。
传递网络配置信息:Beacon帧包含网络的配置信息,如支持的速率、加密方法、信道信息等,帮助客户端设备配置和优化其连接。
信号广播:Beacon帧还帮助客户端设备确定信号强度,从而选择合适的AP进行连接。
======================================
3、Beacon帧的工作原理
定期广播: AP按照设定的 Beacon 间隔 (通常为100 TU,即102.4毫秒)定期发送Beacon帧,以宣布其存在和提供网络信息。
客户端扫描: 无线客户端设备定期扫描信道,接收不同 AP 发送的 Beacon 帧,通过这些帧中的信息来选择合适的 AP进行连接。
网络加入和管理: 客户端设备一旦选择了合适的 AP,便通过 Beacon 帧中的信息来配置连接参数,例如信道、速率、加密方法等。
节能管理: 当设备进入节能模式时,它会依赖 Beacon 帧中的 TIM 字段来判断何时需要唤醒接收数据,减少不必要的能耗。
======================================
2、Reassociation Request帧
association Request(连接要求)与Reassociation Request(重新连接要求)之间的差别在于,后者包含移动工作站目前所连接之基站的地址。
======================================
3、Association Request帧
1、帧功能
Association Response 由无线接入点(AP)在收到客户端设备(例如笔记本电脑、智能手机等)发送的Association Request帧后,作为响应发出。
这个帧的作用是通知客户端设备其关联请求是否成功,并在成功的情况下分配一个关联ID(AID),允许其加入网络。
Association Response 帧的功能:
确认关联请求:AP通过Association Response帧确认客户端设备的关联请求。
提供关联状态:该帧告知客户端设备其关联请求的结果(成功或失败),如果失败,还会提供失败的原因。
分配资源:如果关联成功,AP会为客户端设备分配一个关联ID (AID),并可能提供其他必要的网络参数。
------------------------------------------------------------------
2、Association Response 帧结构
Frame Control (帧控制)类型字段为管理帧(00)子类型字段为Association Response (0001)。
Duration/ID (持续时间/ID)指定传输此帧所需的时间,或包含关联ID。
DS(目的地址)发送关联请求的客户端设备的MAC地址(即接收地址)。
SA (源地址) AP的MAC地址,表示发送该响应帧的设备。
BSSID,基本服务集标识符,网络的BSSID,通常与Address 2相同。
Sequence Control (序列控制) 包含帧的序列号和片段号,用于管理帧的顺序和重组。
------------------------------------------------------------------
3、帧主体
Frame Body (帧主体) Association Response帧的核心部分,包含关联结果和配置参数。以下是Frame Body中的关键字:
Capability Information (能力信息) 描述AP的能力,如支持的加密方法、短前导码、QoS、功率管理等功能。这个字段的内容与 Association Request 帧中的 Capability Information 字段相似,但由AP决定。
Status Code (状态码) 指示关联请求的处理结果。常见的状态码包括:0 (成功) :关联请求成功。1-65535 (失败原因) :如资源不足、AP不支持客户端请求的功能、认证失败等。
Association ID (AID,关联ID) 如果关联成功,AP为客户端设备分配一个唯一的关联 ID (AID) 。AID是一个用于标识客户端设备的短标识符,在AP和客户端之间进行通信时很常用,尤其是在节能模式下。
Supported Rates (支持的速率)AP支持的数据传输速率列表,通常包含在响应帧中以确认客户端设备和AP之间的速率匹配。
HT Capabilities (高吞吐量能力,可选) 如果AP支持802.11n 或更高标准 (如802.11ac) ,可能会包含这个字段来描述AP的高吞吐量能力。
=====================================
4、Disassociation/Deauthentication帧
解除连接和解除认证(Disassociation与Deauthentication)。
Disassociation(解除连接)帧用来终结一段连接关系,而 Deauthentication(解除认证) 帧则用来终结一段认证关系。两者均包含一固定位,Reason Code(原因代码)
Disassociation/Deauthentication帧结构如下:
//管理帧还有Probe Request/Response帧, Probe Response(检测应答)帧, IBSS 的ATIM帧, Authentication帧等,数据帧,控制帧其余帧结构后续补充。