在路由分析过程中涉及到路由表,路由发现表,邻居节点表,RREQ,RREP、RERR。 路由表:包含此条路由下一跳节点地址,路由状态,目的地址。 路由搜索表:在路由表建立过程中存在,应该是用来建立路由表的。 包含以下信息:Route request ID:发起路由请求的节点产生的序列号,越大则表示分组越新: Source address:发起路由发现的节点的地址: Sender address:将路由请求分组发送给此节点的节点的地址: Forward cost:发起路由发现的节点到此节点路径的开销,即路由请求分组中携带的开 销; Residual cost:此节点到目的节点的开销,即路由应答分组中携带的开销; Expiration time:路由建立过程的有效时间。 邻居表: ZigBee网络中的每个节点都保存一张邻居节点表,用来存储此节点传输范围内其它节点的信息。 PANId:邻节点PAN标识符; Extended address:邻节点的64-bit IEEE扩展地址,邻节点与本节点存在父子关系时 记录此条信息; Network address:邻节点16一bit网络地址; Device type:邻节点类型(0x00=ZigBee协调点,0x01=ZigBee路由节点,0x02= ZigBee终端节点); Relationship:邻节点与当前节点的关系(0x00=父节点,OxOI=子节点,0x02=其 它)。 节点交互的分组: ZigBee网络层的控制分组包括路由请求(RREQ,Route Request)分组,路由应答(RREP, Route Reply)分组和路由出错(RERR,Route Error)。 RREQ分组: ZigBee网络中具有路由功能的节点可以向周围邻节点广播一个RREQ分组,目的是 为了找到一条通往它希望到达的目的节点的有效路径。 具体内容如下: Command frame identifier:指出此控制分组的类型(0x01=RREQ,0x02=RREP,0x03 =RERR): Command options:指出此路由请求分组是否是在路由修复过程中产生的; Route request ID:发起路由请求的节点产生的序列号,越大则表示分组越新; Destination address:发起路由请求的节点希望建立的路径的目的地址; Path cost:指从P.REQ的发起节点到当前接收RREQ的节点的路径开销。 RREP分组: RREQ分组希望到达的目的节点收到RREQ后向RREQ分组的发起节点回复一个 RREP分组。 具体内容如下: Command frame identifier:指出此控制分组的类型(0x01=RREQ,0x02=I砒P,0x03 =RERR): Command options:指出此路由应答分组是否是在路由修复过程中产生的: Route request ID:此分组所应答的路由请求分组的路由请求标识符; Originator address:发起路由请求的节点的网络地址; Responderaddress:该条路由的目的节点地址,即响应RREQ的节点的网络地址: Pathcost:从发起RREP的节点到当前接收RREP的节点的路径开销。 RERR分组: 当节点转发数据分组失败时将产生一个RERR分组,目的是为了通知此数据分组的 源节点分组转发失败。 Command frame identifier:指出此控制分组的类型(Ox01=RREQ,0x02=RKEP,0x03 =RERR); Error code:指出路由出错的原因: Destination address:指被转发失败的数据分组的目的地址。 一般路由表的建立过程是:首先源节点通过广播发送路由请求分组,具有路由功能的节点收到此信息后,建立反向路由,并转发路由请求分组,并将源节点到此节点的路由开销添加到路由搜索表和路由请求中,直到目的节点收到此路由请求分组,实际中可能有多条路径到达目的节点,目的节点根据路由开销选择路由开销最少的反向路由,将路由请求分组发送给源节点,中间节点收到路由请求分组也要添加此节点到目的节点的路由开销到路由搜索表和路由应答表中,最终到达源节点。路由搜索表清除信息(建立路由表的神圣使命终结),各个节点路由表建立。
|