第4章 802.11 帧封装细节
一 前言
第三章主要在说明帧的基本结构及其组成位,不过并未深入探究各种不同类型帧的细节。802.11 帧主要有三种类型。数据帧好比802.11 的驮马,负责在工作站之间传输数据。数据帧可能会因为所处的网络环境不同而有所差异。控制帧通常与数据帧搭配使用,负责区域的清空、信道的取得以及载波监听的维护,并于收到数据时予以正面的应答,借此促进工作站间数据传输
的可靠性。管理帧负责监督,主要用来加入或退出无线网络,以及处理基站之间连接的转移事宜。
二 正文内容
4.1 数据帧
数据帧会将上层协议的数据置于帧主体加以传递。会用到哪些位,取决于该数据帧所属的类型。
不同类型的数据帧可根据功能加以分类。其中一种方式,是将数据帧区分为竞争式服务及免竞争服务两种数据帧。只能在免竞争期间出现的帧,就不可能在IBSS(独立型基本服务组合)
中使用。另一种区分方式,则是对携带数据与提供管理功能的帧加以区别。表4-1 显示了数据帧的分类方式。免竞争服务所使用的帧,在第九章会有更详细的讨论。
4.1.1 Frame Control(帧控制)
Frame Control(帧控制)位各个bit 的用法在第三章早已说明。每个帧控制bit 都可能影响到MAC 标头其他位的解读方式。最值得注意的是那些地址位,它们的意义将因ToDS 及
FromDSbit 的值而异。
4.1.2 Duration(持续时间)
Duration(持续时间)位用来记载网络分配矢量(NAV)的值。数据帧之Duration 位的设定,必须依循四项规范:
1. 免竞争期间所传递的任何帧,必须将Duration 位设定为32768。此规范适用于免竞争
期间所传递的任何数据帧。
2. 目的地为广播或组播地址的帧(Address 1 位设定了群组bit),其持续时间为0。
3. 如果Frame Control 位中的More Fragments bit 为0,表示该帧已无其余片段。
4. 如果Frame Control 位的More Fragmentsbit 被设定为1,表示其后还有帧片段。
4.1.3 地址与DS Bit
地址位的编号与功能取决于设定了哪个DS(传输系统)bit,因此所使用的网络类型会间接影响到地址位的用法。
Address 1 代表帧接收端的地址。目的地是指负责处理帧中网络层封包的工作站;而接收端则是负责将无线电解码为802.11 帧的工作站。Address 2 是发送端的地址,用来发送应答信息。发送端就是源地址。源地址是指产生帧中网络层协议封包的工作站;而发送端则是负责将帧发送至无线链路。Address 3 位则是供基站与传输系统过滤之用,不过该位的用法,取决于所使用的网络类型。
由于IBSS 并未使用基站,因此不会涉及传输系统。发送端即为帧的源,而接收端即为帧的目的地。每个帧都会记载BSSID,因此工作站可以检查广播与组播信息。只有隶属同一个BSS
的工作站,才会处理该广播或组播信息。
802.11 对源与发送端以及目的地与接收端有明确的区分。将帧送至无线介质的发送端,不见得就是帧的产生者。目的地址与接收端地址同样有此区别。接收端可能只是中介目的地,而帧
只有到达目的地,才会由较上层的协议加以处理。
图4-4 展示了一个简单的网络,其中有某个无线用户端通过802.11 网络连接至服务器。用户端将帧发送给服务器时,地址位的用法如表4-2 第二列所示。
如果帧的目的地位于传输系统,则用户端既是源亦是发送端。至于无线帧的接收端则是基站,不过该基站只是个中介目的地。当帧送到基站时,该帧会经传输系统转送给服务器。因此,
基站是接收端,而服务器才是最后的目的地。
当服务器应答用户端时,帧会通过基站发送给用户端,如图4-5 所示。这种情况相当于表4-2 的第三列。
由于帧产生自服务器,所以服务器的MAC 地址即为该帧的来源地址(简称SA)。当帧通过基站转送出去时,基站将会以自己的无线介面做为发送端地址(简称TA)。如同前一个例子,
基站的介面地址就是BSSID。帧最后会被送至用户端,此时用户端既是目的地又是接收端。如图4-6 所示,两条有线网络通过扮演无线桥接器角色的基站彼此相连。从用户端送至服务器的帧会经过802.11 WDS。该无线帧的源与目的地址,依然对应到用户端与服务器的地址。。对于由用户端送至服务器的帧而言,发送端就是用户端这边的基站,而接收端就是服务器
这边的基站。
即图4-6与图4-5说明:源与发送端不同,在图4-6中源为工作站(用户端)而发送端为用户端的基站;在图4-6中目的地址与接收端不一样,目的地址为服务器的地址而接受端为服务器这边的基站。
4.1.4 数据帧的次类型
802.11 具有数种不同类型的数据帧。要使用何种帧,取决于服务是属于竞争式或免竞争式服务。
注释:竞争式服务:DCF为分布式协调功能,在传送数据前,会先检查无线链路是否处于空闲状态. 为了避免冲突发生,当某个传送者占据频道时,工作站会随机为每个帧选定一段延后时间。DCF 允许多部独立的工作站彼此互动,无须通过中央管控,因此可以运用于IBSS 网络或基础型网络。(基本服务组合)
PCF(点协调功能)
点协调功能提供的是免竞争服务。称为点协调者的特殊工作站可以确保不必通过竞争即可使用介质。点协调者位于基站,因此只有基础型网络才会使用PCF。
。以下是常见的数
据帧次类型:
Data(数据
次类型为Data 的帧,只有在竞争访问期间才会传输。这类简单的帧只有一个目的,亦即在工作站间发送帧主体。
Null(空)
Null 帧看起来有点奇怪。它是由MAC 标头与FCS 标尾所组成。在传统的以太网中,Null帧无非就是额外的负担;在802.11 网络中,移动工作站会利用Null 帧来通知基站省电状态的改
变。当工作站进入休眠状态,基站必须开始为之暂存帧。
4.1.5 数据帧的封装
数据帧的形式取决于网络的形式。帧究竟属于哪种类型,完全取决于subtype(次类型)位,而与其他位是否出现在帧中无关。
4.1.5.1 IBSS 帧
在IBSS 中,所使用的address 位有三种,如图4-8 所示。第一个地址代表接收端,同时也是IBSS 网络中的目的地址。第二个地址是源地址。在这些地址之后,伴随而来的是IBSS 的BSSID。当无线MAC 收到一个帧时,首先会去检查BSSID,只有BSSID 与工作站相同的帧,才会交由上层协议加以处理。
4.1.5.2 发送自基站(From AP)的帧
图4-9 显示了由基站发送给移动工作站的帧格式。和所有数据帧一样,第一个位代表无线网络中接收该帧的接收端,亦即该帧的目的地。第二个位存放了发送端的地址。在基础网络中,发送端地址即为基站(AP)上无线介面的地址,同时也是BSSID。最后,该帧会记载帧的源MAC 地址。区分源与发送端所以必要,是因为802.11 MAC 会将应答送给帧的Transmitter(发送端AP),而较上层的协议会将应答送给帧的source(来源地)。
4.1.5.3 发送至基站(To AP)的帧
图4-10 显示了,在infrastructure(基础型)网络里,移动工作站发送给所连接基站的帧格式。接收端地址(RA)为BSSID。在基础网络里,BSSID 即为基站的MAC 地址。送至基站的帧,其源/发送端地址(SA/TA)得自无线工作站的网络介面。基站并未进行地址过滤的动作,而是使用第三个地址(DA),将数据转送至位于传输系统的适当位置。
4.1.5.4 WDS 中的帧
当基站被部署成无线桥接器(或者VUDS)时,就会用到四个地址位,如图4-11 所示。和其他数据帧一样,WDS 帧会使用第一个地址(RA)代表receiver(接收端),第二个地址(TA)代表Transmitter(发送端)MAC 层会使用这两个地址送出应答以及控制流量,例如RTS、CTS以及ACK 帧。另外两个地址位(SA 与DA)则是用来记载帧的source(源)以及destination
(目的)地址,并且将之与无线链路所使用的地址区别开来。
4.1.5.5 经加密的帧
受到链路层安全协议保护的帧并不算新的帧类型。当帧经过加密处理,Frames Control(帧控制)位的Protected Frame bit 会被设定为1
4.2 控制帧
控制帧主要在协助数据帧的传递。它们可用来监督无线介质的访问(但非介质本身),以及提供MAC 层次的可靠性。
4.2.1 一般的帧控制位
Protocol(协议版本):协议版本的值为0。
为控制帧均使用相同的Frame Control(帧控制)位,如图千12 所示。
如上图4-12所示,每一个控制帧的位有2个字节(16个比特),每一个比特位均表示不同含义。
Type(类型)
控制帧的类型识别码为01。
Subtype(次类型)
此位代表发送控制帧的次类型。
ToDS 与FromDS bit
控制帧负责处理无线介质的访问,因此只能够由无线工作站产生。传输系统并不会收送控制帧,因此这两个bit 必然为0。
More Fragments(尚有片段)bit
控制帧不可能被切割,这个bit 必然为0。
Retry(重试)bit
控制帧不像管理或数据帧那样,必须在序列中等候重送,因此这个bit 必然为0。
Power Management(电源管理)bit
此bit 用来指示、完成当前的帧交换过程后,发送端的电源管理状态。
More Data(尚有数据)bit
More Data bit 只用于管理数据帧,在控制帧中此bit 必然为0。
Protected Frame(受保护帧)bit
控制帧不会经过加密。因此对控制帧而言,Protected Frame bit 必然为0。
Order(次序)bit
控制帧是基本帧交换程序(atomic frame exchange operation)的组成要件,因此必须依序
发送。所以这个bit 必然为0。
4.2.2 RTS(请求发送)
RTS 帧可用来取得介质的控制权,以便传输「大型」帧。RTS 帧的格式如图4-13 所示。RTS 帧只包含标头。帧主体中并未包含任何数据,标头之后即为FCS(帧
检查码)。
RTS 的MAC 标头由四个位构成:Frame Control(帧控制)Frame Control 位并没有任何特殊之处。帧的subtype(次类型)位设定为1011,代表RTS帧。
Duration(持续时间)
RTS 帧会试图预定介质使用权,供帧交换程序使用,因此RTS 帧发送者必须计算RTS 帧结束后还需要多少时间。图4-14 说明了整个交换过程,总共需要三个SIFS、一个CTS、最后
的ACK,加上发送第一个帧或帧片段所需要的时间。
4.2.3 CTS(允许发送)。
起初,CTS 帧仅用于应答RTS 帧,如果之前没有RTS 出现,就不会产生CTS。CTS 帧被用来避免干扰较旧的工作站。
4.2.4 ACK(应答)
ACK 帧(图4-17)就是MAC 以及任何数据传输(包括一般传输RTS/CTS 交换之前的帧、帧片段)所需要的正面应答(positive acknowledgment)。服务质量扩展功能放宽了个别数据
帧必须各自得到应答的要求。
ACK 帧的MAC 标头由三个位构成:
Frame Control(帧控制)
帧的subtype(次类型)位被设定为1101,代表ACK 帧。
Duration(持续时间)
依照ACK 信号在整个帧交换过程中位居何处,duration 的值可以有两种设定方式。在完整的数据帧及一连串帧片段的最后一个片段中,duration 会被设定为0。数据发送端会将Frame
Control(帧控制)位中的More Fragments(尚有片段)bit 设定为0,表示数据传输已经结束。
Address 1 位:Receiver Address(接收端地址)
接收端地址是由所要应答的发送端帧复制而来
4.2.5 PS-Poll(省电模式一轮询)
当一部移动工作站从省电模式中苏醒,便会发送一个PS-Poll 帧给基站,以取得任何暂存帧。
PS-Poll 帧的格式如图4-19 所示
PS-Poll 帧的MAC 标头由四个位构成:
Frame Control(帧控制)
帧的subtype(次类型)位被设定为1010,代表PS-Poll 帧。
AID(连接识别码)
PS-Poll 帧将会以MAC 标头的第三与第四bit 来代表连接识别码(association ID)。连接识别码是基站所指定的一个数值,用以区别各个连接。将此识别码置入帧,可让基站找出为其(移
动工作站)所暂存的帧。
Address 1 位:BSSID
此位包含发送端目前所在BSS 的BSSID,此BSS 建立自目前所连接的AP。
Address 2 位:Transmitter Address(发送端地址)
此为PS-Poll 帧之发送端的MAC 地址
在PS-Poll 帧中并未包含duration 信息,因此无法更新NAV。不过,所有收到Ps-Poll 帧
的工作站,都会以短帧间隔加上发送ACK 信号所需要的时间来更新NAV。
4.3 管理帧
各式各样的管理帧,为的只是提供对有线网络而言相当简单的服务。802.11 将整个程序分解为三个步骤。寻求连接的移动工作站,首先必须找出可供访问的无线网络。在有线网络中,这个步骤相当于在墙上找出适当的插孔。其次,网络系统必须对移动工作站进行身份认证,才能决定是否让工作站与网络系统连接。在有线网络方面,身份认证是由网络系统本身提供。如果必须通过网线才能够取得信号,那么能够使用网线至少算得上是一种认证过程。最后,移动工作站必须与基站建立连接,这样才能访问有线网络,这相当于将网线插到有线网络系统。
4.3.1 管理帧的结构
802.11 管理帧的基本结构如图4-20 所示。所有管理帧的MAC 标头都一样,这与帧的次类型无关。管理帧会使用信息元素(带有数字标签的数据区块)来与其他系统交换数据。
4.3.1.1 地址位
和其他帧一样,第一个地址位是给帧的目的地址使用的。有些管理帧主要用来维护个别BSS特有的属性。为了限制广播或组播管理帧所造成的副作用,收到管理帧之后,工作站必须加以验
证,虽然不是所有实现均会进行这一BSSID 过滤程序。Beacon 帧,毕竟它是用来宣布802.11网络的存在。基站会以本身无线网络介面的MAC 地址作为BSSID。
注释:在基础网络里,BSSID 即为基站的MAC 地址。
4.3.1.2 计算持续时间
管理帧使用Duration(持续时间)位的方式和其他帧没有两样:1. 免竞争期间所发送的任何帧,均会将持续时间设为32,768。
2. 竞争式访问期间,利用DCF 所发送的帧会通过Duration 位防止别人访问介质。确保基
本帧交换程序得以完成。
a.如果是广播或组播帧(目的地地址为群组地址),则持续时间会设定为0。广播
与组播帧无须得到应答,因此NAV 无须防止别人访问介质。
b.如果不是最终片段,则持续时间会设为三个SIFS 期间加上下一个片段及其应答所
需要的微秒数。
c.最终帧片段的持续时间会设定为一个应答加上一个SIFS 所需要的时间。
4.3.1.3 帧主体
管理帧十分具有弹性。帧主体中大部份的数据,如果使用长度固定的位,就称为固定式位;如果位长度不定,就称为信息元素(information element)。所谓信息元素,是指长度不定的数
据区块。
每个数据区块均会标注上类型编号与大小,各种信息元素的数据位都有特定的解释方式。
4.3.2 长度固定的管理帧元件
在管理帧中,可能出现的长度固定位有十种。长度固定的位一般简称为位,以便与长度不定的信息元素有所区别。
Authentication Algorithm Number 位
Authentication Algorithm Number(身份认证算法编号)位占用了两个字节,如图4-21 所示。此位代表连接发生之前802.11 层次(802.11-level)的最初认证程序所使用的认证类型(认
证程序在第七章有更详尽的讨论)。
Authentication Transaction Sequence Number 位
身份认证程序分为好几个步骤,其中包含由基站所发出的盘问口令(challenge),以及试图连接的移动工作站所做出的应答。
4.3.4 管理帧的类型
管理帧的主体所包含的固定位与信息元素是用来运送信息。
4.4.1.1 Beacon(信标)帧
Beacon 帧是相当重要的维护机制,主要用来宣告某个网络的存在。定期发送的信标,可让移动工作站得知该网络的存在,从而调整加入该网络所必要的参数。在基础型网络里,基站必须负责发送Beacon 帧。Beacon 帧所及范围即为基本服务区域。在基础型网络里,所有沟通都必须通过基站,因此工作站不能距离太远,占则便无法接收到信标。
4.3.4.2 检测要求(Probe Request)
移动工作站将会利用Probe Request(检测要求)帧,扫描所在区域内目前有哪些802.11网络。Probe Request 帧包含两个位:SSID 以及Supported Rates(移动工作站所支持的速率)。
收到Probe Request 帧的工作站会据此判定对方能否加入网络。
注释:所有位于同一个ESS 的基站将会使用相同的服务组合识别码(set identifier,简称SSID),通常就是使用者所谓的网络「名称」。
为了相处愉快,移动工作站必须支持网络所要求的所有数据速率,并以SSID 表明所欲加入的网络。SSID 可设定为特定网络的SSID,或设定为任何相容网络的SSID。
4.3.4.3 检测应答(Probe Response)
如果Probe Request 帧所探查的网络与之相容,该网络就会以Probe Response 帧应答。送出最后一个Beacon 帧的工作站,必须负责应答所收到的检测信息。在基础型网络里,负责应答的工作站即为基站。在IBSS 当中,工作站会彼此轮流发送Beacon 信号。发送Beacon 信号的工作站必须负责发送Probe Response 帧,直到下一个Beacon 被发送出来。
4.3.4.4 IBSS 的数据待传指示通知信息(AT I M)帧
HISS 中没有基站,因此无法仰赖基站暂存帧。IBSS 中的工作站如果为处于休眠状态的接收者暂存帧,就会在递送期间送出一个ATIM 帧,通知对方有信息待阵,如图4-54 所示。
4.3.4.5 解除连接和解除认证(Disassociation 与Deauthentication)
Disassociation(解除连接)帧用来终结一段连接关系,而Deauthentication(解除认证)帧则用来终结一段认证关系。
4.3.4.6 连接要求(Association Request)
一旦移动工作站找到相容网络并且通过身份认证,便会发送Association Request(连接要求)帧,试图加入网络
4.3.4.7 重新连接(Reassociation Request)
位于相同扩展服务区域,但在不同基本服务区域之间游走的移动工作站,若要再次使用传输系统,必须与网络重新连接。如果工作站暂时离开基站所涵盖的范围,之后要重新加入的时候,
也必须重新连接。
4.3.4.8 连接应答与重新连接应答(Association Response 与Reassociation Response)
当移动工作站试图连接基站时,基站会回覆一个Association Response(连接应答)或Reassociation Response(重新连接应答)帧
4.3.4.9 认证(Authentication)
802.11 网络发展初期,工作站是使用共享密钥以及图4-59 所示的Authentication 帧进行身
份认证。到了802.11i,共享密钥身份认证虽然仍保留在标准当中,但却无法与新的安全机制相
容。
4.4 帧发送以及连接与身份认证状态
所能发送的帧类型,依连接状态与身份认证状态而有所不同。工作站可能已经认证或未经认证,也可能己经连接或尚未连接。这两个变数的组合有三种可能状态,结果构成了802.11 的
网络发展层级:
1.初始状态;未经认证且尚未连接
2.已经认证但尚未连接
3.已经认证且已经连接
每种状态分别对应到802.11 连接的发展阶段。一开始,移动工作站处于状态1,只有进入状态3 才可以通过传输系统发送数据
4.4.1 帧等级
帧可以被划分为三种等级。在状态1 可以传递第1 级帧;在状态2 可以发送第1 与2 级帧;
在状态3 则可以传递第1、2 与多级帧。
第 1 级帧
第1 级帧可以在任何状态中传递,它让802.11 的工作站得以进行基本作业。在IBSS 当中,控制帧主要用来依循CSMA/CA 规则,以及发送帧。
第 2 级帧
工作站只有在经过身份认证之后,方能够发送第2 级帧,而且第2 级帧只能使用于状态2
与状态3。2 级帧主要用来管理连接。线或重新连接成功后,工作站就会进入状态3
第 3 级帧
第3 级帧的使用时机,是在工作站认证成功并与基站连接之后“一旦工作站进入状态3,就可以使用传输系统服务,也可以和基站范围以外的对象进行通讯。在状态3,工作站还可以利用
PS-Poll 帧享受基站所提供的省电服务。表手1 予列出了不同类型的第3 级帧。
如果所收到的帧, 来自一部已经验证但尚未连接的工作站, 基站就会应答一个
Disassociation(解除连接)帧,迫使工作站回到状态2。