802.11MAC帧并未包含Ethernet帧的某些典型功能,其中最显著的是type/length字段以及preamble(前导码)。preamble属于物理层,而封装细节(如type与length)则出现在802.11帧所携带的标头(header)中。字段的传送顺序由左至右,最高有效位将会最后出现。
Frame Control | Duration | addr1 | add2 | Frame body |
---|---|---|---|---|
2字节 | 2字节 | 6字节 | 6字节 | 0-2312 |
所有帧的开头均是长为两个字节的Frame Control(帧控制)字段,包括以下子字段:
Protocol(协议版本)字段由两位(b0,b1)构成,用以显示该帧所使用的MAC版本。目前,802.11MAC只有一个版本,它的协议编号为0。
Type(类型)与Subtype(子类型)字段用来指定使用的帧类型。Frame control字段的第三位(b2,b3)是Type 字段,第五位(b4,b5,b6,b7)是Subtype字段。
Type与Subtype字段的值与名称:
Subtype的值 | Subtype的名称 |
---|---|
Management frame | Type=00 |
0000 | Association request(关联请求) |
0001 | Association response(关联响应) |
0010 | Reassociation request(重新关联请求) |
0011 | Reassociation response(重新关联响应) |
0100 | Probe request(探测请求) |
0101 | Probe response(探测响应) |
1000 | Beacon(信标) |
1001 | ATIM(通知传输指示消息) |
1010 | Disassociation(取消关联) |
1011 | Authentication(身份验证) |
1100 | Deauthentication(解除身份验证) |
Control frame | Type=01 |
1010 | Power Save-Poll(省电-轮询) |
1011 | RTS(请求发送) |
1100 | CTS(清除发送) |
1101 | ACK(确认) |
1110 | CF-End(无竞争周期结束) |
1111 | CF-End(无竞争周期结束)+CF-ACK(无竞争周期确认) |
Data frame | Type=10 |
0000 | Data(数据) |
0001 | Data+CF-ACK |
0010 | Data+CF-Poll |
0011 | Data+CF-ACK+CF-Poll |
0100 | Null data(无数据,未传送数据) |
0101 | CF-ACK(未传送数据) |
0110 | CF-Poll(未传送数据) |
0111 | Data+CF-ACK+CF-Poll |
1000 | Qos Data |
1001 | Qos Data+CF-ACK |
1010 | Qos Data+CF-Poll |
1011 | Qos Data+CF-ACK+CF-Poll |
1100 | Qos Null(未传送数据) |
1101 | Qos CF-ACK(未传送数据) |
1110 | Qos CF-Poll(未传送数据) |
1111 | Qos CF-ACK+CF-Poll(未传送数据) |
这两个位用来指示帧的目的地是否为分布式系统。在基础结构型网络里,每个帧都会设定其中一个DS位。具体意义如下:
意义 | To DS=0 | To DS=1 |
---|---|---|
From DS=0 | 所有管理与控制帧,IBSS里的数据帧(非基础结构型数据帧) | 基础结构型网络里无线工作站所传送的数据帧 |
From DS=1 | 基础结构型网络里无线工作站所收到的数据帧 | 无线桥接器上的数据帧 |
此位的功能类似IP的"more fragments"位。若较上层的封包经过MAC分段处理,除了最后一个片段,其他片段均会将此位设定为1。
有时候可能需要重传帧,任何重传的帧会将此位设定为1以协助接收端剔除重复的帧。
为了延长电池的使用时间,通常可以关闭网络接口以节省电力。此位用来指出发送端在完成当前的原子帧交换之后是否进入省电模式。
为了服务处于省电模式中的工作站,接入点会将这些从分布式系统接收来的帧加以缓存。接入点如果设定此位,即代表至少有一个帧待传给休眠中的工作站。
相对于固定式网络,无线传送本质上就比较容易被拦截。如果帧受到链路层安全协议的保护,则此位会被设定为1,而且该帧会略有不同。
帧与帧片段可依次传送,不过发送端与接收端的MAC必须付出额外的代价。一旦进行严格依次传送,则此位会被设定为1。
Duration/ID字段紧跟在Frame Control字段之后。此字段有许多功能。
(1)设定NAV
当第15个位被设定为0时,Duration/ID字段会被用来设定NAV。此数值代表当前所进行的传送预计使用媒介多少微秒。工作站必须监视所收到的任何帧头并据此更新NAV。任何超出预计使用媒介时间的数值均会更新NAV,同时阻止其他工作站访问媒介。
(2)无竞争周期所传送的帧
(3)PS-Poll帧
一个802.11帧最多可以包含4个地址字段。这些地址字段均经过编号,因为随着帧类型的不同,这些字段的作用也有所差异。基本上Address1代表接收端,Address2代表发送端,Address3字段被接收端用来过滤地址。举例来说,在基础结构型网络里,第三个地址字段会被接收端用来判断该帧是否属于其所关联的网络。
802.11所使用的寻址模式依然遵循其他IEEE 802网络所使用的格式,包括Ethernet,地址本身的长度有48位。如果传送给实际媒介的第一位为0,则该地址代表单一工作站(单播)。如果第一位为1,则该地址代表一组实体工作站,称为组播地址。如果所有位均为1,该帧为广播,因此会传送给所有连接至无线媒介的工作站。
这些长为48位的地址有各种不同的用途:
和Ethernet一样,目的地地址(destination address)是长为48位的IEEE MAC标识符,代表最后的接收端,即负责将帧交付上层协议处理的工作站。
这是长为48位的IEEE MAC标识符,代表传送的来源
这是长为48位的IEEE MAC标识符,代表负责处理该帧的无线工作站。如果是无线工作站,接收端地址即为目的地地址。如果帧的目的地是与接入点相连的Ethernet节点,接收端即为接入点的无线接口,而目的地地址可能是接至Ethernet的一部路由器。
这是长为48位的IEEE MAC标识符,代表将帧传送至无线媒介的无线接口。发送端地址通常只用于无线连接。
要用多少地址字段取决于帧类型,大部分的数据帧会用到3个字段:来源,目的地以及BSSID。数据帧中,地址字段的编号与排列方式取决于帧的传送路径。
此字段的长度为16位,用来重组帧片段以及丢弃重复帧。它是由4位的片段编号(fragment number)字段以及12位的顺序编号(sequence number)字段组成。控制帧未使用顺序编号,因此并无Sequence Control字段。
当上层帧交付给MAC传送时,会被赋予一个顺序编号。此字段的作用相当于已传帧的计数器取4096的模数。此计数器从0起算,MAC每处理一个上层封包它就会累加1。如果上层封包被分段处理,则所有帧片段都会具有相同的顺序编号。如果是重传帧,则顺序编号不会有任何改变。
帧片段之间的差异在于片段编号。第一个片段的编号为0,其后每个片段的编号依序累加1。重传的片段编号会保持原始的顺序编号以协助重组。
帧主体(frame body)也称为数据字段(Data field),负责在工作站之间传递上层有线载荷(payload)。在最初制定的规范中,802.11帧最多可以传送2304个字节的有效载荷。802.2 LLC标头具有8个字节,最多可以传送2296个字节的网络协议有效载荷。防止分段必须在协议层加以处理。在IP网络中,Path MTU Discovery(路径最大传输单元寻找,RFC 1191),可阻止大于1500个字节的帧的传送。
802.11与其他链路层技术不同之处表现在两个显著的方面。首先,在802.11帧中并无任何上层协议的标记(tag)可供区别。上层协议是以额外标头的type字段加以标记,同时以之作为802.11有效载荷的开始。其次,802.11通常不会将帧填补至最小长度。802.11所使用的帧并不大,随着芯片与电子技术的发展,目前没有填补的必要。
和Ethernet一样,802.11帧也是以帧校验序列(frame check sequence简称FCS)结束。FCS通常被视为循环冗余校验(cyclic redundancy check简称CRC)码,因为底层的数学运算相同。FCS让工作站能够检查所收到的帧的完整性。
当帧送至无线接口时会先计算FCS,然后再经RF或IR链路传送出去。接收端随后会为收到的帧计算FCS,然后与记录在帧中的FCS进行比较。如果两者相符,则该帧极有可能在传送过程中未受损。
在Ehernet上,如果帧的FCS有误即随即予丢弃,否则就传递给上层协议处理。在802.11网络上,通过完整性校验的帧还需要接收端送出确认。例如,接收正确数据的帧必须得到肯定确认,否则就必须重传。对于未能通过FCS校验的帧,802.11并未提供否定确认机制,在重传之前,工作站必须等候确认逾时。
WIFI基础入门–802.11–MAC基础–4
温馨提示:
以上文章描述如有不清晰之处,欢迎在评论区评论,如有时间,会第一时间回复,谢谢!