序言
前一节我们讨论的802.11ah中的MAC头部压缩,本节我们讨论802.11ah中的Short Beacon。其实这几个设计都是围绕着压缩帧大小这个话题展开的,目的明确。理解这几个设计可以加深对于802.11相关字段的理解。
Short Beacon的意义
为什么要特意压缩Beacon大小呢?主要有两点原因:
- 1)Beacon是周期性发送的帧,按照802.11协议设计,每间隔TBTT时间,AP就需要发送一个Beacon帧。
- 2)Beacon是一个广播帧,该帧的发送默认都是按照最低支持速率发送,从而造成Beacon帧的发送会耗费较多的空口时间。
Beacon实际上是在802.11协议工作过程中,占据了不少空口资源。因此,将beacon大小压缩的话,能够节约不少的空口资源时间,提高网络运行效率。
Remark:这里有一点需要注意的是,在802.11ah中并不是所有的Beacon都是用Short Beacon模式发送的,有一部分时间也需要发送传统长度的Beacon。只不过Short Beacon占所有Beacon中的比例较高,而传统长度的Beacon所占比例较少。
802.11 Beacon简述
我们首先看下标准的802.11 Beacon的结构,如下图所示
标准的Beacon属于管理帧,该帧主要有三个部分:
- MAC Header:在标准的802.11中,Beacon的MAC Header是通用的MAC Header。所以基本没有什么额外要讨论的内容。不过有一点需要注意的是,Beacon的MAC Header里面既有DA也有SA,而我们对比下802.11ah Beacon的MAC Header的话,只有SA而没有DA地址。标准的802.11中有DA的主要原因是协议还有一种工作模式叫做IBSS,也就是ad-hoc自组网的工作模式。这个模式虽然现在已经不怎么用了,但是早期协议设计中,这个场景是重点考虑的。在IBSS场景中,Beacon也会在多个IBSS节点间互相对发,用这个做同步。这种场景下就有DA了。
Beacon在MAC Header以外都是按照Element形式构造的,在Beacon中还包含了两种,一共是必有的,一种是可选的。
- Manatory Element Fields:必有的Element包含了4个元素,时间戳,Beacon间隔(即TBTT时间),Capability Info还有SSID。其中时间戳是用于时间同步的,Beacon间隔是用来说明Beacon发送间隙的,其余两个是信息,用于发布给节点获知的。在权威指南里面,这4个元素都是必有的,但是在wireshark解析里面,只有时间戳和beacon间隔解析成必有,其他都是可选的。
- Optional Element Fields:还有一些其他的Element就是可选的Element了,比如TIM,国家码,TPC功率控制,加密设置有关的RSN之类的,这里就不展开了。
那么标准的802.11 Beacon大小为 24B(MAC Header)+8B(Timestamp)+2B(Beacon Interval)+2B(Capability Info)+32B(SSID)+ 4B(FCS)= 72B,这里SSID的大小是动态的,协议中的范围是0~32B。
802.11ah Short Beacon
下面我们看下802.11ah的Beacon,即S1G Beacon。
从整体结构而言,802.11ah的Beacon和传统的Beacon基本是一样的,基本元素都在,只是内容压缩了一些。首先是DA删掉了,这点前面说过了。时间戳由8B降到了4B,Change Sequence是802.11ah独有的。
然后原有的固有字段Beacon Interval(即上图中的Next TBTT),SSID(即图中的Compressed SSID)都变成可选字段了,而且Compressed SSID的大小限制为了4B,降低了大小。这里由于修改了一些固有字段,结合上一篇文章中所述的Frame Control的功能含义,所以相比于标准的802.11,802.11ah Beacon中的Frame Control也是有特殊性的,如下图所示
其中关于Next TBTT字段是否显示,Compressed SSID是否显示,都在Frame Control中有所体现。其余的字段由于都与其具体应用有关,所以这里就不展开了。
所以在802.11ah中,一个S1G Beacon的最小大小为2B(Frame Control)+2B(Duration)+6B(SA)+4B(Timestamp)+1B(Change Sequence)+4(FCS)= 19B。对比下标准的802.11 Beacon的最小大小72B,802.11ah的Beacon大小还是减少很多的。