所有的节点都有路由和终端的功能。有线网络几乎完全不可能是 Mesh 网络拓扑,而无线网络则很可能是 Mesh 网络拓扑。相对于有线网络,无线网络有两个重要不同点:
- 由于无线信号的传播性质,无线网络把节点之间的多连接变成现实。而在有线网络里由于成本太高或者不容易布线等因素,把网络中每两个节点都用电缆相连几乎是不可能的。
- 无线网络节点之间的无线链路往往受到噪声、干扰的影响,相对于有线网络,无线链路具有不可预知性和不确定性
无线 Mesh 网络需要解决的一些难题:
- 无线链路的访问 – 既然所有的节点都共享同一无线链路资源,对链路的监听比发送更重要。如果有两个以上的节点同时在发送就会产生报文碰撞,导致没有节点都能正确接收。因此,无线 Mesh 网络节点的链路层必须有很好的碰撞避免机制。
- 路由的发现 – 由于无线环境和网络的拓扑在不停的变化,因此选择无线 Mesh 网络中节点间的路径变得非常困难。通常的做法有两个:提前选择好整条路径;或者每前进一步都重新选择下一步的路由。通常是这两个做法相结合,首先是每一步都选择路由,在整条路径建立完毕,就可以按照建立好的路径进行传输数据。
- 应对环境的变化 – 在无线特别是移动的环境中,节点间的无线链路可能不断的消失或者重新出现。无线 Mesh 网络需要大量的路由的维护工作。
- 低功耗 – 由于采用无线的方式,节点往往没有电源线,只能采用电池供电,因此需要有效的措施降低功耗。通常采用的电源管理的方法是在节点不工作的时候进入睡眠或者待机状态。这个方式听起来很好,但是节点在睡眠的时候无法接收也无法发送,需要解决节点睡醒的时间同步等问题
我们从可靠性、可裁剪性、吞吐量、功耗、安全性、以及成本去比较目前业内几种不同的Mesh 网络的综合性能。
可靠性 – 报文能够在规定时间内到达目的节点的概率。如果,所有的报文都能在规定的时间内到达目的节点,则是非常可靠的网络。在实时性的要求不苛刻的情况下,报文能否到达目的节点可以作为可靠性的度量依据。下面列出了评估无线 mesh 网络的几个因素:
- 频率灵活度 – 对网络周围潜在的频率干扰的检测和避免的能力。
- 报文丢失 – 报文在节点之间向前传递的过程中是否会有丢失的可能。网络可以通过重建路由选择别的路径的方式去尽可能的避免报文的丢失,并且能够丢弃通过不同路径接收到的重复报文。
- 自愈性 – 用来描述网络根据节点的位置变化和无线信道的不稳定因素去动态改变路由的能力,在路由变化同时能够防止报文的丢失。
- 节点故障 – 网络中的一些节点出现故障会对网络造成怎么样的影响,怎样去恢复网络的功能。
和协调器,设备的类型不同对功耗的要求也有所不同。一般来说会要求终端设备有最低的低功耗,这是因为这些设备最有可能远离市电。其次是路由器,对于采用电池供电或者能休眠的路
由器来说会增加网络拓扑的不确定性。对功耗要求最低的是协调器,这些设备通常采用固定电源而不是电池供电。对于能休眠的节点需要计算平均功耗,需要关注醒来的频率和醒来的时间,
以及射频发射的时间和接受的时间。因为,设备在射频发射时往往消耗的功耗最大,因此有效降低射频发射时间至关重要。
络的规模跟实际应用和网络的稳定性有很大的关系。如果一张 mesh 网络不会遇到路由失效的问题,路由表项不需要去维护而且很有效率,也几乎不会发生错误重传的问题,这样的稳定网
络规模可以很大。可裁剪性还需要依赖网络传输的数据类型和数据量,可以分为 3 种数据类型:少量数据、突发数据和流数据。少量数据是指周期很长、数据量不大的周期性数据。流数据是
指不间断的固定流量的数据。如果 mesh 网络仅传输少量数据那么网络规模可以很大,而且对于节点能够休眠的网络也很容易处理。但是对于需要传输流数据的 mesh 网络,网络规模相对要小而且很难对节点的应用休眠机制。
然后是认证,怎么去验证伪造的节点,典型的手段是通过密钥的交换和数字证书。最后是授权,就是通过密钥和数字证书的认证的结果决定是否给予权限。另外,还有其它与认证和授权相关
的参数。
说,情况会有些复杂。比如,有些 Mesh 网络不支持路由器休眠仅支持终端休眠,需要通过部署不能休眠的路由器等设备来支持终端设备的休眠;另外一些 Mesh 网络的终端具备路由的功
能而且能够睡眠。即使所有终端、路由器等设备的价格相同,不支持路由器休眠的网络所需的设备数量要远大于支持路由器休眠的网络。因此,整个网络的设备成本不能单看每个终端设备的成本。
点对多点
其实是一个简单的星型网络而不是一个真正的 Mesh 网络,但经常被看作最简单的 mesh 网络。这种网络的空口调制方式常见是跳频扩频和直接序列扩频方式如 802.15.4。需要指定网络的
PAN ID、路由和安全策略。终端节点都和中心路由节点进行通信,终端节点之间不直接通信。终端节点可以睡眠而中心路由节点不能睡眠。
典型的网络结构如下图所示,所有的节点都在相同的物理信道或者相同的跳频信道。网络的带宽和吞吐量的瓶颈在于中心节点的并发能力。对于大数据量或者节点数目很多的网络,空口报
文碰撞会很显著,需要采用一定的分时、轮询的机制来避免碰撞的发生。
理带宽可以达到很高的利用率。理解和管理起来很容易。对于特定的应用,由于协议很简单,设备成本很低。
通过寻找新的路由等方式进行自我修复。
ZigBee 的物理层和链路层是基于 802.15.4 标准,用的是 2.4GHz 的 DSSS 调试方式。网络有3 种设备组成:可以休眠的终端、不能休眠的路由器以及一个用于启动和控制网络的协调器组
成。ZigBee 标准有三个不同的版本:2004,2006 和 2007。其中 ZigBee 2004 不再使用,并且 ZigBee 2006 有很多的局限性。ZigBee 2007 引入了很多关键特性如:频率跳变、消息分
片、密钥的管理等。网络的路由结构是之前提到的分簇树型,路由的发现和维护工作由每簇的簇头节点(路由器)来实现。终端节点之间不能直接通信,必须通过路由器中转。网络的路由
维护开销小,但是网络中需要大量的路由器。在路由器之间建立路由,路由协议采用 AODV 算法。
ZigBee 网络由三种典型的设备组成。每个网络需要一个 ZigBee 协调器(ZC – ZigbeeCoordinator)用来初始化整张网络。网络初始化完毕之后,协调器就转变一个路由器。
够从有干扰的信道切换到别的信道。由于支持报文的分片,因此能够传输长度很长的数据报文。支持分布式的密匙,网络的安全性很好。最后,网络的规模可以很大。
期间网络几乎瘫痪。由于节点间的路由链路利用率不高,网络的吞吐量不高,大数据量时报文的碰撞明显,会有潜在的数据的丢失。最后,协调器需要启动和管理整个网络,如果协调器不
能工作,则就不能增加新的节点甚至网络瘫痪。
传。每个消息都有 ACK,通讯的可靠性高。网络的规模可以达到 1000 个节点左右。安全策略包括加密和授权。
因此网络的吞吐量很低,尤其在网络中有突发数据流量的情况下。一个上电的网关必须要时刻都能正常工作,如果网关不能工作那么整个网络在一个时间片周期之后便会瘫痪。最后,和其
它的 Mesh 网络相比设备成本非常昂贵。
输报文大小只有 128 字节而不是 IPv6 标准的 1280 字节,以便能用在内存有限的低廉设备中。到今天为止,还只是一个点对多点的系统,但基于 Mesh 路由的草案正在讨论之中。
由网络远端的宿主计算机分配。图中终端设备的网关提供在数据链路层的协议转换和报文的拆装。
缺点:系统非常新目前只是一个草案。因为目前还在公众评审阶段,将来可能会有很多的变化。事实上,Mesh 路由工作组目前正处在组建阶段,因此该协议被广泛应用前还有很长一段路要
走。因此,能与 Internet 互联目前只是个构思,还没有证明其可能性。由于该协议还不成熟,目前还没有相关的产品问世,估计产品的价格不会便宜。
和 Wireless HART 很相似,DigiMesh 也是为低功耗的传感器网络所设计的,每个节点都具备路由功能且都可以用电池供电。DigiMesh 可以工作在多个频段如 2.4GHz DSSS 和 900MHz
FHSS。该协议在 2.4GHz DSSS 频段工作时并不完全遵循 802.15.4 的物理层和数据链路层的标准。路由协议采用类似 AODV 算法,路由表在需要时才被建立,网络的拓扑结构是 Peerto-Peer mesh 而不是 ZigBee 网络的分簇树结构。所有的节点的地位都是平等的,每个节点都可以具备路由的能力并且都可以睡眠。碰撞避免采用的是时间同步的 CSMA 算法。有安全策略。
DigiMesh 的网络拓扑结构如下图所示,为典型的 Ad Hoc 网络结构。DigiMesh 的路由只有在需要时才去建立,而不像 ZigBee 网络中的路由器之间的路由是时刻被维护的。DigiMesh
网络中不是使用的路由不会占据路由表项,路由在每次使用时都会进行更新。DigiMesh 为了支持休眠节点之间的睡醒时间片必须进行同步,节点间的时间同步有专门的节点向全网广播同
步报文来实现。为了实现自治的目的,负责时间同步的节点并不是协调器或者网关来完成,由提名机制在网络节点中选举产生。
的带宽。支持频率的跳变和安全机制加密和鉴权。支持报文分片。
Z-Wave 是针对家居自动化应用定制的 Mesh 网络协议,射频采用 FSK 调制方式,波特率为9.6Kbps 或者 40kbps,发射功率最大为 0dBm,工作频率为 868.42MHz 或 908.42MHz,链
路层有碰撞避免机制。Z-Wave 网络节点数目最多为 232 个,每个控制节点都有唯一的 4 字节网络地址,Z-Wave 网络会为每个组网设备动态分配 1 字节的节点地址。设备类型大致分为控
制节点和受控节点两种,支持休眠节点和可移动节点。对休眠的支持采用异步模式,节点间不需要同步时间片。支持单播、多播和广播,其中单播是可靠的而多播和广播是不可靠的。
Z-Wave 网络拓下图所示的 Ad Hoc 网络。Z-Wave 网络中控制节点拥有全网的拓扑结构并计算路由,受控节点不能自己计算路由但具有报文转发的能力。Z-Wave 采用“源路由”的路由
方式,控制节点在发送命令时根据全网路由表计算出一条最佳路径,并将路由信息内嵌在命令报文中一起发送。Z-Wave 网路有可以有多个控制节点但只能有一个主控节点,只有主控节点有添加和删除网络设备、分配网络地址的权利。
缺点:网络规模很小,最大支持 232 个节点的网络。应用领域狭窄,主要针对家居自动化应用,报文长度很短用来发送命令信息。工作方式简单,控制节点和受控节点之间主要以应答模式为
主。网络需要一个主控节点作为网络的中心节点,负责网络节点的地址分配和网络拓扑结构。如果主控节点不能工作,网络就会瘫痪需要重新初始化网络才能正常工作,而网络初始化需要
相当长时间。另外虽然支持可移动的控制节点,这里移动其实是便携的意思与移动自组网是完全不同的概念。
WaveMesh 是为低功耗、低成本的 MANET(Mobile Ad-Hoc Network 移动自组网络)所设计的 Peer-to-Peer Mesh 网络协议。与其它的 Mesh 网络协议不同,WaveMesh 是唯一能够
有效支持节点快速移动的网络,数据流能够在节点移动过程中无缝地在不同的路径之间切换。WaveMesh 物理层可以采用不同调制方式和不同频段,链路层采用先进的碰撞避免算法,能
够自动信道跳变和速率自适应,网络层采用私有路由协议 OLDM(On-demand Light-weightDynamic Multipath)。WaveMesh 是一个完全分布式的网络,所有节点的地位都是平等的,
没有中心节点,所有节点都够休眠,都具备路由能力。
WaveMesh 网络拓扑结构如下图所示,路由协议 OLDM 是多径路由协议,每个节点都会维护到其它节点尽可能多的路由,网络节点间的路由数量要远远大于其它的 Mesh 网络。节点能够
实时感知拓扑结构的变化,在现有路由失效之前主动发现的新路由,能够支持快速移动的网络。对休眠的支持有两种模式:同步模式和异步模式,两种模式可以灵活切换以适应不同的应用需
求。支持上万节点的超大规模网络,不需要网络初始化过程,即插即用。网络层和物理层有智能的并行机制,网络吞吐量比其它网络高很多倍。支持单播、多播和广播,其中单播是可靠的
而多播和广播是不可靠的。
证了路由的健壮性和高吞吐量。报文的转发采用 ACK 应答的方式保证了可靠性。组网速度快,不需要进行网络初始化,网络规模大,支持频率跳变、速率自适应和安全机制。休眠节点可以
工作在同步模式或者异步模式,并且在两种模式下灵活转换,采用特有的 MAC 层全网唤醒技术进行时间片的同步。另外产品价格低廉、应用领域非常广泛。
一些应用要求无线 Mesh 网络节点使用电池供电能正常工作很多年,对节点的功耗要求十分苛刻。上述的 Wireless HART、DigiMesh 和 WaveMesh 网络全部节点都可以休眠并且都具备
路由功能。Z-wave 网络也能支持部分节点休眠并且具有报文转发能力。ZigBee 网络的终端节点也具备休眠的能力但不具备报文转发和路由的能力。在这里对不同的 Mesh 网络所采用的休
眠技术进行简单介绍。
ZigBee 2007
终端设备是 ZigBee 网络中唯一能都休眠的设备,由于终端设备在休眠的时候不能接收到无线信号,因此需要路由器或者协调器为终端设备缓存数据报文。当终端设备加入网络时,必须要
选择一个路由器或者协调器作为父节点组成父子关系。当终端设备醒来时会主动向自己的父节点询问是否缓存了属于自己的数据报文,父节点在收到请求后会向终端节点返回 MAC 层的
ACK 报文告诉终端是否有缓存报文。当终端节点被告知没有缓存的数据报文时,终端可以再次进入休眠或者待机模式。如果有缓存的数据报文,则终端继续处于工作模式接收和处理属于自
己的报文。这种终端轮训的机制可以使终端在没有数据传输的情况下有效地减少功耗。终端设备只能与自己的父节点进行通信,无论是单播还是广播报文终端都转发给其父节点,有父节点
代表终端进行路由查找和报文的转发。
由于父节点的内存空间有限,缓存报文和路由信息很有可能会耗尽父节点的内存。ZigBee 引入超时机制,如果超时发生父节点会删除缓存的报文甚至删除与子节点的父子关系,不同类型
的报文可以有不同的超时时间。从这个角度来看,ZigBee 协议的 MAC 层并不能保证可靠性。
- 支持多种网络拓扑,比如点对点,点对多点,自组网;
- 低工作占空比能力,提供长电池供电的可能;
- 低延迟;
- 采用DSSS扩频技术;
- 每个网络最高可支持65,000节点
- 128-bit AES 加密
- 碰撞避免,重试和应答确认
的链路信息进行管理和广播。可以允许多个不同周期的“超级帧”同时存在,以满足周期性和非周期性的传输需要。节点间的链路可以被某个实时性要求高的应用专用,也可以被很多应用
共享物理带宽。时间被划分为 10ms 为单位的时间片,所有节点的时间片完全同步的。时间片是进行数据传输的基本间隔单位,可以在一个时间片进行多次数据交换。数据收发必须在一个
片内节点可以休眠。
由数据链路协议数据单元(DLPDU)和带有时间信息的 ACK 报文连续进行全网 TDMA 的时间片的同步。最开始,节点刚加入网络并不知道当前时间,可以通过接收到 DLPDU 报文的时间
计算出下一时间片的起始时间。当节点再接收到 DLPDU 报文时会比较自己与发送节点的时间差,接收节点会在相应的 ACK 报文中添加时间调整信息。接收到 ACK 报文的节点需要根据报
文中的时间信息调整时间片。网络的每个节点都需要指定一个节点作为时间源获得时间同步信息。在时间片同步失效的情况下,节点采用过采样的方法把将时间片长度缩短为正常值的 1/2-
1/10 以减小重新同步的时间。
DigiMesh 网络是周期性的休眠网络,所有节点按照同步的方式在同一时刻进行睡眠和醒来。由睡眠协调器节点向全网广播同步报文实现时间片的同步,睡眠协调器在每个醒来时间片开始
时刻发送一个同步报文,收到同步报文的节点对该报文进行中继实现全网广播。为了实现网络的自治目的,睡眠协调器由网络中的普通节点采用“提名和选择”的方式产生。DigiMesh 支
持三种休眠模式,正常模式、周期睡眠模式和睡眠支持模式,其中正常模式和睡眠支持模式并不能睡眠,而且正常模式节点不能和周期睡眠模式、睡眠支持模式节点混合组网。
同步报文包含本次睡醒周期的醒、睡时间长度,因此 DigiMesh 的睡醒时间片可以变化。新上电的节点会一直不停监听网络直到接收到一个同步报文,实现与网络的同步。同步失效节点会
主动减少在醒来时间片内发送报文并且增加醒来时间片的长度,还可以主动发送报文请求同步报文,但这样做会大大降低电池的续航能力。另外,改变睡醒时间片的参数会大大增加节点同
步失败的可能,对于最坏情况节点可以需要很长的时间才能重新同步。
Z-Wave 在 ZDN5.0 版本后开始支持特定类型的休眠节点,但不是全部的节点都能休眠,休眠节点的时间片是异步模式。节点的睡醒时间点不需要进行同步,但节点的时间片是固定的长度,
间隔为 250ms 或者 1s。对休眠节点的唤醒采用延长物理层报文特殊前导信号的方式,休眠节点会在休眠周期结束之后自动醒来很短暂的时间间隙监听网络,如果检测到特殊的前导报文则
会推迟睡眠进行报文的接收和处理。唤醒休眠节点的特殊前导称之为 beam,其持续时间需要大于或者等于休眠节点的休眠周期。Beam 的结构如下图所示:
个 beam 分片都携带者剩余 beam 分片数目,接收节点可以重新进入短暂的休眠并在 beam结束前重新醒来接收之后的报文。这就要求 Z-Wave 节点有高精度的时钟并且对芯片物理层的
能力有较高的要求。由于 Beam 的持续时间是固定的,休眠节点间的睡醒时间片同步的越好Beam 唤醒所带来的系统时延就越大。
WaveMesh 网络节点的休眠有同步和异步两种模式,不同模式有各自的适用场景,而且两种模式可以随时转换。WaveMesh 支持不休眠节点和休眠节点混合组网。
同步模式下,网络中节点的睡醒时间片是严格同步的,时间片的同步由网关或者指定节点向全网广播同步报文实现。同步报文在醒来时间片的结束时而不是在开始时进行发送,同步报文指
定点本次休眠时间片的长度而不指定下次醒来时间片的长度。WaveMesh 网络不去假设和预测当前网络的负荷,网络中若没有数据传输时便可以立即进入休眠而不需要等待某个预定的时
间片结束,也不去限制网络中数据传输必须在某个时间点结束。同步模式下节点休眠时间片和醒来时间片的长度是动态变化的。
异步模式下节点睡醒周期是固定的,但节点睡醒的时间点不需要进行同步,节点的睡醒周期长度可以根据需要设定。WaveMesh 网络采用特殊的 MAC 全网异步唤醒技术,对整个网络每个
节点的时间片进行同步,从异步模式转变成同步模式。全网异步唤醒技术最大的特点是唤醒速度快,唤醒所用的时间几乎是确定的,和网络节点密度以及网络的规模没有太大关系。对于单
播来说,仅需要对于单点进行唤醒, WaveMesh 采用重复发送短唤醒报文的方式。与 ZWave 的 Beam 唤醒方法相比,WaveMesh 降低了对射频芯片物理层的要求同时大大缩短了
唤醒时间。当不同节点的时间片同步的很好时,唤醒带来的时延就可以忽略。
同、异步模式对于节点来说没有本质的区别,都是按照时间片进行周期性睡醒。新上电的节点默认为异步模式。异步模式下的节点在接收到同步报文时会自动校准自己的时间片变成同步模
SmartMesh IP 网络拓扑结构
SmartMesh IP 网络由高度可扩展的自成形多跃点无线节点网格和网络管理器构成,无线节点称为智能微尘,用于收集和中继数据;网络管理器用于监控和管理网络性能和安全,并与主机应用程序交换数据。
图4 网络拓扑结构
除了常见的“网格模式”外,SmartMesh IP 还支持一种称为闪烁模式的超低功耗漫游节点功能。
SmartMesh IP 智能微尘
SmartMesh IP 智能微尘是 SmartMesh IP 网络中的无线节点。它们连接到传感器/致动器并路由来自其他智能微尘的数据,同时保持低功耗。
每个智能微尘都可以发送和接收消息(支持双向数据)。每个智能微尘可以有不同的数据报告速率,网络管理器会自动协调各个成对通信以便高效地路由流量。
每个智能微尘可以有不同的供电能力(例如线路电源、电池电源或能量收集电源)。网络管理器会相应地对流量进行负载平衡以便将时间延长至网络的第一次电池更换。
SmartMesh IP 网络管理器
SmartMesh IP 网络管理器针对网状网络执行两种主要功能。首先,它们充当接入点微尘,将无线网状网络连接到客户主机应用。其次,网络管理器运行复杂的网络管理算法以保持网络的性能。
SmartMesh IP 网络管理器具有两种版本:EManager(支持多达 100 个智能微尘,可以运行于嵌入式设备上)、VManager(支持多达 50,000 个智能微尘,运行于 x86 虚拟机 (VM) 上运行)
蓝牙Mesh
蓝牙mesh并非无线通信技术,而是一种网络技术。蓝牙mesh网络依赖于低功耗蓝牙。低功耗蓝牙技术是蓝牙mesh使用的无线通信协议栈。
- 单播、组播和广播:蓝牙网状网络支持单播、广播和组播,以支持单一节点、组或整个网络的通讯需要;
- 多路径:蓝牙网状网络通过继电功能来发送有管理广播信息,以提供多路径传送消息管理信息泛滥的问题;
- 消息存活时间(TTL):TTL用于所有蓝牙网状网络消息,以控制消息将被中继时的弹跳(hop)数;
- 消息缓存:消息缓存由所有节点执行,用于防止最新接收的消息再次被传输;
- 中继具选择功能:不是所有的节点都需要执行中继功能。
中继功能:可中继信息,扩展蓝牙网状网络的范围和规模,属于选项功能
低功耗功能:休眠和轮询(polling)朋友节点讯息,轮询间隔时间可从毫秒到4天
朋友功能:可执行消息缓存(cache)的附加功能,以支持低功耗节点
代理功能:可启用蓝牙网状网络和GATT设备之间的讯息代理功能
低功耗节点和Friend节点
在蓝牙Mesh网络中,低功耗节点可以通过减少射频收发机(RF transceiver)开启的占空比来达到低功耗的目的,这些低功耗节点只有在需要进行消息收发的时候才会打开射频收发器,其他时间都处于休眠状态。
在蓝牙Mesh网络中还有一类节点是专门为低功耗节点服务的,其具有Friend特性,也可以称为Friend节点。Friend节点与低功耗节点可以建立Friendship关系。建立此种关系之后,Friend节点可以暂存发往低功耗节点的信息,待低功耗节点退出休眠模式之后,再从Friend节点取回相关信息。
在实际应用中,Friend节点可以是灯泡、机顶盒、路由器,这些设备都是通过市电供电的,对于功耗不是很敏感;低功耗节点可以是由电池供电的设备,如传感器等。
基于低功耗蓝牙mesh模块SKB369,功耗极低!
Thread 协议
现在,三星、Nest、ARM又联手推出了一种新的协议Thread。不知道Thread会加速行业统一标准形成,还是让原本已经够乱的通信协议更加“剪不断、理还乱”。
现在比较常用的网络协议有WiFi、蓝牙、ZigBee、Z-Wave,不过都有不足:
- WiFi的功耗比较大,适合传输大量的数据;
- 蓝牙功耗比较低,但现在还存在蓝牙2.0与蓝牙4.0并存的混乱局面,且不支持IPv6(蓝牙版本4.1以下);
- ZigBee布线比较复杂,更适合商用;
- Z-Wave由丹麦公司Zensys主导,暂时还没有ZigBee联盟强大。
不少大公司都在呼吁、倡导建立一个新的或者统一的新标准,这其中就包括了半导体生产商Freescale(飞思卡尔)、混合信号器生产商 Silicon Labs。
这次三星、ARM、Nest三家公司,强强联手,推出Thread,改进了上述协议中的不足,通过6LoWPAN技术支持
IPv6
。Thread可支持250个以上设备同时联网,能够覆盖到家中所有的灯泡、开关、传感器和智能设备。优化了功耗,超低能耗,设备可以运行数年。此外,Thread是基于ZigBee的,也就是说原有的ZigBee设备只需更新软件即可兼容Thread。综合来看,Thread很可能像Homekit、高通的
开源框架AllJoyn一样,是一种在顶层工作的顶层架构。
采用在本文之前描述的比较准则对几种不同 mesh 网络做出尽可能准确的比较结果。
比较范畴 | 点对多点 | ZigBee 2007 Pro (1.0协议) |
Zigbee 2016 (3.0协议) |
Wireless HART | 6LoWPAN | DigiMesh | Z-Wave | WaveMesh | SmartMesh IP | 蓝牙Mesh | Thread |
可靠性 -跳频机制 -丢包率 -自适应性 |
★★ | ★★★ | ★★★★ | ★★★ | ★★★ | ★★★ | ★★★★ | ★★★★ | ★★★ | ★★★★ | |
电源管理 -休眠策略 -节点功耗 |
★★ | ★★ | ★★★ | N/A | ★★★ | ★★ | ★★★★ | ★★★ | ★★★★ | ★★ | |
可裁剪性 -网络规模 -路由开销 -覆盖范围 |
★ | ★★★★ | ★★★ | N/A | ★★ | ★ | ★★★★ | ★★★ | ★★★★ | ★★★★ | |
吞吐量 -数据速率 -并行机制 -延时 |
★★★★ | ★★ | ★ | N/A | ★ | ★ | ★★★★ | ★ | ★★★ | ★★★★ | |
安全 -加密 -认证 -授权 |
★★★ | ★★★★ | ★★★ | ★★★★ | ★★★ | ★★★ | ★★★ | ★★★ | ★★★★ | ★★★★ | |
成本 -芯片成本 -维护成本 |
★★★★ | ★★★ | ★ | ★★ | ★★★ | ★★★ | ★★★★ | ★ | ★★★★ | ★★ |
引入了频率跳变和报文分片机制。对于 Wireless HART 和 WaveMesh 网络从设计的角度来说,网络不会丢弃任何报文,因此可靠性比较高。而 ZigBee 和 DigiMesh 网络的报文有被丢弃的
可能。对 6LoWPAN 可靠性的评估是基于现有的 TCP/IP 协议族。
对于电源管理能力,Wireless HART、DigiMesh 和 WaveMesh 都能支持全部节点包括路由节点在内都能进行休眠,相比较之下 WaveMesh 的休眠技术比较灵活。ZigBee 和 Z-Wave
只能支持部分节点休眠:ZigBee 的终端设备可以休眠;Z-Wave 网络中传感器类设备可以休眠。对点对多点系统的评估参考了 Wi-Fi 和 Bluetooth 网络的电池的续航能力。
WaveMesh 采用完全分布式的 peer-to-peer Mesh 拓扑结构可以支持几万点的网络规模,并且采用私有 OLDM 路由协议,路由开销很小。对于 Wireless HART 和 DigiMesh 网络可以支
持几百点的规模,网络规模再变大网络性能就会迅速降低。Z-Wave 只能支持最多 232 节点的网络规模。点与多点网路显然在这方面是最差的,所有节点必须在中心节点的无线信号覆盖范围之内。
络高出很多倍甚至远远大于点对多点网络。WaveMesh 网络支持节点休眠,尽管休眠在一定程度上带会来延时,但有特殊的全网唤醒机制能在必要时可以在很短时间内唤醒全网。
Wireless HART、DigiMesh 和 Z-Wave 系统为了支持节点休眠却牺牲了网络的吞吐量并且增加了传输时延。对于 ZigBee 来说由于路由器不能休眠,路由器之间的链路相对稳定减少了系
统的处理延时,但是 ZigBee 分簇树状网络拓扑结构路由器之间物理带宽要在很多终端节点间共享,这就大大降低了网络的吞吐量。
对于安全性,上述的几种 mesh 网络都是加密、认证和授权机制,基于 AES-128bits 的加密算法。ZigBee 和 6LoWPAN 系统的安全性比较灵活、协议详细并且易于实现。
对于成本,主要从硬件成本如芯片的价格和软件成本如开发和维护费用两个角度来考虑。点对多点和 WaveMesh 系统芯片选择非常灵活,市场上的芯片资源比较丰富;另外这两个系统的
软件实现也相对简单一些,维护成本也最低。ZigBee、DigiMesh 和 Z-Wave 协议规定了物理层需要选择特定的芯片,成本稍高一些。而 Wireless HART 的芯片供货商少,其价格是别的网
络的 10 倍左右。对 6LoWPAN 成本估计主要根据 TCP/IP 协议栈的复杂度对内存容量和处理器能力的要求等。
我们介绍了几种不同拓扑结构的无线网络基础并给出 Mesh 网络的评估方法,之后就几种不同的 Mesh 网络做了介绍,并根据我们给出评估方法对这几种 Mesh 网络进行了比较客观的比较。
由于很难有统一的尺度去衡量不同的 Mesh 网络,不同的网络也有自己独特的优势。实际应用中只能根据自己的实际需要多种因素综合考虑,选择能满足需要的最佳网络。不能否认,在不同的评估准则之间会有一个灰色地带,比如功耗、可靠性和吞吐量之间的权衡。随着市场和技术的发展,将来的比较结果可能会和本文中现在所得出的比较结果迥然不同。
<wiz_tmp_tag id="wiz-table-range-border" contenteditable="false" style="display: none;">