Wi-Fi极限谈1:最大传输距离的“标准”答案

Wi-Fi极限谈1:最大传输距离的“标准”答案

序言

看到有不少讨论Wi-Fi技术极限的内容,可能大家对于Wi-Fi的极限能力一直都比较有兴趣。所以我在这里整理一些Wi-Fi极限的“标准”答案,顾名思义,这里的标准答案并不是现实里面Wi-Fi到底能实现到什么程度,这个随着技术进步实际上一直都在增加,属于没有一个定式的答案。我们这里说的“标准”答案,就是从Wi-Fi协议,就是802.11协议里面,目前可以推导出的答案,也就是802.11协议的理论极限值。

本文我们就首先探讨一下Wi-Fi的最大传输距离,我们的主要关注点是协议的MAC层,关于物理层的部分,实际上可以有很多技术提升传输距离,比如说天线,波束,接收信号放大等等,实际上可操作性的余地比较高,主要还是成本因素限制,而MAC层更多是规则,而且是固化到IC中的,所以无法修改。所以我们的关注点在MAC机制上。

ACK Timeout与远距离Wi-Fi

我们知道一个802.11的传输过程首先是要Backoff,然后竞争到信道以后,传输DATA并接收ACK,如下图所示

远距离Wi-Fi一般都是点对点传输的,所以没有竞争的问题,所以Backoff过程中并没有太多影响传输距离的因素。

主要因素在ACK上:标准的802.11协议中,当发送者发送完Data(如上图Packet A)之后,等待SIFS的时间。在这SIFS时间内需要接收到对端的ACK,否则就会认为ACK Timeout,需要进行重传。

这里SIFS与协议版本有关,参考Wiki上的时间总结,我们先不关注802.11ah/ad,因为工作模式和标准的802.11有所区别。先关注标准的802.11,比如a/b/g/n/ac。

Remark:802.11ah/ad的内容可以参考最后的计算方式自行计算,本文讨论的主要是802.11的主体协议。

上表中,我们以802.11ac的SIFS做一个计算距离,我们这里假设无线信号在空气中的电磁波传播速率为299792458m/s。

那么802.11ac的理论最远距离就是299792458m/s * 16us = 4.7967km

如果超越了这个时间,那么就会因为距离的传播延迟,接收不到对端的ACK,从而无法正确传输。

这种无法正确传输在一些不需要高保真的内容传输下,问题还局限于性能低下。如果接收方能够成功接收数据,但是发送方由于时延无法接收到ACK的话,那么发送方会重传7次,最后丢包,然后传下一个数据帧。虽然对性能造成影响,但是起码还能够传输。但是如果是一些高保真的内容,在802.11以外做了ACK要求的话,那么就有可能会出现不断重传的死循环了。

那么上面的计算是不是最终值呢?给出这个问题答案肯定就不是了。我们前面是以SIFS作为示例,描述了传播时延(也就是距离因素)对802.11的MAC层传输造成的影响,在802.11协议中,就有传播时延(Air Propagation Time)这个参数,所以我们下面关注一下。

Air Propagation Time

在802.11中就有Air Propagation Time这个参数,该参数与Slot的大小和SIFS都有关系,通常在协议中,我们默认该参数是<<1us,因为1us的传播延迟大约覆盖为200m左右的空间,而Wi-Fi的覆盖范围也是这个大小的。

该参数在协议中的含义为:距离最远的节点与节点,其两者之间的最大传播时延。

但是在802.11协议中,在Country information element这一个参数中,有一个Coverage Class field,该参数实际上是可以设定Air Propagation Time的。如下图所示:

我们可以在该图表中发现,在802.11协议的制定的时候,就有设置出对于不同覆盖范围,采用不同的Air Propagation Time的设置。

在上表中,最大传播时延是93us,那么我们现在可以计算:

802.11的理论最大距离299792458m/s * 93us = 278.8040km

从而我们就计算出了标准下的最大传输距离了。

Air Propagation Time与SIFS

然而,我们前面也说了,这是协议中的最远距离的“标准”答案。但是这一块由于实际应用非常稀少,所以协议一直都存在一个bug(笔者自己认为)。

在DCF一篇《802.11协议精读2:DCF与CSMA/CA2》中,我们已经说明Slot和SIFS的构成了。

aSIFSTime= aRXRFDelay(射频延迟)+aRXPLCPDelay(物理层头部接收延迟)+aMACProcessingDelay(MAC层处理延迟) + aRxTxTurnaroundTime(发送接收天线转换时间)

aSlotTime= aCCATime(CCA时间)+aRxTxTurnaroundTime(发送接收天线转换时间)+aAirPropagationTime(传播延迟)+aMACProcessingDelay(MAC层处理延迟)

这里需要注意的是,SIFS中没有考虑到Air Propagation Time,这就是和我们前面说的ACK Timeout问题不符合了。这里ACK Timeout的问题挖掘出来是在现实里面,10Km距离点对点部署的时候发现的,而估计标准中并没有考虑到这一点。

Slot时间是根据前面说的Coverage Class field动态调节aAirPropagationTime,进而调节Slot时间的,参考如下:

标准中在Slot内部考虑Air Propagation Time的原因是在于backoff counter的同步倒数,大家都是按照同一个时间间隙后退的,否则就会造成不公平。所以在Slot内有这样一个设计,而SIFS的内容就没有过多设想。这一块在标准的更新中,基本长年是没有变化的。按照道理,SIFS内也应该考虑到Air Propagation Time。

不过目前,这一切在协议中说法还算是自洽的,在FH物理层部分Air Propagation Time的描述中

我们可以看到,Air Propagation Time和SIFS的时间约束关系协议还是认知的,这句话的来源实际上是最早1997版本的802.11协议了,一直保留到现在。

在后来的802.11协议中,实际上这点就很弱化了,比如下面的定义

关于802.11ah里面,SIFS时间是160us,不过其中Air Propagation Time考虑的时间是6us,实际上也是满足SIFS的要求的。

综上,我们讨论了在802.11协议中,标准给出的最大传输距离的答案,仅仅可以作为一个理论的参考。实际情况下,这么远的距离还无法做到,或者说,即使可以用Wi-Fi做,也没有要用Wi-Fi的必要性了,完全可以跑别的协议。


本文为原创文章,如需转载须注明出处和原文链接。

欢迎大家关注我们的微信公众号:无线技术大讲堂,请搜索公众号(must_wireless)。

编辑于 2020-04-03

文章被以下专栏收录