802.11WIFI协议-MAC帧类型
MAC帧分2部分:
一、MAC帧结构
二、MAC帧类型。
本文介绍二、MAC帧类型。
文章目录
- 1 MAC帧类型
- 2 数据帧
- 3 控制帧
- 3.1 RTS帧
- 3.2 CTS帧
- 3.3 ACK帧
- 4 管理帧
- 4.1 Beacon帧
- 4.2 Association Request帧
- 4.3 Reassociation Request帧
- 4.4 (Re)Association Response帧
- 4.5 Disassociation/Deauthentication帧
- 4.6 Probe Request/Response帧
- 4.7 IBSS 的ATIM帧
- 4.8 Authentication帧
``
1 MAC帧类型
IEEE 802.11标准的MAC层协议定义了多种类型的帧结构:
1、 数据帧
:用于传输用户数据。
2、 控制帧
:用于协助数据帧的传输和信道的取得以及载波监听的维护等。常见的控制帧包括RTS/CTS帧、ACK帧等。
3、 管理帧
:用于实现网络的管理和控制功能。常见的管理帧包括Beacon帧、Probe帧和Association帧等。
本节所有图示均依循IEEE 802.11的格式。位的传送顺序由左至右,最高位bit将会最后出现。
2 数据帧
1、 帧结构
数据帧
会将上层协议的数据置于帧主体加以传递,其帧结构如下图所示。
2、 帧头
数据帧帧头包括7个字段,分别是帧控制、持续时间、接收端地址1和发送端地址2、filtering地址3、顺序控制和地址4(可选)
。
数据帧没有细分类型,各字段的值:
- Frame Control (帧控制):Frame Control字段位于帧的开头,用于定义帧的协议版本0、类型10、子类型、帧方向、以及一些控制标志。
- Duration/ID (持续时间/标识符):包括数据帧传输时间、SIFS (短帧间隙)时间和ACK传输时间,该字段用于指定网络中其他节点的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校验码,用于验证帧的完整性。
3 控制帧
控制帧
主要在协助数据帧的传递。它们可用来监督无线介质的访问(但非介质本身),以及提供MAC层次的可靠性,类型为:
1、 Request to Send (RTS)
2、 Clear to Send (CTS)
3、 Acknowledgement (ACK)
控制帧均使用相同的Frame Control(帧控制)位为:0001xxxx0000000,如下图12所示:
即:
1、 协议版本位的值为0。
2、 类型识别码位为01
。
3、 次类型位有多种,包括RTS帧1011、CTS帧1100和ACK帧1101。
4、 去往DS和来自DS位为00,控制帧负责处理无线介质的访问,因此只能够由无线工作站产生。
5、 更多片段位为0,控制帧不可能被切割。
6、 重传位为0,控制帧不像管理或数据帧那样,必须在序列中等候重送。
7、 电源管理位。
8、 控制帧的更多数据位为0,More Data bit只用于管理数据帧。
9、 保护帧位为0,控制帧不会经过加密。
10、 顺序位为0,控制帧是基本帧交换程序(atomic frame exchange operation)的组成要件,因此必须依序发送。
3.1 RTS帧
1、 帧结构
RTS帧可用来取得介质的控制权,以便传输大型帧(由网卡驱动程式中的RTS threshold(门限)来定义)。
介质访问权只能保留给单点传播帧使用,而广播与组播帧只须发送便是了。
RTS帧的格式如下图所示。就和所有控制帧一样,RTS帧只包含标头。帧主体中并未包含任何数据,标头之后即为FCS。
2、帧头
RTS帧帧头包括4个字段,分别是帧控制、持续时间、接收端地址和发送端地址
,各字段的值:
-
RTS帧的帧控制位值为:0001
1011
0000000x,其中subtype(次类型)位设定为1011,代表RTS帧。 -
持续时间位为:3个SIFS + 1个CTS + 1个最后的ACK + 发送第一个帧或帧片段所需要的时间。
-
地址1位:接收端地址,接收大型帧的工作站的地址。
-
地址2位:发送端地址,RTS帧的发送端的地址。
3.2 CTS帧
1、 帧结构
CTS帧有两种目的,用于应答RTS帧和被802.11g防护机制用来避免干扰较旧的工作站。CTS帧结构如下图所示。
2、 帧头
CTS帧帧头包括3个字段,分别是帧控制、持续时间和接收端地址
,各字段的值:
-
CTS帧的帧控制位值为:0001
1100
0000000,其中次类型位被设定为1100,代表CTS帧。 -
持续时间位为:RTS中持续时间 – CTS发送时间 – 1个SIFS时间。
-
因为RTS中持续时间=3个SIFS + 1个CTS + 1个ACK + 发送第一个帧或帧片段所需要的时间,因此计算知道:
如下图中红色框所示,实际CTS中持续时间=2个SIFS + 1个ACK + 发送第一个帧或帧片段所需要的时间。
-
地址1位接收端地址为RTS帧的发送端地址,CTS帧的接收端即为之前RTS帧的发送端。
3.3 ACK帧
1、帧结构
ACK帧是MAC以及任何数据传输(包括一般传输RTS/CTS交换之前的帧、帧片段)所需要的正面应答(positive acknowledgment)。ACK帧结构如下图所示。
2、帧头
ACK帧帧头包括3个字段,分别是帧控制、持续时间和接收端地址,各字段的值:
-
ACK帧的帧控制位值为:0010
1101
0000000,其中次类型位被设定为1101,代表ACK帧。 -
持续时间位为:
依照ACK信号在整个帧交换过程中位居何处,duration的值可以有两种设定方式。
(1) 在完整的数据帧及一连串帧片段的最后一个片段中,ACK帧中的duration会被设定为0。
数据发送端会将Frame Control位中的More Fragmentsbit设定为0,表示数据传输已经结束。如果More Fragments bit为0,表示整个传输已经完成,没有必要再延长对无线信道的控制权,因此会将duration设定为0;如果More Fragments bit为1,表示尚有帧片段仍在发送中,则采用第2种设定方式。
(2) 如果不是最后一个ACK帧,ACK帧中duration位为:前一个数据帧中持续时间 – ACK发送时间 – 1个SIFS时间。
-
地址1位接收端地址为:所要应答的帧的Address 2位。
接收端地址是由所要应答的发送端帧复制而来。应答主要是针对数据帧、管理帧以及PS-Poll帧。
4 管理帧
管理帧
的主要作用是维护接入点和无线客户端之间的通信,管理帧框架拥有以下子类型:
- Authentication 认证帧
- De-Authentication 解除认证帧
- Association Request连接请求帧
- Association Response 连接应答帧
- Reassociation Request重新连接请求帧
- Reassociation Response重新连接应答帧
- Disassociation 断连帧
- Beacon 信标帧
- Probe Request 检测请求帧
- Probe Response 检测应答帧
802.11管理帧的基本结构如下图所示。所有管理帧的MAC header结构都一样,这与帧的次类型无关,主要包括帧控制、持续时间接收端地址和发送端地址、BSSID和顺序控制
。
管理帧会使用信息元素(带有数字标签的数据区块)来与其他系统交换数据。
4.1 Beacon帧
1、 Beacon帧的功能:
- 网络发现:Beacon帧包含了无线网络的SSID (Service Set Identifier),帮助客户端设备发现和识别无线网络。
- 同步:Beacon帧携带时间戳,客户端设备通过接收Beacon帧可以同步其时钟与AP的时钟,这对于协调设备的定时和节能至关重要。
- 传递网络配置信息:Beacon帧包含网络的配置信息,如支持的速率、加密方法、信道信息等,帮助客户端设备配置和优化其连接。
- 信号广播:Beacon帧还帮助客户端设备确定信号强度,从而选择合适的AP进行连接。
2、 帧结构
Beacon帧帧结构参考如下图:
3、 信标帧的帧头信息
- Frame Control (帧控制):协议版本00,类型字段为管理帧00,子类型字段为Beacon 1000,因此帧控制为:0000100001000000。
- Duration/ID (持续时间/ID):Beacon帧一般设为 0。
- Address 1 (目的地址) :通常设置为广播地址(FF:FF:FF:FF:FF)。
- Address 2 (源地址):AP的MAC地址,标识发送Beacon帧的无线接入点。
- Address 3 (BSSID): 网络的BSSID,通常与Address 2相同,除非是中继的场景。
- Sequence Control: 包含序列号和片段号,用于管理帧的顺序和重组。
4、帧主体
信标帧的帧主体包含网络的配置信息和时间同步信息,以下Frame Body中的关键字段:
- Timestamp (时间戳):用于同步客户端设备的时钟。
- Beacon Interval (信标间隔):AP发送Beacon帧的时间间隔,单位为TU(Time Unit,1TU = 1024微秒)。
- Capability Information (能力信息):描述AP支持的功能,如是否启用加密、是否为基础设施模式等。
- SSID (服务集标识符):网络的名称,帮助客户端识别网络。
4.2 Association Request帧
1、 关联请求帧的功能:
- 加入网络:客户端设备使用Association Request帧请求加入一个AP管理的无线网络。
- 传递客户端能力:帧中包含了客户端设备的能力信息,例如支持的速率、加密方法、QoS功能等。
- 获取网络资源:通过关联请求,客户端能够获取到网络分配的资源,例如IP地址、网络权限等
2、 帧结构
关联请求帧的帧结构如下图:
3、 帧头
关联请求帧的帧头信息包括:
- Frame Control (帧控制):类型字段为管理帧(00)子类型字段为Association Request (0000)。
- Duration/ID (持续时间/ID):指定传输此帧所需的时间,或包含关联ID。
- Address 1 (目的地址) 目标AP的MAC地址(即接收地址)。
- Address 2 (源地址) 发送Association Request的客户端设备的MAC地址。
- Address 3 (BSSID,基本服务集标识符) 目标网络的BSSID,通常与Address 1相同。
- Sequence Control (序列控制) :包含帧的序列号和片段号,用于管理帧的顺序和重组。
4、 帧主体
关联请求帧的帧帧主体包含客户端设备的能力和配置参数。帧主体包含以下子字段:
- Capability Information (能力信息) 描述客户端设备的能力,如是否支持加密、短前导码、QoS、功率管理等功能。
- Listen Interval (侦听间隔) 客户端设备与A P通信时的间隔,表示客户端设备多长时间侦听一次信标帧。值越小,客户端越频繁地检查AP发送的信标,消耗的功率越大。
- SSID(服务集标识符)客户端设备请求加入的无线网络的SSID (网络名称)。如果客户端设备明确指定要加入哪个网络,就会包含这个字段。
- Supported Rates (支持的速率) 客户端设备支持的数据传输速率列表。AP会根据这个列表判断是否可以支持客户端的请求,并选择最佳传输速率。
- Extended Supported Rates (扩展支持速率) 如果客户端设备支持的速率超过了8个,则会使用这个字段来传递更多速率信息。
- RSN Information (RSN信息) 如果网络启用了WPA/WPA2加密,客户端会在这个字段中发送其支持的安全功能和加密方法。
- Power Capability (功率能力) 客户端设备的最小和最大传输功率,通常在需要节能或具有特定功率要求的设备中使用。
- Supported Channels (支持的信道) 客户端设备支持的信道范围,用于AP选择适当的信道进行通信。
- Vendor Specific (厂商特定) 一些厂商特有的扩展字段,允许客户端和AP传递特定于设备的附加信息。
4.3 Reassociation Request帧
位于相同扩展服务区域,但在不同基本服务区域之间游走的移动工作站,若要再次使用传输系统,必须与网络重新连接。
如果工作站暂时离开基站所涵盖的范围,之后要重新加入的时候,也必须重新连接。如下图所示为重新连接帧结构。
association Request(连接要求)与Reassociation Request(重新连接要求)之间的差别在于,后者包含移动工作站目前所连接之基站的地址。
4.4 (Re)Association Response帧
1、 帧功能
Association Response 由无线接入点(AP)在收到客户端设备(例如笔记本电脑、智能手机等)发送的Association Request帧后,作为响应发出。
这个帧的作用是通知客户端设备其关联请求是否成功,并在成功的情况下分配一个关联ID(AID),允许其加入网络。
Association Response 帧的功能:
- 确认关联请求:AP通过Association Response帧确认客户端设备的关联请求。
- 提供关联状态:该帧告知客户端设备其关联请求的结果(成功或失败),如果失败,还会提供失败的原因。
- 分配资源:如果关联成功,AP会为客户端设备分配一个关联ID (AID),并可能提供其他必要的网络参数。
2、 帧结构
连接和重新连接应答帧结构如下图:
3、 帧头
- Frame Control (帧控制)类型字段为管理帧(00)子类型字段为Association Response (0001)。
- Duration/ID (持续时间/ID)指定传输此帧所需的时间,或包含关联ID。
- Address 1 (目的地址)发送关联请求的客户端设备的MAC地址(即接收地址)。
- Address 2 (源地址) AP的MAC地址,表示发送该响应帧的设备。
- Address 3 (BSSID,基本服务集标识符)网络的BSSID,通常与Address 2相同。
- Sequence Control (序列控制) 包含帧的序列号和片段号,用于管理帧的顺序和重组。
4、 帧主体
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.5 Disassociation/Deauthentication帧
解除连接和解除认证(Disassociation与Deauthentication)。
Disassociation(解除连接)帧用来终结一段连接关系,而 Deauthentication(解除认证) 帧则用来终结一段认证关系。两者均包含一固定位,Reason Code(原因代码),如图4-55所 示。当然,Frame Control位彼此不同,因为不同类型的管理帧拥有不同的次类型。
4.6 Probe Request/Response帧
1、 Probe Request(检测要求)帧
移动工作站将会利用Probe Request(检测要求)帧,扫描所在区域内目前有哪些802.11网络。Probe Request 帧的格式如下图所示。所有位均为必要。
Probe Request 帧包含两个位:SSID以及Supported Rates(移动工作站所支持的速率)。
2、 Probe Response(检测应答)帧
如果Probe Request 帧所探查的网络与之相容,该网络就会以Probe Response帧应答。送出最后一个Beacon帧的工作站,必须负责应答所收到的检测信息。
在基础型网络里,负责应 答的工作站即为基站。在IBSS当中,工作站会彼此轮流发送Beacon信号。
发送Beacon信号 的工作站必须负责发送Probe Response帧,直到下一个Beacon被发送出来。Probe Response 帧的格式如下图所示。
Probe Response 帧中包含了Beacon帧的所有参数,移动工作站可据以调整切入网络所需要的参数Probe Response帧可以剔除TIM元素,因为此时工作站尚未建立连接,因此不必知道哪些连接在基站中有暂存帧。
4.7 IBSS 的ATIM帧
IBSS中没有基站,因此无法仰赖基站暂存帧。IBSS中的工作站如果为处于休眠状态的接收者暂存帧,就会在递送期间送出一个IBSS的数据待传指示通知信息ATIM帧,通知对方有信息待阵,如下图所示。
4.8 Authentication帧
802.11网络发展初期,工作站是使用共享密钥以及下图所示的Authentication帧进行身份认证。
到了802.11i,共享密钥身份认证虽然仍保留在标准当中,但却无法与新的安全机制相容。