802.11无线网络权威指南(二):无线帧结构

无线协议桢的三种类型

类型和字段定义了无线网络的三种类型,分别是:

  1. 管理帧(Management frames)
    维护接入点和无线客户端之间的通信,管理该框架拥有以下子类型:
    Authentication 身份认证帧
    De-authentication 解除认证帧
    Association Request 关联请求帧
    Association Response 关联回应帧
    Reassociation Request 重新关联请求帧
    Reassociation Response 重新关联回应帧
    Disassociation 解除关联帧
    Beacon 信标帧
    Probe Request 探测请求帧
    Probe Response 探测响应帧
    ATIM帧

  2. 控制帧(Control frames)
    负责客户端和接入点的数据交换,类型为:
    RTS帧(Request to Send)
    CTS帧(Clear to Send)
    ACK帧(Acknowledgement)

  3. 数据帧(Data frames)
    这些不同类别的数据包被统称为数据包类型。

解释几个比较难理解的帧:
beacon 帧:由AP以一定的时间间隔周期性发出,以此来告诉外界自己无线网络的存在,相当于广播。
RTS 帧:发送数据之前的请求帧。
CTS 帧:由接收方发出,用于确认可以接收数据包,并通过广播方式通知其他设备不要发送数据包,以确保接收方能够正常接收。
RTS/CTS 的流程:
a. RTS/CTS 是用来解决传送大的数据包前的信道预约功能,由程序中设定的门限值来控制的;超过该门限值的数据帧由 RTS/CTS 先行清空介质,而较小的帧则直接传送,不需要发送。
b. 发送大数据前,先向AP路由发送RTS请求占用信道;
c. AP收到后广播发出CTS,告知所有设备;
d. 设备收到CTS和ACK后即可开始发送大的数据帧。

按照书里的描述:RTS/CTS技术是一种用于解决无线网络中的信号冲突问题的方法。在无线网络中,当多个设备同时发送信号时,会发生信号碰撞,导致数据包损坏和传输延迟增加。RTS/CTS技术通过引入两个新的控制帧,即RTS帧和CTS帧,来协调发送方和接收方之间的通信,有效减少信号冲突,提高网络传输效率。

ATIM帧:(‌Announcement Traffic Indication Message)‌是WLAN中用于通知处于休眠状态的接收者有信息待传的一种管理帧。‌

无线网络帧结构

完整帧格式

Control framesDuration/IDadress1adress2adress3Sequence controladress4QoS controlHT controlFrame BodyFCS

完整的帧共分三大部分:

  • 802.11 协议MAC头部分
  • Frame Body(帧体部分)
  • FCS帧校验

control frame

ProtocolTypeSub typeTo DSFrom DSMore FlagRetryPwr MgmtMore Dataprotected frameOrder
2bit2bit4bit1bit1bit1bit1bit1bit1bit1bit1bit
  • Protocol:表示802.11协议版本,目前802.11数据帧有两个版本:0或1;

  • Type:802.11 帧的类型,3类;

  • Sub type:802.11帧的子类型,后面讲;
    在这里插入图片描述

  • To DS 和From DS:这两个位用来指示帧的目的地是否为分布式系统。在基础结构型网络里,每个帧都会设定一个DS位(其中DS为Ap或DS系统);

To DS 和 From DS 取值含义
To DS = 0 From DS = 01.同一IBSS中,从一个STA到另一个STA;2.同一个BSS中,从一个非 AP 的STA到另一个非AP的STA或者BSS外部
To DS =1 From DS = 0代表发送给DS或AP的MAC帧;发往DS的帧必须通过AP转发
To DS =0 From DS = 1代表来自DS或AP的数据帧
To DS =1 From DS = 1仅 Mesh BSS 支持
  • More Frag:表示该帧是否有更多的分片;
  • Retry:表示该帧是否需要重传;
  • Pwr Mgt:
    1: 表示STA在发送完本帧后,将关闭天线处于休眠状态;
    0:表示处理工作状态
    (说明:AP不允许休眠,只有STA可以,因此AP发送的数据帧该字段恒为0)
  • More Data:
    1:至少还有一个数据帧要发送给STA;
    0:此帧已经发送完成;(说明:此bit只用于管理数据帧,在控制帧中此bit恒为0)
  • Protected Frame:
    1:表示该帧受到链路层安全协议的保护;否则为0;
  • Order:
    1:长帧分段传送采用严格编号方式;否则为0。

Duration/ID

Duration / ID 是持续时间和ID位,共有16bit,根据第14bit和15bit的取值组合,有以下三种类型的含义:

  1. 当第15bit被设置为0时,该字段就会被用来设定NAV值,表明该帧和它的确认帧将会占用信道多长时间(单位为微秒);工作站必须监视所收到的任何帧头并据此更新NAV(0 - 32767)。
  2. 当第15bit被设置为1,第14bit为0时,该字段用于无竞争周期(CFP)中,该值被解读为NAV(固定为32768),它让没收到beacon的所有工作站都得以公告无竞争周期;
  3. 当第15bit被设置为1,第14bit为1时,用于PS-Poll帧,PS中的工作站会定期醒来,此时会发送一个PS-Poll,其中有关联标识符(AID),以表示其所属的BSS。(值范围为:1 - 2007)

Address

一个802.11帧最多包含4个Address。因随着帧类型的不同,这些字段的作用也有所差异。分别为:

  • SA:源地址
  • DA:目的地址
  • TA:传输工作站地址
  • RA:接收工作站地址

SA与DA必不可少,后两个只对跨BSS的通信有用。
目的地址可以为单播地址(Unicast address)、多播地址(Multicast address)、广播地址(Broadcast address)。

  • 如果传送给实际媒介的第一个位为0,则该地址为单播(unicast);
  • 如果第一位为1,则该地址为组播(multicast);
  • 如果所有的位均为1,则该地址为广播(broadcast)。

802.11帧中Address字段含义根据帧的不同而不同,具体如下表所示:

网络类型Address1(接收端)Address2(发送端)Address3Address4
IBSSDASABSSID未使用
To APBSSIDSADA未使用
From APDABSSIDSA未使用

以下为To DS和From DS字段和Address字段 间的关系的使用场景:
在这里插入图片描述

Sequence Control

序列控制域。 共16位,前4位代表片段编号(Fragment Number),后12位为帧顺序编号(Sequence Number),域格式如图下所示。
在这里插入图片描述

  1. sequence number:当上层帧交付到MAC层传送时,会被赋予一个 sequence number。
    a. 相当于已传帧的计数器取 4096 的模;此计数器由 0 起算,MAC每处理一个上层封包就会加1;
    b. 如果上层封包被分片处理, 所有帧片段(Fragment Number)都会具有相同的顺序编号;
    c. 如果是重传帧,则顺序编号不会累加;
    d. 也是从0开始计数,如果满了以后那么循环为0,重新计数。
    e. 控制帧没有帧顺序编号,重传帧不使用新的帧顺序编号。

  2. Fragment Number:用于控制分片帧。如果数据量太大,则MAC层会将其分片发送。每个分片帧都有对应的分片编号, 其初始为0,每新增一次分片其会增加1;

QoS Control

QoS control是802.11e中新增的一个MAC层的字段。
Qos Control域有2个字节,QoS Control field中比较重要的字段是 TID(Traffic identifier)。
TID 值 0-7 用于具有优先权的默认 QOS 设定值,表示使用者的优先顺序(UP);
TID 值 8-15 用于自定义的QOS类型,即表示数据流ID(TSID),节点可以通过ADDTS过程和AP(WLC)协商,从而特定设置一些对应的QoS参数。

QoS control字段格式定义如下图所示,主要分几个部分:

  1. BIT0-BIT3:TID(Traffic identifier)业务流相关的ID号(有8种TC和8种TS数据类型);
  2. BIT4:标志,直接决定BIT8-BIT15的内容。有 以下几种情况:
    a. EOSP:End Of Service Period。数据下行(即由AP发送),此时又分两种情况:
    ① AP发Null Data+CF ACK: BIT8-BIT15内容为 AP PS Buffer State;为1代表当前服务周期结束;
    ② AP发CF Pull包:BIT8-BIT15内容为TXOP Limit值;
    b. 0:数据上行(由STA发送),BIT8-BIT15内容为TXOP Duration Request;
    c. 1:数据上行(由STA发送),BIT8-BIT15内容为Queue size;
  3. Bit5-Bit6:ACK Policy;
  4. Bit7:打开和关闭A-MSDU帧聚合的标志;
    在这里插入图片描述
    TID有4个Bit(B0-B3),一共可以表示16个类型,其中8个对应TC(规定的8种默认优先级类型),另外8个对应TS,TS的参数是通过STA与AP协商的。
    也就是说TID不仅仅被设置为AC_BK、AC_BE、AC_VI和AC_VO,还可以使用TS进行协商。
    在这里插入图片描述
    802.11e 提供了4个不同的优先级的流量种类,当流量 MSDU 到达 802.11e 定义的MAC层时,会根据其 802.1D 的 tag 标识被分别存放到4个不同的queue里,分别是AC_VO,AC_VI,AC_BE,AC_BK,如下 图所示:
    在这里插入图片描述
  5. 语音服务(Voice,AC_VO):一般为 VoIP 流量类型,对延迟最为敏感,同时也是优先级最高的流量。
  6. 视频服务(Video,AC_VI):视频流量的优先级低于语音服务。视频服务也是延迟敏感类型的服务,所以具有一定的优先级。
  7. 尽力传输(Best-effort,AC_BE):默认的无线流量类型就是best-effort类型,比如网页访问的数据流量类型。对于延迟有一定需求,但是没有那么敏感。
  8. 背景流量(Background,AC_BK):对于延迟要求最不敏感的流量,比如文件传输,打印作业的流量。

HT Control 字段

该字段在 802.11 的 11n 协议中引入,11ac和11ax还有点不同,先只看11n的,字段如图:
在这里插入图片描述

  1. Link Adaption Control (Bit0-Bit15)
    在这里插入图片描述
  • TRQ:Training Request.探测请求,该位设置为1请求接收者发送探测帧(sounding PPDU), 主要用于波束成形(beaming);
  • MAI:MCS Request (MRQ) or ASEL Indicator。用于mcs请求或天线选择;值设置为14表示打开ASELC(天线选择控制)标志; 否则即为MCS请求,用于链路自适应动态选择最佳MCS;
  • MFSI:MCS Feedback Sequence Identifier。用于调制解调方案的反馈;
  • MFB/ASELC:MCS feedback and Antenna Selection Command。MAI设置为天线选择字段,说明天线选择命令和数据;否则该字段包含推荐的MCS反馈;
  1. Calibration Position (BIT16-BIT17):校准位置;
  2. Calibration Sequence (BIT18-BIT19):校准序列;
  3. Reserved
  4. CSI/Steering (BIT22-BIT23): Beamforming feedback类型
    0:No feedback required
    1:CSI
    2:Noncompressed beamforming
    3:Compressed beamforming
  5. NDP Announcement:设置为1表示有一个后续的NDP;
  6. AC Constraint:指示RD数据帧的映射AC是否被约束到单个AC
  7. RDG/More PPDU:Reverse Direction协议相关。当使用反向 (RD) 协议时,获得了 TXOP 的 STA 可以授予其他 STA 在同一 TXOP 内回传数据的机会,而无需响应的 STA 在传输之前竞争介质。

Frame Body 帧体

  1. 代表数据域, 也称为数据字段,负责传输上层有效载荷(Payload)。在802.11标准中,传输的载荷报文也被称为MSDU(MAC Service Data Unit);
  2. 这部分内容的长度可变,其具体存储的内容由帧类型(type)和子类型(sub type)决定;
  3. 根据帧类型,封装的上层数据单元长度为0~2312个字节;所以802.11帧在没有帧聚合(A-MSDU)的情况下最大长度为:2312 + 34(MAC头和CRC,不包括QoS和HT control) = 2346个字节;

FCS 校验域

包含32位循环冗余码。用于检查接收帧的完整性。类似于Ethernet中的CRC。

帧细节

Frame Control(帧控制域)中的Type(类型域)和Subtype(子类型域)共同指出帧的类型。
当Type的 Bit3 和 Bit2 位为:
00:管理帧
01:控制帧
10:数据帧

管理帧

主要用于STA与AP之间协商和连接的控制,如关联、认证、同步等。 而Subtype进一步判断帧类型,如管理帧里头细分为关联和认证帧;

TypeSubTypeFrameType
000000Association request (连接请求)
000001Association response (连接响应)
000010Reassociation request(重连接请求)
000011Reassociation response(重连接联响应)
000100Probe request(探测请求)
000101Probe response(探测响应)
001000Beacon(信标,被动扫描时AP 发出,notify)
001001ATIM(通知传输指示消息)
001010Disassociation(解除连接,notify)
001011Authentication(身份验证)
001100Deauthentication(解除认证,notify)
001101~1111Reserved(保留,未使用)

控制帧

用于竞争期间的握手通信和正向确认(RTS信道预约、CTS预约成功、ACK等)、结束非竞争期等,为数据帧的发送提供辅助功能。

TypeSubtypeFrame type
011010Power Save(PS)- Poll(省电-轮询)
011011RTS(请求发送,即: Request To Send ,预约信道,帧长20字节)
011100CTS(清除发送,即:Clear To Send ,同意预约,帧长14字节)
011101ACK(确认)
011110CF-End(无竞争周期结束)
011111CF-End(无竞争周期结束)+CF-ACK(无竞争周期确认)
RTS 帧

RTS 帧可用来取得媒介的控制权,以便传送大型帧;大型帧是超过网卡驱动程序中 RTS threshold(阈值)的帧。
媒介访问权只能保留给单播(unicast)帧使用,而广播(broadcast)与组播(multicast)帧只是简单地传送。
RTS 帧只有帧头,不携带任何数据,帧头之后就是 FCS 帧校验码,格式如下:
RTS 帧
RTS 帧会试图预约媒介使用权,供帧交换过程使用。因此 RTS 帧传送必须计算 RTS 帧结束后还需要多少时间用于帧交换。不过下图也明示了要 3 个 SIFS 周期、一个 CTS 持续时间、最后的 ACK 加上传送第一个帧片段所需要的时间。
RTS 帧的 duration 字段:
在这里插入图片描述

CTS 帧

CTS 帧有两种目的,其格式如下:
CTS 帧
起初 CTS 帧仅用于回复 RTS 帧,如果之前没有 RTS 帧出现,就不会产生 CTS。
后来 CTS 帧被 802.11g 保护机制用来避免干扰较旧的工作站。
而用来响应 RTS 的 CTS 帧的发送端会以 RTS 帧的 duration 值作为持续时间的计算基准。RTS 帧会为整个 RTS-CTS-frame-ACK 交换过程预留媒介使用时间。
不过当 CTS 帧被传送出去后,只剩下其他未传帧或帧片段及其确认待传。CTS 帧发送端会将 RTS 帧的 duration 值减去传送 CTS 帧及其后的短帧间间隔送需要的时间,然后将计算结果置于 CTS 的 duration 字段中。
CTS 的持续时间:
在这里插入图片描述

ACK 帧格式

确认帧。因为无线网络的特点,很难保证数据一定会到达目的地。
为了确保数据一定到达,802.11采用确认、重传机制,即每一个数据都必须确认ACK,如果未收到ACK,发送方重新发送。
这会导致信号差的时候,重传概率加大,造成传输速度下降;
ACK 帧
非最终ACK帧的 Duration 字段:
在这里插入图片描述

PS-POLL省电轮询

当一个移动工作站从省电模式中苏醒后,便会传送一个 PS-Poll 帧给接入点以取得任何缓存帧。
PS-POLL 帧:
在这里插入图片描述
AID:PS-Poll 帧会以 MAC 标头的第三位与第四位来代表关联标识符(association ID)。
关联标识符是接入点指定的一个数值,用来识别关联。将此标识符放入帧中,可让接入点找出为其(移动式工作站)缓存的帧。

PS-Poll 帧没有 duration,因此无法更新 NAV。
但是收到 ACK 的工作站会以短帧间间隔加上传送 ACK 信号需要的时间来更新 NAV。

数据帧

用于在竞争期和非竞争期传输数据。
一般数据帧:
在这里插入图片描述
这种数据帧只能在无竞争周期出现。不可能出现在 IBSS(独立基本服务集)。
另一种区分方式是对携带数据与提供管理功能的帧加以区分。
下面是数据帧的分类方式:

TypeSub typeFrame type
100000Data(数据)
100001Data+CF-ACK
100010Data+CF-Poll
100011Data+CF-ACK+CF-Poll
100100Null data(无数据:未传送数据)
100101CF-ACK(未传送数据)
100110CF-Poll(未传送数据)
100111Data+CF-ACK+CF-Poll
101000Qos Data
101001Qos Data + CF-ACK
101010Qos Data + CF-Poll
101011Qos Data + CF-ACK+ CF-Poll
101100QoS Null(未传送数据)
101101QoS CF-ACK(未传送数据)
101110QoS CF-Poll(未传送数据)
101111QoS CF-ACK+ CF-Poll(未传送数据)

参考书:《802.11无线网络权威指南》
参考链接:https://zhuanlan.zhihu.com/p/679499856

  • 18
    点赞
  • 6
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值