本文测试数据主要基于SILABS的应用文档"AN1142 - 网状网络性能对比"。
前言: 蓝牙Mesh在阿里的大力推广下,2018/2019出货巨大,直接跳至千万级量;Zigbee的江湖地位已经收到严重威胁;而Thread作为新秀,能否黑马逆袭?我们先看看三个网络技术层面的特点及性能
目录
- 三种Mesh网络概述
- 吞吐率和延时性能对比
- 网络性能对比
- 总结
01
三种Mesh网络概述
首先,我们看下三种Mesh技术的概览及网络模型,如图1,2,3,4。
本文的测试,均是Silabs在研发中心实际环境测试,具体可参考上篇文章。
02
吞吐率和延迟测试比拼
吞吐率及传输延时的测试在一个稳定的6Hop拓扑下进行(通过衰减器搭建的稳定的6跳网络),测试节点拓扑如下图。本测试结果主要取决于协议栈本身的PHY及MAC的特性;
本测试针对未分段8bytes小数据传输下的性能及100Bytes的大数据传输下的数据吞吐率性能进行了验证。分别如图5和图6;我查了下Thread和Zigbee的MAC层结构,都是按照802.15.4的MAC和PHY;由于文档中没有针对具体的数据收发情景做出说明,图5与图6显示Thread能够有更好的结果,大概率与Thread的最终PHY数据包结构有关系;有深入看过协议的朋友可以分享下~
而蓝牙由于分包机制,在大数据包情况下,数据吞吐率,嗯,非常稳定;
同时,针对小数据包的数据通信延时如图7,这里不得不说,凭什么拿20Bytes的Thread和50Bytes的ZIGBEE对比? 这点不理解?
接着, SILABS针对4HOP的拓扑下的不同数据长度做了延时的对比,结果如下,简单而言,由于Payload的增大,不同拓扑的分包机制带来的传输延时会成比例增加。当然,我也不理解为什么结果中,ZIGBEE与蓝牙Mesh均是 点状结果+ 预估趋势线而 Thread则是实线? 且Thread分包带来的影响如此之小??
图 8 - 4 Hops下不同数据包延时对比
03
网络性能测试
针对Mesh网络实际应用,实际环境下的不同大小网络的性能,也是验证协议栈性能及稳定性,实用性的重要方面;Silabs的网络性能测试,基于如下不同大小的网络,测试100包不同大小数据的传输延时及数据包成功接收比例;
小型网络: 24节点
中型网络:1~48节点
中型网络:2~96节点
大型网络:1~144节点
大型网络:2~192节点
> 24节点网络性能测试
测试结果如下图10,三种网络在约100ms内完成100个数据包的传输,而可以看到的是Thread总体完成时间更快更高效;
而如果增大数据包大小,Thread和Zigbee采用50Bytes,蓝牙Mesh 32 Bytes情况下,测试结果如下图11。可以看到Thread还能够在稳定的100ms内完成,而Zigbee时间明显的增加,蓝牙Mesh则呈现出了按时间平均分布的传包率,延时大大增加;从这个结果,结合蓝牙基于Flooding的技术,基因决定蓝牙Mesh适合小数据包?
> 192节点网络性能测试
随着网络增大,存在的冲突会增加,跳数会增加,对应会导致传输延时的增加;192节点小数据包的传输延时如下图12,这里需要注意的是,蓝牙Mesh有~3%的数据包超过250ms才完成传输(有多少传输最终失败就不清楚了,也不明白为什么蓝牙不能是5Bytes)
随着数据包的增大,分包导致的冲突阻塞,25Bytes下(蓝牙16Bytes)的测试结果如下图13
04
总结
总体来说,本篇应用文档的测试合理性,数据测试及统计具体方法,分析,信息都不够;应用文档里面也有说明,ZIGBEE 他们从2006年开始,Thread从2015,而BLE Mesh从2017,他们针对不同协议的优化程度都不一致;
但是从协议角度看, Thread与Zigbee基于同PHY和MAC,其特性类似;但是蓝牙Mesh由于采用了Flooding技术,其在大网络及大数据包情况下,显得更力不从心;
然而,针对家庭类的情景,考虑到数目有限,加上智能设备出于移动过程中,BLE Mesh这种“游击网”比起ZIGBEE和Thread的"阵地网",还是会有部分的加层优势。这也是除去阿里这样企业推动Mesh生态外,Mesh发展迅速的原因。
欢迎添加个人V好友,沟通交流无线技术的应用。 (更多内容可关注公众号 智联网事)