来自Wi-Fi专家的声音

 

Wi-Fi 演变史上残留的过时规范

撰写于:2013年12月25日
作者:silex Wi-Fi专家

上期讲解了WiFi的连接步骤…其中提到了扫描、关联、认证、漫游等话题,其中提到“由于WiFi是分阶段发展的,所以到处都留有过时的规范”。这次就简单地(全部网罗的话会没完没了)介绍一下, 那些wifi遗留的“过时规范”的痕迹。

这次主要从Management Frame的Capability Information Field中残留的规格(Capability Bit)中,对现在不怎么使用的规格进行解说。另外,这次也特意使用了“WiFi”这个术语,严格来说IEEE802.11无线网络规格书中记载的定义和Wi-Fi Alliance要求标志认证的规格定义是不同的。

PCF(Point Coordination Function)
计算机网络有各种连接形式(树形、环形等),而无线网络是所有节点共享通信介质的“总线型”。在总线型网络中,两台以上的节点不能同时发送,所以需要某种通信时序控制机制。WiFi可以使用DCF(Distributed Coordination Function)PCF两种方式。

DCF是指各节点在一定期间内监听“谁都没有发送吧?我可以发送吧?”(进位侦听),如果有人发送的话,在延迟随机时间后再尝试(退避)的方式,这样的实现和设定较为简单,在节点数少的时候能够高速运行,相反节点数增加时因相互冲突反而会降低效率。

PCF与此相对,一台节点(协调器,通常是AP)拥有主导权,“请××发送。结束了吗?那么接下来请××发送”这样指示发送时机的方式,类似于有线网络中被称为“令牌”的方式。PCF的缺点是,安装麻烦、在台数少(碰撞概率低)时无法表现出最高性能。PCF的优点是在台数多(碰撞概率高)时,可以抑制碰撞、避免极端的性能下降。

PCF/DCF是在WiFi教科书中经常出现的话题,但现实中大部分AP都只安装了DCF。价格昂贵的商用AP中也有安装PCF的情况,但是STA端 (PC或智能手机)能否按照PCF的规格运行还是个未知数。但是PCF的部分功能和想法作为QoS(质量服务)机制被写入IEEE802.11e/WMM(WiFi多媒体)规范中。不过,在无线通信需要频带保证的情况下,现在一般使用WMM,而不是PCF。

CFP(Contention Free Period)
PCF通信方式中使用时序参数。根据定义和上下文的不同,也有可能是Contention Free Parameter的缩写,但基本上都是相同的意思。PCF模式不是单个比特,而是Capability信息的3个比特(QoS、 CF-Pollable、CF-Poll Request)来设置动作模式,详细内容就不赘述了(参考IEEE802.11-2012 section8.4.1.4)。

短前导码
前导码(Preamble)是指在发送数据前加上一定模式的重复,利用该模式进行收发器之间的时钟同步。虽然在技术定义中“前导码”通常不包含有意义的数据,但为了方便,作为WiFi术语的“前导码”多指在“前导码”中包含分组头(PLCP头)的情况。

原始802.11 DSSS规范中的前导码是PLCP报头部1Mbps调制的192μs,不过,801.11b中作为高速化选项追加了2Mbps调制96μs的模式。现在将其称为短前导码,因此将原始802.11兼容192μs的模式称为长前导码来区分。

STA将其自身是否能够处理短前导码设置为Capability Bit,并通知AP,AP将其设置为Capability Bit,并通知周边是否允许在受管理的网络中使用短前导码。

因为短前导码在802.11g以后必须安装,因此,使用802.11b规格的专用设备或带有超标准的802.11 DSSS专用设备时,不会出现“如果不使用长前导码就不能保证兼容性”的问题。另外,以802.11g的OFDM速率进行通信时,与长/短前导码使用不同规格的ERP-OFDM 前导码(20μ秒)(※注),因此现在长/短前导码的区别没有太大的意义。另外,5GHz频率原本不需要802.11/b兼容,始终使用ERP-OFDM,也就没有长/短前导码的概念。
(※注)但是也有例外。有关详细信息,请参阅以下DSSS-OFDM描述。

Barker前导码模式(Barker Preamble Mode)
802.11g以后的2.4GHz频带中由AP通知的信息之一,是表示AP连接的设备中是否有不支持短前导码的STA的信息。如果Barker前导码模式=1,则至少有一台AP连接下的节点无法支持短前导码,因此禁止使用短前导码。相反等于0时允许使用短前导码(※注)。如上所述,只能接收长前导码的设备现在非常罕见,所以很少有成为1的情况。

Barker前导码模式是“超出”Capability Bit的信息之一,在扩展信息要素(IE:Information Element)的编号42号“ERP”IE”中表示。另外,“Barker Code Spreading”这个奇特的名字来源于802.11 DSSS和802.11b CCK调制使用了11个芯片的Barker扩频码序列算法(Barker Code Spreading)。802.11b兼容1-11Mbps的通信必须使用Barker码,并没有“Barker前导码模式”这种特殊的通信模式。倒不如说“启用短前导码”这个名字更容易理解,但我不知道为什么要特意在这里采用算法来命名。本来“AP连接下的短前导码的启用/禁用”的功能和CapabilityBit的短前导码比特重复,但为什么802.11g特意追加了重复的功能也不太清楚。
(※注)但是,短前导码的使用只是“被许可”,长前码的使用并不是被禁止,所以802.11b速率也有可能经常发送长前码(Forced长前码)。但是,即使在这种情况下,也必须能够接收短前码。

Short Slot Time
802.11b和802.11g混合控制功能之一。虽然与前导码很容易混淆,但短/长前导码是为802.11(DSSS)和802.11b(CCK)兼容性而定义的,而Short/Long Slot Time是为802.11b和802.11g(以后)兼容性而定义的。Slot Time是WiFi运行时定义的基础时间单位之一,例如已出的载波侦听时间定义为SIFS+2x Slot Time(※注)。

802.11b的Slot Time=20μs,802.11g为了提高速度新增加了9μs的Short Slot Time选项,所以为了区别,20μs被称为Long Slot Time。AP监视连接下属是否存在802.11b(802.11g不兼容)节点,如果存在,则Capability Bit的Short Slot Time=0并对连接下属的节点要求使用Long Slot Time。另外,和前导码一样,5GHz频带没有Long Slot Time的定义,总是使用Short Slot Time。

虽然现在只支持802.11b的设备已经很少了,但和罕见的802.11 DSSS设备相比,运行数量还是很多的,Long Slot Time的淘汰(Short Slot Time= 1)还需要一点时间。
(※注)SIFS(Short Interframe Space)是另一个基本时间单位,在2.4GHz频带定义为16μs,在5GHz频带定义为10μs。802.11n追加了将其缩短为2μs的RIFS(Reduced Inter Frame Space)模式,又增加了新的种类。

ERP-PBCC(Extended Rate PHY-Packet Binary Convolutional Coding)
802.11g从802.11a导入QAM调制和OFDM传输方式的规格,进行了高速化(ERP:Extended Rate PHY),但实际上此时也采用了PBCC的方式。PBCC是既不是OFDM也不是扩频的(经典的)单载波传输方式,调制速度为16.5M码元/秒x8-PSK(3bit/码元)调制,基频为49.5Mbps,根据编码率的不同,具有22Mbps和33Mbps的数据速率,对于802.11b正好是2倍速、3倍速。

PBCC由Alantro Communications公司开发,据说后来被德州仪器公司收购。这种模式被纳入802.11g标准的经过和背景我多少能想象出来,但具体情况我不太清楚。如前所述,PBCC的通信原理既不同于DSSS,也不同于OFDM,因此为了支持PBCC,必须安装收发器的附加电路,这对开发成本和产品单价都有影响。而且如果实现的性能低于OFDM的话,可以说完全没有实现PBCC的意义。PBCC在IEEE802.11-2012规格书中也作为选项被保留了下来,但是我认为今天没有任何产品使用它。

DSSS-OFDM
这是802.11b到802.11g过渡期提出的规格。如上所述,WiFi(DCF)通过载波侦听进行发送定时控制,但这并不是经常监听“现在这个瞬间是否有人发送”,而是在发送开始时的前导码(中的PLCP头部分)中包含“从现在开始发送多少微秒”的信息,所以利用接收到的PLCP头计算退避时间。

那么,802.11中使用的DSSS(+BPSK/QPSK)和802.11b中扩展的CCK是使用相同的Barker码的扩频方式,前导码格式完全相同。但是802.11g的OFDM+(BPSK/QPSK/QAM)从频率的利用形态来看是完全不同的通信方式。802.11b/g设备还可以接收802.11b前导码,而802.11b设备不能接收802.11g前导码。因此,如果802.11b和g的设备混合在一起,如果11g在发送的过程中不能检测到冲突就发送,就会发生冲突,导致“互相冲突和干扰”的概率很高。

DSSS-OFDM是为了避免这种情况而提出的格式,在以802.11g OFDM速率(6 ~ 54Mbps)通信时,只有前导码和PLCP报头是DSSS中发送,然后用原本的OFDM发送数据主体(MPDU),这样11b节点也能收到11g分组的载波感知效果,目的是降低冲突。STA将DSSS-OFDM Capability Bit设置为DSSS-OFDM Capability Bit,并通知AP是否可以收发DSSS-OFDM。AP在连接下属的DSSS-OFDM Capability Bit中设置DSSS-OFDM Capability Bit并通知周围设备。

如果使用DSSS-OFDM,802.11g模式的吞吐量将降低,这是11b/g冲突的代价。802.11g相对于本来的ERP-OFDM前导码占用时间约20μs,DSS-OFDM长前导码占用192+12μs,短前导码占用96+12μs。另外,“+12”是在通信途中从DSSS切换到OFDM的开销。

DSSS-OFDM也在IEEE802.11-2012规格中作为可选项目,但实施的产品并不多。与PBCC不同,DSSS-OFDM可以通过现有电路的组合来实现,不过,DSSS-OFDM适用时吞吐量降低不少,即使802.11b设备混在一起发生碰撞,“也不是不能用”(特别是在消费者市场),不过有很多时候“甚至都不知道存在这样的问题”,因此,802.11b专用的设备在不断减少。

Channel Agility
802.11b中提出的扩展功能,是为了应对特定频率干扰(tone jammer)而考虑的。在使用DSSS/CCK调制的同时,中心频率(信道)每隔一段时间就会不断切换,导入了跳频(FH)的方式。这个功能在IEEE802.11 -2012中作为选项保留了下来,但被认为是802.11b模式(HR-PHY)的功能,802.11g以后不适用,事实上Capability Bit中“0”的比特是过时的规格。

Radio Measurement
这也是Capability Bit中残留的过时规格之一。无线局域网在不知道系统如何铺设运用会出现什么问题的时代,只要让终端(STA)具备电波使用测量功能,根据基站(AP)的指令进行测量和报告,就可以使用整个区域的电波。能够把握状况,并根据测定结果采取功率增减、数据速率和信道变更等适当的应对措施。STA通过设置Capability Bit的Radio Measurement来通知AP具备测量能力。

在IEEE802.11-2012规范中,Section 10.11被用于Radio Measurement功能,其中包括大量的(26页)的篇幅进行了详细的解说,但实际上几乎没有产品实现了这一功能。即使收到了测定结果,也很难实现自动分析并采取“适当应对”的功能。即使将来实现了这样的功能,其中所使用的测量、报告机构也会与802.11 Radio Measurement不同。

总结
我认真地调查了一下平时“不知道是什么,经常跳读”的功能,结果发现比想象中还要费事(虽然从中可以窥见WiFi背后的历史,很有趣)。我想对短/长前导码、DSSS-OFDM模式有误解的人也不少吧。在写这篇文章的时候,不仅参考了IEEE802.11规范书的原文,还参考了谷歌搜索的结果。

虽然这次没有提到,但是802.11n规格中又追加了可选功能。这是由十几家主要公司联合三个标准化组织(WWiSE、TGnSync、MITMOT)进行了长达3年的标准化争论,IEEE802.11n标准的制定也被不断延迟,这是混乱的迹象。对于802.11n规范中过多的选项,IEEE似乎也认识到了问题所在,802.11ac规范中废除了很多实用价值较少的选项。例如802.11n被称为“真正的高速模式”的Greenfield mode也被取消了。对于不断增加的可选配置,认为“适可而止吧”而望而却步的工程师来说,这是值得肯定的事情,即使如此,WiFi配置也留下了很多过时规格。

当我做这种工作时,我有时会感到虚无主义,想知道为什么人们会一遍又一遍地犯同样的错误?20世纪80年代,将世界上所有的计算机以统一规格进行整合连接的OSI项目像通天塔一样崩溃,之后也用IPv6重新连接世界,Java的WriteOnce Run Everywhere构想,用SOAP/XML连接任何东西的.NET构想,最近只要有HTML5就不再需要 APP之类的梦想。每次成立标准委员会的时候都会发生类似宗教战争的派系斗争,或者大家凑到一起把想到的“好”的可选规格放进去,像电话簿一样的规格书堆积如山。在实现之前热潮就消失了,被遗忘了,那个时候趁着下一个热潮又进行了宗教战争,制作了一堆式样书。

我已经过了为这种事时而欢喜时而忧愁的年纪。无论出现什么状况,都不会再有“这是一场伟大的革命!世界将因此而改变!”“为什么流行那种无聊的东西?大家都被骗了!”这种生气的心情,而是抱着“那我做什么好呢?只要你说什么我都做”的心情。 



嵌入式无线LAN模块产品介绍页面