无线自组网就找WiMi-net
 

433MHz自组网和ZigBee的MAC层差异之一: CSMA/CSCA技术的本质和真相

作者:微网智控 WiMi-net来源:原创网址:http://www.wiminet.cn

为什么很多用户普遍反应ZigBee总丢包,不稳定,802.15.4是不是应该站出来背个锅呢?

提到无线自组网技术,人们第一个想到的就是ZigBee,关于ZigBee的通讯机制,人们第一个想到的就是802.15.4。从事IT行业的人都知道,凡是一串编号组成的这么个规格,那一定是美国电气和电子工程师协会(英语:Instituteof Electrical and Electronics Engineers,简称为IEEE)制定的一个技术标准,比如

802.15.1为BlueTeeth(蓝牙)

802.15.2为共存性

802.15.3为高数据传输率的WPAN

802.15.4为低数据传输率的WPAN

蓝牙技术不用说,已经经过了市场的严格检验并被广大的用户所接受,这个802.15.4名气也不小,已经接受了超过10年的市场考验,基于该规格设计的ZigBee技术却在实际的应用中表现不太理想,很多人将问题归结于ZigBee网络协议本身,其实这是不太公平的!细心的用户不难发现,即便是在范围不大的家庭或者办公室环境中组建小型网络,ZigBee的效果也不是很理想,按理说人们可以跳过ZigBee协议本身,直接使用其MAC层,也就是802.15.4来进行数据通讯,但是为什么这项技术为什么一直没有拿得出手,值得炫耀的成功应用案例呢?比如提起蓝牙,人们就会想起无线耳机和无线鼠标,提起Wi-Fi人们就会想起笔记本电脑和手机上网,那么会不会是市场根本就没有这方面的需求或者说这些应用都是虚假的,是人们的恶意炒作呢?

显然不是这样的,看看无线抄表,点菜机以及汽车遥控锁这些应用就知道了,市场不仅是大量存在的,而且还越来越火热。那么会不会是其底层的802.15.4有什么不合理的地方呢?下面我们来深入分析一下这个问题。

802.15.4技术最核心的地方其实就是CSMA/CA这个机制本身,这个技术在Wi-Fi中已经经过了百亿级别数量的严酷考验,理论上是肯定没有问题的,那么问题只能出在应用场合上了。

下面我们来看看CSMA/CA的基本工作原理

20170424-1.jpg

上图中有三种类型的站点,源站,目的站和其他站。可以看出源站和目的站在每一次报文发送之前都需要一定的保护时间,这个时间至少有三种类型:

(1)     DIFS至少5个基本时槽

(2)     SIFS至少1个基本时槽

(3)     争用窗口:2i+2个基本时槽,其中i是第i次发送重试请求

以2.4GHz的Wi-Fi为例子,一个基本时槽为10us,其SIFS时间和DIFS时间分别是10us和50us,如果一个报文重新发送了3次,那么下一次发送(即第4次重试)需要等待的时间最长可达640us,可见大部分的网络带宽不是用在传输上了,而是用在无效的等待上了!

难怪很多用户反映,Wi-Fi号称几百兆的带宽,怎么实际的传输只有1/10都不到呢?其实问题恰恰出在这里,就是白白的浪费掉了。最要命的是随着网络内部的节点数目增多,碰撞越来越严重,争用窗口的概率越来越大,网速下降也就越来越厉害了。

上面我们还是以Wi-Fi为例子来分析的,带宽动辄几百兆的Wi-Fi的有效带宽尚且如此,那么只有250Kbps的ZigBee会如何呢?从数量级上看,ZigBee的带宽至少比Wi-Fi要低1000倍,另外Wi-Fi有专门的硬件MAC层和硬件定时器,属于硬MAC,计时精度可达纳秒级别,而ZigBee技术通常是单片机驱动的,其MAC层是软件设计的,属于软MAC,其计时精度通常在毫秒级别,因此需要插入额外的保护时隙以补偿单片机的实时性误差,如此计算下来,其有效带宽至少还要打对折。

20170424-2.jpg

按照CSMA/CA机制运作的Wi-Fi来实际带宽损失来看,ZigBee的的有效带宽大约就是其理论带宽的1/20,也就是说250Kbps的原始射频速率,在CSMA/CA机制的约束下,其有效带宽只有12.5Kbps左右,即便是一个小型的ZigBee网络,只有10个节点,平均分配给每一个节点的带宽只有1.2Kbps左右!

从上述分析可以看出,CSMA/CA机制对于射频的原始带宽的浪费有多么严重!对于高带宽的Wi-Fi而言,这点浪费是可以承受的,反正Wi-Fi速度越来越快,开销之后的带宽带宽即便传输视频都是足够的,浏览网页更是不在话下。但是对于志在组建大型网络的ZigBee而言,其带宽开销开销比Wi-Fi要严重得多:

(1)     CSMA机制本身的开销,开销因子为20左右

(2)     节点数量的额开销,开销因子为N,其中N是节点的个数

(3)     整个网络总的开销因子为20* N,网络规模越大,其开销越厉害

从上述分析可以看出ZigBee定位于低成本,低速率,低功耗的传感网不是没有原因的,在这个理论的范围之内,应用效果应该还是有保证的;超出了这个理论范围,由于碰撞急剧概率成指数放大,MAC层传输失败的几率将会急剧上升,高层的ZigBee协议无论怎么努力,整个网络的效果自然不会太理想。