文章

802.11幀結構

802.11 無綫

802.11幀格結構

802.11的网络帧都是由9个字段构成的。

1. Frame Control

所有的802.11帧都是由2字节的帧控制字段开始的,包括如下的字段:

  • Protocol([0:1]):表示该帧所使用的MAC版本,目前只有一个版本协议编号为0。
  • Type([2:3]):表示帧类型。在802.11中定义了三种帧分别是:管理帧(Type=00b)、控制帧(Type=01b)、数据帧(Type=10b)。
  • Subtype([4:7]):对于Type定义的三种帧,进行了进一步的细化,详细参见表1。
  • ToDs([8]):表示该帧是BSS向DS发送的帧。
  • FromDs([9]):表示该帧是DS向BSS发送的帧。
  • More Frag([10]):说明了长帧分包发送的情况,为1表示该帧之后还有其它帧,为0表示该帧为最后一帧。
  • Retry([11]):任何重传的帧都会将此位设定为1,以协助接收端剔除重复的帧。
  • Pwr Mgmt([12]):只是该帧传送结束之后,Station应采用的电源管理模式。1表示Station即将进入省电(power-save)模式, 0表示将进入激活(active)模式。
  • More Data([13]):针对处于省电模式的Station,AP会将从分布系统中接收来的帧加以缓存。AP将此位置1表示至少还有一帧需要传给休眠中的Station。
  • Protected Frame([14]):如果该帧经过WEP(Wired Equivalent Privacy)加密处理则置1,否则置0。
  • Order([15]):在分段传送长帧的时候,将该位置1,表示接收端需要严格按照顺序处理该帧。

2. Duration ID

Frame Control之后就是Duration ID。 此字段与我们在802.11简介中介绍的媒介访问时机有重要的关系。 如下图所示,有三种形式:

Duration字段
  • Duration设定NAV:当最高位为1b’0时,该字段就说明了当前的传送预计需要占用无线媒介多少微秒。接收到帧的Station必须根据该字段更新NAV计数。
  • CFP Frames:最高两位为2’b10,其余各位为0。该字段用于无竞争周期(Contenion Free Period, CFP),它让没有收到Beacon的Station更新NAV计数为一个较大的数值。
  • PS-Poll Frames:最高位为2’b11。当一个省电模式下的Station复苏后,就需要发送一个PS-Poll帧,从关联的AP获取其缓存的帧。 该字段的剩余部分记录了关联的标识符(Association ID, AID)。

3. Address字段

在802.11的帧结构中有4个Address字段,在不同类型的帧中,它们具有不同的意义。大多数情况下只会用到其中的3个地址,Address1表示接收端地址,Address2表示发送端地址, Address3常用作掩码过滤地址。比如说在基础结构网络中,Address3就常被拿来判定接收的帧是否属于关联的网络。

802.11网络的寻址方式与以太网一致,也是用48位的数据来表示一个地址。如果第一位为0,则该地址代表单一设备,也称为单播(unicast)。 如果第一位为1则代表一组Station,称为组播(multicast),如果所有位都是1的话就是广播(broadcast)的形式,发送给所有的Station。

4. Sequence Control字段

在Address字段中间有一个顺序控制(Sequence Control)字段,它由4位的片段编号(fragment number)和12位的顺序编号(sequence number)。 上层吧帧交给MAC时,就会为每一个帧赋予一个顺序编号。如果是重传帧,顺序编号是不会改变的。如果需要拆分发送,则所有的帧片段都是一样的, 它们之间的区别就在于片段编号。第一个片段编号为0,其后的各个片段的序号就会累加。

5. Frame Body字段

Frame Body字段中往往记录的是通信中实际的数据,所以该字段也是数据字段。它最多可以传送2304个字节的数据(为了能够支持WEP, 各供应商在具体实现的时候通常是支持2312个字节的数据)。802.11的LLC需要占据8个字节,因而最多可以传送2296个字节的数据。

6. FCS字段

802.11帧是以帧校验序列(Frame Check Sequence, FCS)结束的,通常是一种CSC(Cyclic Redundancy Check)校验位。 FCS用于检查接收到的帧的完整性。上层应用将要发送的帧传递给MAC,MAC会先计算FCS,然后依次将之通过射频等无限媒介发送出去。 接收端在接收到数据后也计算一次FCS,然后与接收到的FCS对比。若不一致,则在数据传送的过程中一定发生了错误。发生了错误后,就应该重传。

802.11中三種幀類型

管理幀 Management Frame

例如Beacon幀、Association

控制幀 Control Frame

例如RTS幀、CTS幀

數據幀Data Frame

承載數據的載體,其中的DS字段用來標示方向很重要

無綫加密方式

WEP、WPA、WPA2、RC4、TKIP、AES

基本術語

• AP(Access point的简称,即访问点,接入点):是一个无线网络中的特殊节点,通过这个节点,无线网络中的其它类型节点可以和无线网络外部以及内部进行通信。这里,AP和无线路由都在一台设备上(即Cisco E3000)。

• Station(工作站):表示连接到无线网络中的设备,这些设备通过AP,可以和内部其它设备或者无线网络外部通信。

• Assosiate:连接。如果一个Station想要加入到无线网络中,需要和这个无线网络中的AP关联(即Assosiate)。

• SSID:可以初略理解爲wifi名稱;每个无线网络都有它自己的SSID。

• BSSID:用来标识一个BSS,其格式和MAC地址一样,是48位的地址格式。一般来说,它就是所处的无线接入点的MAC地址。某种程度来说,它的作用和SSID类似,但是SSID是网络的名字,是给人看的,BSSID是给机器看的,BSSID类似MAC地址

建立Association

下面是Station和Ap建立开放Association的过程:

(0)Ap周期性地广播Beacon帧 (1)Station广播Probe Request到达Ap (2)Ap向Station发送Probe Reponse (3)Station向Ap发送ACK (4)Station向Ap发送Authentication Request (5)Ap向Station发送ACK (6)Ap向Station发送Authentication Reponse (7)Station向Ap发送ACK (8)Station向Ap发送Association Request (9)Ap向Station发送ACK (10)Ap向Station发送Association Reponse (11)Station向Ap发送ACK (12)Station和Ap开始相互通信。

可见,广播帧不用回复,单播帧需要用ACK确认,ACK本身不用被确认。

本文由作者按照 CC BY 4.0 进行授权