802.11 帧封装细节
802.11帧主要有三类:
数据帧——好比 802.11 的驮马,负责在工作站之间传输数据。
控制帧——控制帧通常与数据帧搭配使用, 负责区域的清空、信道的取得以及载波监听的维护,并于收到数据时予以正面的应答,借此促进工作站间数据传输的可靠性。
管理帧——管理帧负责监督, 主要用来加入或退出无线网络, 以及处理基站之间连接的转移事宜。
4.1 数据帧
数据帧会将上层协议的数据置于帧主体加以传递。会用到哪些位,取决于该数据帧所属的类型。
一种区分方式:竞争式服务和免竞争服务两种数据帧
另一种区分方式: 对携带数据与提供管理功能的帧加以区别
表4-1: 数据帧的各种分类方式
帧类型 | 基于竞争的服务 | 无竞争服务 | 携带数据 | 未携带数据 |
Data |
√
|
√ | ||
Data+CF-ACK | √ | √ | ||
Data+CF-Poll | AP only | √ | ||
Data+CF-ACK+CF-Poll | AP only | √ | ||
Null | √ | √ | √ | |
CF-ACK | √ | √ | ||
CF-Poll | AP only | √ | ||
CF-ACK+CF-Poll | AP only | √ |
4.1.1 Frame Control(帧控制)
最值得注意的是那些地址位,它们的意义将因 ToDS 及FromDSbit 的值而异。
最值得注意的是那些地址位,它们的意义将因 ToDS 及FromDSbit 的值而异。
4.1.2 Duration(持续时间)
Duration(持续时间)位用来记载网络分配矢量( NAV)的值。
数据帧之 Duration 位的设定,必须依循四项规范:
1.免竞争期间所传递的任何帧,必须将 Duration 位设定为 32768。此规范适用于免竞争期间所传递的任何数据帧。
Duration(持续时间)位用来记载网络分配矢量( NAV)的值。
数据帧之 Duration 位的设定,必须依循四项规范:
1.免竞争期间所传递的任何帧,必须将 Duration 位设定为 32768。此规范适用于免竞争期间所传递的任何数据帧。
2.目的地为广播或组播地址的帧( Address 1 位设定了群组 bit),其持续时间为 0。此类帧并非基本交换过程的一部分,接收端也不会加以应答,因此竞争式介质访问可以在广播或组播数据帧结束后立即开始。 NAV 在帧交换过程中是用来保护传输介质。既然广播或组播帧之后不会有来自链路层的应答,因此没有必要为后续帧锁住介质使用权。
3.如果 Frame Control 位中的 More Fragments bit 为 0,表示该帧已无其余片段。最后的帧片段只须为本身的应答预订介质使用权,之后就可以恢复竞争式访问了。 Duration位会被设定为发送一个短帧间隔及片段应答所需要的时间。整个过程如图 4-2 所示。倒数第二个片段的 Duration 位,会为最后一个片段锁住介质使用权。
4.如果 Frame Control 位的 More Fragmentsbit 被设定为 1 ,表示其后还有帧片段。因此,Duration 位便会被设定为发送两个应答、加上三个短帧间隔及下一个帧片段所需要的时间。为非最终片段设定 NAN 的方式本质上与 RTS 相同,所以亦称为虚拟 RTS。
4.1.3 地址与 DS Bit
地址位的编号与功能取决于设定了哪个 DS(传输系统) bit,因此所使用的网络类型会间接影响到地址位的用法。表 4-2 列出了地址位在数据帧中的各种用法。只有无线桥接器才会使用第四个地址位,因此比较少见。
地址位的编号与功能取决于设定了哪个 DS(传输系统) bit,因此所使用的网络类型会间接影响到地址位的用法。表 4-2 列出了地址位在数据帧中的各种用法。只有无线桥接器才会使用第四个地址位,因此比较少见。
表 4-2:地址位在数据帧中的用法
功能 | ToDS | FromDS | Address 1(receiver) | Address 2(transmitter) | Address 3 | Address 4 |
IBSS | 0 | 0 | DA | SA | BSSID | not used |
To AP | 1 | 0 | BSSID | SA | DA | not used |
From AP | 0 | 1 | DA | BSSID | SA | not used |
WDS(桥接器) | 1 | 1 | RA | TA | DA | SA |
注意接收端和目的地并不是完全相同的。
目的地是指负责处理帧中网络层封包的工作站;
接收端则是负责将无线电解码为 802.11 帧的工作站。
源地址是指产生帧中网络层协议封包的工作站
发送端则是负责将帧发送至无线链路。
Address 3 位则是供基站与传输系统过滤之用,不过该位的用法,取决于所使用的网络类型。
4.1.4 数据帧的次类型
- Data(数据)
次类型为 Data 的帧,只有在竞争访问期间才会传输。
- Null(空)
它是由 MAC 标头与 FCS 标尾所组成。在传统的以太网中, Null帧无非就是额外的负担;在 802.11 网络中,移动工作站会利用 Null 帧来通知基站省电状态的改
变。
变。
4.1.5 数据帧的封装
4.1.5.1 IBSS 帧
4.1.5.1 IBSS 帧
IBSS 数据帧的次类型不是 data 就是 Null;后者只是用来告知目前的电源管理状态。
4.1.5.2 发送自基站( From AP)的帧
区分源与发送端所以必要,是因为 802.11 MAC 会将应答送给帧的 Transmitter(发送端 AP),而较上层的协议会将应答送给帧的 source(来源地)。
区分源与发送端所以必要,是因为 802.11 MAC 会将应答送给帧的 Transmitter(发送端 AP),而较上层的协议会将应答送给帧的 source(来源地)。
4.1.5.3 发送至基站( To AP)的帧
发送至传输系统( Ds)的帧其 ToDS bit 会被设定为 1 ,而 FromOS bit 会被设定为 0。
4.1.5.4 WDS 中的帧
4.1.5.5 经加密的帧
Frames Control(帧控制)位的 Protected Frame bit 会被设定为 1
4.2 控制帧
控制帧主要在协助数据帧的传递。
控制帧主要在协助数据帧的传递。
4.2.1 一般的帧控制位
ToDS 与 FromDS bit
控制帧负责处理无线介质的访问,因此只能够由无线工作站产生。传输系统并不会收送控制帧,因此这两个 bit 必然为 0。
4.2.2 RTS(请求发送)
RTS 帧可用来取得介质的控制权,以便传输「大型」帧。至于多大称之大型:是由网卡驱动程式中的 RTS threshold(门限)来定义。介质访问权只能保留给单点传播( unicast)帧使用,而广播(broadcast)与组播( multicast)帧只须发送便是了。
RTS 帧可用来取得介质的控制权,以便传输「大型」帧。至于多大称之大型:是由网卡驱动程式中的 RTS threshold(门限)来定义。介质访问权只能保留给单点传播( unicast)帧使用,而广播(broadcast)与组播( multicast)帧只须发送便是了。
Duration(持续时间)
RTS 帧会试图预定介质使用权,供帧交换程序使用,因此 RTS 帧发送者必须计算 RTS 帧结束后还需要多少时间。
RTS 帧会试图预定介质使用权,供帧交换程序使用,因此 RTS 帧发送者必须计算 RTS 帧结束后还需要多少时间。
4.2.3 CTS(允许发送)
CTS 帧有两种目的:1. 用于应答 RTS 帧;2.被 802. 11g 防护机制用来避免干扰较旧的工作站
4.2.4 ACK(应答)
ACK 帧就是 MAC 以及任何数据传输(包括一般传输 RTS/CTS 交换之前的帧、帧片段)所需要的正面应答( positive acknowledgment)。4.2.5 PS-Poll(省电模式一轮询)
当一部移动工作站从省电模式中苏醒, 便会发送一个 PS-Poll 帧给基站, 以取得任何暂存帧。
当一部移动工作站从省电模式中苏醒, 便会发送一个 PS-Poll 帧给基站, 以取得任何暂存帧。
AID(连接识别码):PS-Poll 帧将会以 MAC 标头的第三与第四 bit 来代表连接识别码(association ID)。连接识别码是基站所指定的一个数值, 用以区别各个连接。 将此识别码置入帧, 可让基站找出为其(移动工作站)所暂存的帧。
4.3 管理帧
4.3.1 管理帧的结构
4.3.1 管理帧的结构
4.3.2 长度固定的管理帧元件
Authentication Algorithm Number 位
Authentication Algorithm Number 位
Authentication Transaction Sequence Number 位
身份认证程序分为好几个步骤,其中包含由基站所发出的盘问口令( challenge),以及试图连接的移动工作站所做出的应答。
Beacon interval 位
每隔一段时间就会发出的 Beacon(信标)信号,用来宣布 802.11 网络的存在。 Beacon帧中除了包含 BSS 参数的信息,也包含基站暂存帧的信息,因此移动工作站必须仔细聆听Beacons 信号。 Beacon interval(信标间隔)位的长度有 16 个 bit,用来设定 Beacon 信号之间相隔多少时间单位。
每隔一段时间就会发出的 Beacon(信标)信号,用来宣布 802.11 网络的存在。 Beacon帧中除了包含 BSS 参数的信息,也包含基站暂存帧的信息,因此移动工作站必须仔细聆听Beacons 信号。 Beacon interval(信标间隔)位的长度有 16 个 bit,用来设定 Beacon 信号之间相隔多少时间单位。
Capability information 位
长度 16 个 bit 的 Capability Information 性能信息位, 发送 Beacon 信号的时候,它被用来通知各方,该网络具备哪种性能。
长度 16 个 bit 的 Capability Information 性能信息位, 发送 Beacon 信号的时候,它被用来通知各方,该网络具备哪种性能。
- ESS/IBSS(扩展服务组合/独立型塞本服务组合)
- Privacy(私响性)
- short Preamble(短同步信号)
- PBCC(分组二进制卷积编码)
- Channel Agility(机动信道转换)
- Short Slot Time( 802.llg)
- DSSS-OFDM( 802.lIg)
- Contention-free polling(免竞争轮询) bit
Current AP Address 位
移动工作站可以使用图 4-25 所示的 Current AP Address(目前基站的地址)位来表明目前所连接的基站的 MAC 地址。 这个位的用途是便于连接( association) 与重新连接( reassociation)的进行。 工作站会借此发送上一次所连接的基站的地址。 当工作站打算与不同的基站建立连接时,此位可用来转换连接,以及取回所有暂存的帧。
移动工作站可以使用图 4-25 所示的 Current AP Address(目前基站的地址)位来表明目前所连接的基站的 MAC 地址。 这个位的用途是便于连接( association) 与重新连接( reassociation)的进行。 工作站会借此发送上一次所连接的基站的地址。 当工作站打算与不同的基站建立连接时,此位可用来转换连接,以及取回所有暂存的帧。
Listen interval 位
所谓 Listen Interval,其实就是以 Beacon interval(信标间隔)为单位所计算出的休眠时间。
Association ID 位
长度 16bit
长度 16bit
Timestamp 位
用来同步 BSS 中的工作站 BSS 的主计时器会定期发送目前已作用的微秒数。 当计数器到达最大值时, 便会从头开始计数。
用来同步 BSS 中的工作站 BSS 的主计时器会定期发送目前已作用的微秒数。 当计数器到达最大值时, 便会从头开始计数。
Reason Code 位
当对方不适合加入网络时,工作站会送出 Disassociation(解除连接)或 Deauthentication(解除身份认证)帧作为应答。这些帧当中包含一个长度 16bit 的 Reason Code(原因代码)位,表示对方的做法有误,
当对方不适合加入网络时,工作站会送出 Disassociation(解除连接)或 Deauthentication(解除身份认证)帧作为应答。这些帧当中包含一个长度 16bit 的 Reason Code(原因代码)位,表示对方的做法有误,
代码 | 含义 |
0 | 保留,未使用( Reserved; unused) |
1 | 未指定( Unspecified) |
2 | 之前的身份认证无效( Prior authentication is not valid) |
3 | 工作站已经离开基本服务区或扩展服务区,目前已经解除身份认证 |
4 | 闲置计时器超时,且工作站已经解除连接 |
5 | 基站资源不足,因此解除连接 |
6 | 从尚未认证的工作站所收到的帧类型或次类型不正确 |
7 | 从尚未连接的工作站所收到的帧类型或者次类型不正确 |
8 | 工作站已经离开基本服务区或扩展服务区,目前已经解除连接 |
9 | 在身份认证完成之前要求连接或者重新连接 |
10( 802.11h) | 无法接受 Power Capability 信息元素的设定值,因此解除连接 |
11( 802.11h) | 无法接受 Supported Channels 信息元素的设定值,因此解除连接 |
12 | 保留 |
13( 802.11i) | 信息元素不正确( 802.11i 所加入的原因代码, 因此应指 802.11i 的信息元素) |
14( 802.11i) | 数据完整性检验失败 |
15( 802.11i) | 四道密钥磋商超时 |
16( 802.11i) | 群组密钥磋商超时 |
17( 802.11i) | 四道磋商信息元素的安全参数与原始参数组合不符 |
18( 802.11i) | 群组密码锁不正确 |
19( 802.11i) | 成对密码锁不正确 |
20( 802.11i) | 身份认证与密钥管理协议不正确 |
21( 802.11i) | 未支持的固安网络信息元素版本 |
22( 802.11i) | RSN IE 的性能项不正确 |
23( 802.11i) | 802.1X 身份认证失败 |
24( 802.11i) | 所设定的使用政策拒绝所提议的密钥锁组 |
25-65535 | 保留 |
Status Code 位
状态代码用来表示某项过程成功或失败。
状态代码用来表示某项过程成功或失败。
4.3.3 管理帧的信息元素
信息元素( information element)是管理帧的组成元件,其长度不定。信息元素通常包含一个 Element ID(元素识别码)位、一个 Length(长度)位以及一个长度不定的位,如图 4-31所示。 Element ID 编号的标准值如表 4-7 所示。
信息元素( information element)是管理帧的组成元件,其长度不定。信息元素通常包含一个 Element ID(元素识别码)位、一个 Length(长度)位以及一个长度不定的位,如图 4-31所示。 Element ID 编号的标准值如表 4-7 所示。
表 4-7:信息元素
Element ID | Name |
0 | 服务集标识( Service Set Identity (SSID)) |
1 | 所支持的速率( Supported Rates) |
2 | 跳频参数集合( FH Parameter Set) |
3 | 直接序列参数集合( DS Parameter Set) |
4 | 免竞争参数集合( CF Parameter Set) |
5 | 数据待传信息( Traffic Indication Map (TIM)) |
6 | IBSS 参数集合( IBSS Parameter Set) |
7 (802.11d) | 国家( Country) |
8 (802.11d) | 跳频模式参数( Hopping Pattern Parameters) |
9 (802.11d) | 跳频模式表( Hopping Pattern Table) |
10(802.11d) | 请求( Request) |
11-15 | 保留;未使用( Reserved; unused) |
16 | 盘查口令( Challenge text) |
17-31 | 保留【注 a】(在 802.11 共享密钥身份认证停用之前,保留给盘查口令未来扩充用) |
32(802.11h) | 功率限制( Power Constraint) |
33(802.11h) | 功率性能( Power Capability) |
34(802.11h) | 发射功率控制请求( Transmit Power Control (TPC) Request) |
35(802.11h) | 发射功率控制报告( TPC Report) |
36(802.11h) | 所支持的信道( Supported Channels) |
37(802.11h) | 信道切换宣告( Channel Switch Announcement) |
38(802.11h) | 测量请求( Measurement Request) |
39(802.11h) | 测量报告( Measurement Report) |
40(802.11h) | 禁声( Quiet) |
41(802.11h) | IBSS 动态选频( IBSS DFS) |
42(802.11g) | ERP 信息( ERP information) |
43-49 | 保留( Reserved) |
48 (802.11i) | 固安网络( Robust Security Network) |
50(802.11g) | 扩展支持速率(Extended Supported Rates) |
32-255 | 保留;未使用(Reserved; unused) |
221 | Wi-Fi 访问保护(Wi-Fi Protected Access) |
4.3.3.1 服务集标识(Service Set Identity( SSID))
有些文件将 SSID 视为网络名称,因为网管人员通常以字串来指定 SSID。其实, SSID 不过是由字节所形成的字串,用来标示所属网络的 BSSID。有些产品要求此字串必须是以 null(即0)结尾的 ASCII 字串,虽然标准对此并无特别规范。
SSID 的长度介于 0 至 32 字节之间。如果完全不加指定,此种特例称为 broadcast SSID;broadcast SSID 只用于 Probe Request 帧,工作站可以藉此找出该区域中所有的 802.11 网络。
4.3.3.2 支持速率( Supported Rates)
无线局域网络支持数种标准速率。 802.11 网络可以使用 Supported Rates(所支持的冻率)信息元素指定其所支持的速率。 当移动工作站试图加入网络, 会先检视该网络所使用的数据速率。有些速率是强制性的,每部工作站都必须支持,有些则是选择性的。
无线局域网络支持数种标准速率。 802.11 网络可以使用 Supported Rates(所支持的冻率)信息元素指定其所支持的速率。 当移动工作站试图加入网络, 会先检视该网络所使用的数据速率。有些速率是强制性的,每部工作站都必须支持,有些则是选择性的。
它是由一串字节所构成。每个字节会使用七个低效 bit 来代表数据速率;最高效 bit 则是用来表示该数据速率是否为强制性。如果是强制性速率,最高效 bit 为 1 ;非强制性速率则为 0。此信息元素最多可涵括八种速率。
二进制数值 | 十六进制 | 响应的速率( Corresponding rate (Mbps)) |
2 | 82 | 1Mbps |
4 | 84 | 2 Mbps |
11 (802.11b) | 8B | 5.5 Mbps |
12 (802.11g) | 0C | 6 Mbps |
18 (802.11g) | 12 | 9 Mbps |
22 (802.11b) | 96 | 11 Mbps |
24 (802.11g) | 18 | 12 Mbps |
36 (802.11g) | 24 | 18 Mbps |
44 (802.11g) | 2C | 22 Mbps (802.11g PBCC 选项 optional 802.11g PBCC) |
48 (802.11g) | 30 | 24 Mbps |
66 (802.11g) | 42 | 33 Mbps (802.11g PBCC 选项 optional 802.11g PBCC) |
72 (802.11g) | 48 | 36 Mbps |
96 (802.11g) | 60 | 48 Mbps |
108 (802.11g) | 6C | 54 Mbps |
图 4-33 显示了如何同时编码两种数据速率。除了支持强制性的 2Mbps 服务,也支持选择性的 11Mbps 服务。
4.3.3.4 直接序列参数集合(DS Parameter Set)
802.11 直接序列( Direct-sequence)网络只有一个参数:网络所使用的信道数。
802.11 直接序列( Direct-sequence)网络只有一个参数:网络所使用的信道数。