zigbee 路由的概念与工作表现

1.路由的基本概念(基于ZigBee Pro 协议)

网络中的基本操作是将数据从一个节点传输到另一个节点。 数据来自发起节点上的输入(可能是开关或传感器),和被传送到另一个可以解释和使用数据的目标节点。
在最简单的数据通信中,数据直接从源节点传输到目标节点。 但是,如果两个节点相距很远或者很困难环境,可能无法直接沟通。 在这种情况下,将数据发送到无线电范围内的另一个节点,然后将其传递给另一个节点节点,依此类推,直到到达所需的目标节点 - 即使用一个或更多的中间节点作为垫脚石(中继), 另一个节点接收数据并将其传递的过程称为路由。

2.路由的功能
如果从一个节点发送到另一个节点的消息需要通过一个或多个节点中间节点到达其最终目的地(允许最多30个这样的跳),消息携带两个目标地址:
最终目的地的地址
作为下一个“跳”的节点的地址
ZigBee PRO专为网状网络(见第2.2.2节)而设计传播路径(路由)取决于目标节点是否在无线电范围内:
如果目标节点在范围内,则仅使用“最终目标”地址。
如果目标节点不在范围内,则“下一跳”地址是第一个节点的地址
在通往最终目的地的路线上。使用存储在路由表中的信息确定“下一跳”地址,路由节点(路由器或协调器)。路由表的条目包含远程节点信息,包括远程节点和下一个节点的网络地址,路由节点到远程节点的路由。因此,当收路由节点到消息时,它在其路由表中查找目标地址并提取“下一个hop“从此表中的地址插入到消息中。然后以这种方式继续传递消息和传播,直到到达目标节点。请注意,如果消息来自终端设备,则消息将始终为在传递之前首先传递给源节点的父节点。

3.路由发现
ZigBee堆栈网络层支持“路由发现”工具,该工具在发送消息时找到到目的地的最佳可用路由。 消息通常沿已发现的网状路由传播(如果存在),否则为发送消息所涉及的路由节点(路由器或协调器)启动路由发现。 (例如:如无匹配记录,或链路无效,则根据数据来源是上层还是其他节点决定是发起路由请求(route request),还是通过网络状态命令(network status)告知源节点无有效路径(no route available)
完成后,将沿计算的路径发送消息。两个终端设备之间的路由发现机制包括以下步骤:
1.路由发现广播(route request),由源终端设备的父节点发送,并包含目标终端设备的网络地址。
2.所有路由节点最终将接收广播,其中一个是目标终端设备的父节点。
3.目标节点的父节点发送回寻址到源节点的父节点的答复(Route reply)
4.当回复通过网络返回时,记录每跳的跳数和信号质量测量。路径中的每个路由节点都可以构建一个路由表条目,其中包含到目的地终端设备的最佳路径。最佳路径的选择通常是跳数最少的路径,尽管最直接路由上的跳数很差信号质量(因此需要重试的可能性更大),可以选择具有更多跳跃的路线。
5.最终,路径中的每个路由节点都将具有路由表条目,并且建立从源到目标终端设备的路由。请注意,从目标到源的相应路由未知 - 发现的路由是单向的。

4.源路由(节点与集中器(协调器))
源路由器以与上述类似的方式实现路由发现,除了路由器广播自己的路由发现消息(不需要其父进程广播)(Route Request)。 类似地,协调器广播其自己的路由发现消息。
消息路由由ZigBee堆栈自动执行,对用户应用程序是透明的。 如果需要,路由发现也是自动且对应用程序透明的。

无线网络中的常见场景是需要大多数网络节点与执行某些集中功能的单个节点通信,例如,一个门户。该节点通常被称为集中器(协调器)。为了与集中器建立通信,每个远程节点可以启动“路由发现”(Route Request),在此过程中在每个路由节点的路由表中生成相应的条目。如果大多数网络节点需要与集中器通信,则可以发起许多这样的路由发现。如果生成的路由具有公共分支,则相关的路由表条目将不会重复,而是共享。然而,大量的同时路由发现可能需要集中器附近的节点中的大量存储空间用于临时存储路由发现信息,并且可能导致存储器溢出和建立到集中器的路由的更有效方法是集中器为从所有其他网络节点到的路由发起“多对一”路由发现。为此,集中器广播路由发现请求,并且当广播通过网络传播时,路由表被更新。由于没有生成响应,因此临时存储路由发现信息不需要,网络流量拥塞最小化。

在这里插入图片描述为了避免在中间节点的路由表中存储返回路由(来自集中器),使用源路由技术 - 集中器记住消息到集中器的外向路由并嵌入到响应中 信息。 在这种情况下,响应消息必须在返回路径上最多携带30个节点地址(允许的最大跳数为30)。
集中节点通过发起many-to-one路由请求,来创建普通节点到集中节点的路径。路径损耗的计算及转播与普通路由请求一样,但是many-to-one路由请求没有路由应答(Router reply),每个收到多对一路由的节点,都将收到的最优路径存储到路由表中并标记为many-to-one路径,目标地址为集中节点,下一跳为路径最优的发送者。普通节点会根据many-to-one路由请求的消息设置路由表中的No route cache属性,为true表示集中节点没有源路由缓存,每次发送数据都需要跟着发送路由记录命令(Route record)

网络测试的报文解析验证路由的功能:
见报文分析:

  • 1
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值