ZigBee Router 概念

来源:互联网 发布:php debug pack怎么用 编辑:程序博客网 时间:2024/06/08 16:53

4.1 概要

        基于网络及其传输模型,ZigBee有几种不同的路由机制,应用程序开发者应该选择其中一种作为系统架构和应用设计的一部分。但在实际运用中,有可能会选择多种路由机制,因为一些设备可能执行一对一的通讯,而其它设备可能需要和集中器设备通讯,讨论的路由类型如下:

        a.路由表

        b.广播路由

        c.多播路由

        d.多对一/源路由

        ZigBee和ZigBee Pro协议栈有不同的路由机制

4.1.1 路由表

        ZigBee Pro协议栈不会用树状路由来进行消息中转,通过发送路由请求命令去发现一个节点到另一个节点的路径来建立路由,当两个节点间的路由建立完成后,源节点会根据路由表发送消息给路由链路中的第一个节点,每个中继路由节点用自身的路由表,将消息转发至下一个节点(这就是一跳),沿着路由链路直到到达目的节点。如果路由失败,则将返回路由错误给源节点并重新发现路由。

4.1.2 广播路由

        广播路由是一种发送给网络中所有节点的路由机制,网络层的广播操作可以是只发给路由节点或者也发给睡眠终端设备的。广播消息被网络中有路由功能的设备重复三次以确保能发送给每个目的设备,虽让广播是一种可靠的发送数据的方式,但是会影响网络性能,所以需要谨慎使用。对于终端设备而言,广播也不是一种可靠地方式,因为其父设备可能在它唤醒之前把接收到的消息丢弃。

4.1.3 多播路由

        多播路由是一种一对多的路由操作,一个多播消息用于一个设备想发送消息给一个组内的全部设备,如:一个开关发送一个ON命令给一组的10个灯,基于此机制,虽然其他设备会转发这个多播消息,但是只有加入这个组的设备才能收到这个消息,应该只有在必要的时候才使用这种机制,因为过度使用广播消息会降低网络性能。

4.1.4 多对一/源路由

        多对一路由是一种简单的机制,能够使整个网络中的所有设备都有到集中控制器的路径,基于普通的路由表机制,中心及其周围的每个设备都需要路由表去存储网络拓扑结构中的下一跳,但是这样对于内存空间有限的设备是不利的。

        基于多对一路由,中心设备叫做“concentrator(集中器) ”,发送一个路由发现命令,并在每个路由设备上建立一个到集中器的路由表条目,这类似于路由表,但是是一个many-to-one的路由请求,而不是许多单个的请求,一对一的路由请求是朝向集中器 的。

        仅仅用了一个路由表条目,就使得网络中的所有设备都有到集中器的路由链路的下一跳地址,但是往往集中器也需要回消息给网络中其他设备,这会导致要增加路由表大小,特别是(网络拓扑结构中)越靠近中心设备的路由设备,因为他们是集中器设备到网络中的其它设备的中继节点。相反,如果集中器接收到消息之前,先收到路由记录消息(存储路由链路上每一跳的序列),然后集中器存储这些路由链路的每个下一跳序列的逆序作为源路由,并存储在本地的源路由表中,集中器发出去的消息的网络头中都包含这个路由记录,这个消息会根据路由记录进行中转消息而不是用路由表,所以在大型网络中,对所有设备而言都不要增加内存。


0 0
原创粉丝点击