ZigBee路由相关

1. 定义及概述
       路由的定义是:将数据从源节点传输到目的节点。路由这个词本义是动词,指将网络数据传输(transfer)到目标节点的动作,这个动作需要多个节点参与;有时也可能是名词,表示路由路径,指从源到目标这条传输路径。本文讨论的zigbee的路由内容,包含路由发现、邻居表、路由表、路由发现表及部分网络层命令。

        zigbee路由功能在网络层实现 (类似于互联网协议的ip层),职责是将上层或其他节点发来的网络层数据正确传输到目标节点。路由路径是由路由发现过程创建的,一条完整的路径中存在多个节点的路由表中,单个节点存储了目标节点的下一跳地址(next hop)。网络层收到数据,会先检查是否为本节点的子终端节点(end device)或是存在与邻居表(neighbor table)中的路由节点,是则做相应处理,否则查找路由表,有与目标节点匹配的有效记录则根据记录的下一跳地址发送给下个节点,如无匹配记录,或链路无效,则根据数据来源是上层还是其他节点决定是发起路由请求(route request)还是通过网络状态命令(network status)告知源节点无有效路径(no route available)。

2. 重要概念
2.1 链接损耗(link cost)
      zigbee中对节点间的无线链路质量进行了量化,这个量化的值称为链接损耗,用0~7的数字表示节点间链路质量,0表示无效,1最好7最差,初始化为无效值。这个值在链接状态(link status)命令、邻居表及路由发现过程中都引用了。

2.2 路径损耗(path cost)
       路由发现过程中用于量化路由路径的质量,一个路由节点收到路由请求时会将发送节点与自身的链路损耗加到路径损耗中,再转播出去,就是说路径损耗是这条路径中链接损耗的累加和。目标节点在收到路由请求消息后根据路径损耗最低的路径回应路由响应(route reply)命令,以选择最优路径。

3. 连接状态命令(link status)
        网络层的一条命令,id为0x08。所有rx on idle为true(路由器默认配置就是)的路由节点每一个连接状态周期(LinkStatusPeriod默认15秒)都广播一个半径为1消息,半径为1不会被转播,消息内包含所有周边节点的接收及发送链路质量,这个质量会更新到邻居表中。链路质量在3个连接状态周期内都未收到周边节点的连接状态消息之后就变为0表示无效链路。

        备注:关于3个连接状态周期会将链路质量置为0的数据来源于zigbee规范文档,实际协议栈实现中可能并非3个周期,请以实测为准。
 

  • 8
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值