Thread使用经过实践验证的标准和IPv6技术,以6LoWPAN为基础,为产品开发人员提供了优于现有无线协议的许多技术优势。Internet运行在 IP 之上。IP 技术使手机、路由器以及全球各地的设备相互通信,与具体的接入链路无关。 Thread为智能家居中的低功耗无线设备提供IP接入,使其更容易与家庭中的其它IP设备(如智能手机,平板电脑和计算机等)进行通信,以创建和控制Thread网络。
在此过程中,Thread设备不需要专有网关或转换器,就可以直接连接到与其互操作的其它设备。这减少了对基础设施的需求和投资,潜在的故障点和维护负担。它还使依赖任何额外的Thread产品更容易连接到手机和平板电脑等个人设备。 因为在同一个IP网络中,Thread设备间不需要借助手机即可相互通信。使用其它技术的设备可以通过集线器或网关与Thread设备进行交互。
Thread与其它IP网络技术结合,可以无缝连接众多供应商的各种基于IP协议的物联网终端设备,与各种云服务通信,可以同时运行多个应用层,如Matter,LWM2M,OCF或Weave。
测试目标与方法
本文对用于评估Thread网状网络的性能、可扩展性和可靠性的一系列测试进行了介绍。除对Thread消息延迟和可靠性进行介绍外,还对测试条件和基础设施进行了介绍。本测试是在测试网络中真实的无线设备上进行的,并非模拟环境。
进行本测试是为了对不同的网络技术进行对比,以便更好地理解其用法并推而广之。不同的网络和系统设计对设备和网络的要求不同。因此,没有哪个网络能够满足所有的网络要求。然而,本文对比了三种网状网络技术,人们热衷于将这些技术应用于低功耗和电池供电的网状网络,以对家庭和商业建筑进行监控。
在分析网络性能数据时,通常会考虑可以对网络进行哪些改进,从而提高性能。由于有关当今大型网络中网状网络性能的公开数据有限,因此很难在行业层面上就可能的改进或变化进行讨论。举例来说,在商业建筑中,以下问题令人关切:
其他网络流量,因为可能有许多相互干扰的子网。
来自常规建筑的Wi-Fi 基础设施的无线干扰,因为这些技术通常在2.4GHz ISM频段运行。
网络吞吐量和延迟以及大型网络多播延迟和可靠性,因为多播通常用于密集办公环境中的照明控制,并且系统用户期望照明控制可以快速响应。
注:本文测试结果仅限于在正常运行条件下或在特定测试中注明的压力条件下对系统性能进行比较。本文并未明确解决系统干扰或其他类似的干扰的最终方案,尽管这些干扰已在其他已公布的测试结果中得以解决。但是,测试是在Silicon Labs的研发办公场所中完成的,其RF 范围内有100多个Wi-Fi接入点。此外,该场所还配置了300节点的Zigbee照明网络,用于正常照明控制。
Thread测试网络及环境
为了最大限度地降低不确定性,设备测试也会在固定拓扑中进行,射频路径通过分路器和衰减器连接在一起,以确保拓扑不会随着时间和测试而改变。此方法用于7跳测试以确保网络拓扑。MAC地址过滤也可以用于实现网络拓扑。
典型的有线测试配置如下图所示:
图1. 抽屉内有线RF设备(带有分路器和同轴电缆连接)
大型网络测试最好在开放环境中进行,因为在这样的环境中,设备行为基于现有的RF条件和不断变化的RF条件。Silicon Labs的研发场所被用作这种开放环境的测试,Silicon Labs的研发场所包括:带电梯井的中央核心区、大楼西端带有开放楼层的其他服务区、以及东端的办公室和会议室。整个研发场所宽约120英尺,长约200英尺。研发场所布局请见下图。较暗的线条为实墙,其余则为隔间分区。
图2. 用于无线测试的Silicon Labs研发场所布局测试设备安装在研发场所周围的不同位置。这些设备都具有以太网通道连接,以实现以下功能:
固件更新
命令行接口
脚本运行
时序分析
数据包捕获
能耗测量
下图中的测试簇包括以下内容:
六个EFR32MGxx设备
多频段支持,以测试2.4 GHz(PCB天线)和私有sub-GHz协议(外部天线)
图3. 典型的测试簇测试簇分布在整个场所的不同位置、开放区域以及封闭的会议室和办公室。
图4. Silicon Labs研发场所中的测试簇此测试网络可定期添加或删除设备,但在开展本测试时,该网络包含以下设备:
EM35xx设备
EFR32MGxx 设备
这些用于开放环境下测试的网络设备也同样被网络和软件质量保证团队使用。所有设备都由中央测试服务器和基础设施控制,允许工程师进行脚本回归测试或手动测试。
吞吐量及延迟测试
吞吐量和延迟的测试在受控网络(有线配置)内进行,以测试不同包负载下的每一跳。
配置通常能测试到7跳。测试是通过一个源节点和一系列目的节点来完成的,并允许改变跳数。
本测试通过以下配置完成:
带有确认的CoAP可确认型消息
包负载从10字节到最多300字节不等,以10字节为增量进行延迟测试
使用Leader作为源节点,从1到7跳
仅传输1个包
考虑ack时序后,应尽可能快的发送
以毫秒为单位测量往返延迟(源节点到目的节点再返回到源节点)
对于每一个不同的网状网络而言,随着包负载的不断增大(如前所述),会产生不同的包分片。能否使用更大的包负载长度取决于应用层,但这里提供了比较数据以说明产生包分片时的相对性能。
Thread多跳延迟
Thread延迟测量采用给定负载大小的CoAP消息的往返时间。
图5. Thread EFR32–CoAp平均往返延迟时间在该多跳延迟测试中,以下几点值得注意。
在1跳、包负载最大300字节条件下,Thread的往返延迟维持在50毫秒以下,表现出色。
即便在最大7跳、负载为300字节条件下,EFR32的往返延迟也小于200毫秒。
对于负载在单个包(50-60字节)内的大多数应用来说,Thread可以维持在最大7跳的100毫秒以内往返延迟。
Thread网络测试和网络规模
为了在尽可能少的受控条件下验证协议栈性能,需要采用更大的开放网络测试环境。这些网络被部署在Silicon Labs的普通办公场所内,这些办公场所有常见的Wi-Fi干扰、其他运行的网络、楼宇控制系统。测试不会尝试屏蔽这些网络RF干扰。
用于测试每个协议栈的网络如下:
小型网络:24台设备
中型网络:1–48台设备
中型网络:2–96台设备
大型网络:1–144台设备
大型网络:2–192台设备
注:对于以上任意一种测试来说,针对某组指定的测试,测试网络中具体的设备数量可接受的浮动范围为+/-10%。大型网络中的测试是在设备的SoC模式下完成的。
这些网络中的设备都是墙电供电设备,特别针对休眠终端设备的测试除外。
对于这些网络,测试将验证一组通信条件下的可靠性和延迟。测试的目的是对100多条消息进行测试,但为了可靠性,也会使用10,000条消息进行更长时间的测试。测试中会使用相同的设备,以保持不同测试下的网络拓扑和密度是相似的。实际的空中条件会有所不同,这在这些测试中无法控制。
Thread大网络测试结果
Thread测试是使用最新版本的Silicon Labs Thread协议栈完成的。
下图说明了Thread网络的多播行为。Thread网络将路由器的数量限制在32个(含)以内,而且随着网络增长或条件变化,作为活动路由器的设备也会随着时间而发生变化。非活动路由器的设备也被称为具有路由器资格的终端设备(REED),这些设备作为RF常开子设备。初始设备发送广播,RF范围内的所有路由器以及以该初始设备作为父设备的任何REED设备都可以听到该广播。Thread规范要求REED与单个主要父设备同步,但同时也要至少与三个其他父设备同步以提高多播可靠性。
Thread设备采用32-64毫秒的多播退避机制,之后设备才会中继多播。
图6. Thread多播时序-EFR32 5字节负载和网络规模
图7. Thread多播时序-EFR32 25字节负载和网络规模
图8. Thread多播时序-EFR32 50字节负载和网络规模测试结果如下:
不同网络规模的Thread网络行为是非常一致的,延迟随着包大小的增加而增加。
Thread延迟不会随着网络规模的增大而延长,这是因为路由器较少,因而网络中较少出现拥堵现象。
Thread在多播性能方面通常比Zigbee快一些,当网络规模增大时速度更快。
这些测试均证明了100%的可靠性,但以下更大规模的测试则说明了网络的可靠性。
以3秒的间隔进行测试,以与上面的Zigbee结果一致。Thread上较短的时间间隔不能显示出性能差异,因此有必要运行下文提及的可靠性扩展测试,采用0.5秒广播间隔,以显示测试结果。
总结
Thread具有出色的可靠性和延迟,比通常200毫米的人机交互时间还短。即使在多播、大型网络条件下,Thread网络也能在0.5秒内完成流量处理并确保延迟和可靠性。即使网络规模增大,Thread的网络行为也几乎没有什么变化,这归功于网络层对于路由器的灵活配置。在某种程度上这是预期的,这是因为Thread设备采用了更新的架构,可以以更高的时钟速度运行,而且有更多的RAM用于包处理。随着包负载的增长,网络延迟也会增加,但在5、25和50字节的负载测试中这种影响却很小。
评论
查看更多