一种路由建立方法及路由器转让专利

申请号 : CN201110459128.0

文献号 : CN102437963B

文献日 :

基本信息:

PDF:

法律信息:

相似专利:

发明人 : 任智张子龙张向东刘培

申请人 : 华为技术有限公司

摘要 :

本发明公开了一种路由建立方法及路由器。所述路由建立方法包括:源节点判断待建立路由的目的节点是否为与其横向邻居节点相关的节点或与其子孙节点的横向邻居节点相关的节点,如果是,则根据源节点的路由表中的路由信息,建立源节点到目的节点的路由;否则,构造与目的节点对应的路由请求并广播该路由请求;在接收到与路由请求相应的路由响应后,建立源节点到目的节点的路由。本发明实施例所提供的技术方案,在源节点到目的节点的路由的建立过程中,考虑了横向邻居节点,因此,通过利用本发明实施例所提供的方案,可以在深度较深、节点剩余能量较多的层面建立路由,实现了各路由节点的任务均衡,进而有效提高网络的使用寿命。

权利要求 :

1.一种路由建立方法,其特征在于,所述方法所适用的网络系统以树路由作为缺省路由机制;在所述网络系统中,从当前节点的父节点,直至当前节点与当前节点的横向邻居节点深度最大的公共父节点的子节点的路由表中,分别包括所述当前节点到当前节点的横向邻居节点的路由信息;其中,当前节点的横向邻居节点为在树状拓扑中,当前节点一跳范围内的、与当前节点无父子或者兄弟关系的节点;所述方法包括:源节点判断待建立路由的目的节点是否为与源节点的横向邻居节点相关的节点或与源节点的子孙节点的横向邻居节点相关的节点,如果是,则根据源节点的路由表中的路由信息,建立源节点到目的节点的路由;否则,构造与所述目的节点对应的路由请求并广播该路由请求;其中,所述路由表中包括源节点到源节点的横向邻居节点的路由信息;

在接收到与路由请求相应的路由响应后,建立源节点到目的节点的路由。

2.根据权利要求1所述的方法,其特征在于,与横向邻居节点相关的节点包括:横向邻居节点的父辈节点、横向邻居节点的子孙节点或所述横向邻居节点。

3.根据权利要求2所述的方法,其特征在于,根据所述路由表中的路由信息,建立源节点到目的节点的路由,包括:当所述目的节点是源节点的横向邻居节点时,查找路由表中源节点到源节点的横向邻居节点的树路由,并将所述树路由作为源节点到目的节点的路由;或者,当所述目的节点是源节点的子孙节点的横向邻居节点时,查找路由表中源节点到源节点的子孙节点的横向邻居节点的树路由,并将所述树路由作为源节点到目的节点的路由;

或者,

当所述目的节点是源节点的横向邻居节点的父辈节点或子孙节点时,查找路由表中源节点到源节点的横向邻居节点的树路由,并将所述树路由加上所述横向邻居节点到目的节点之间的路由作为源节点到目的节点的路由;或者,当所述目的节点是源节点的子孙节点的横向邻居节点的父辈节点或子孙节点时,查找路由表中源节点到源节点的子孙节点的横向邻居节点的树路由,并将所述树路由加上所述横向邻居节点到所述目的节点之间的路由作为源节点到目的节点的路由。

4.根据权利要求1所述的方法,其特征在于,在接收到与路由请求相应的路由响应后,建立源节点到目的节点的路由,包括:在接收到多个路由响应后,利用合成深度公式,计算各路由响应对应的合成深度值,并将最大合成深度值对应的路由响应的路由作为源节点到目的节点的路由;

所述合成深度公式为:

其中,dj表示路径上与源节点在同一树枝的第j个节点的深度,j为自然数;dk表示路径上与源节点不在同一树枝的、目的节点以外的第k个节点的深度,k为自然数;E0表示路径上节点的统一化初始能量,Er表示路径上的节点最小剩余能量;Lm表示以跳数为计算标准的最大深度;n为自然数。

5.根据权利要求1所述的方法,其特征在于,所述路由请求包括:转发跳数限制值、经历跳数字段、第一横向邻居节点地址字段;

所述转发跳数限制值为源节点与目的节点之间的树路由最短路径的跳数减一;所述经历跳数字段用于记录路由请求所经历的跳数值;所述第一横向邻居节点地址为路由请求所经过的第一个源节点的横向邻居节点地址,用于在返回路由响应时,以第一横向邻居节点为目的进行反馈,再由第一横向邻居节点反馈到源节点,以建立最短路径。

6.一种路由器,其特征在于,所适用的网络系统以树路由作为缺省路由机制;在所述网络系统中,从当前节点的父节点,直至当前节点与当前节点的横向邻居节点深度最大的公共父节点的子节点的路由表中,分别包括所述当前节点到当前节点的横向邻居节点的路由信息;其中,当前节点的横向邻居节点为在树状拓扑中,当前节点一跳范围内的、与当前节点无父子或者兄弟关系的节点;所述路由器作为源节点,包括:位置关系判断模块,用于判断待建立路由的目的节点是否为与源节点的横向邻居节点相关的节点或与源节点的子孙节点的横向邻居节点相关的节点,如果是,则触发第一路由建立模块;否则,触发路由请求构建模块;

第一路由建立模块,用于根据源节点的路由表中的路由信息,建立源节点到目的节点的路由;

路由请求构造模块,用于构造与所述目的节点对应的路由请求并广播该路由请求;其中,所述路由表中包括源节点到源节点的横向邻居节点的路由信息;

路由响应接收模块,用于接收与路由请求相应的路由响应;

第二路由建立模块,用于在接收到与路由请求相应的路由响应后,建立源节点到目的节点的路由。

7.一种路由建立方法,其特征在于,所述方法所适用的网络系统以树路由作为缺省路由机制;在所述网络系统中,从当前节点的父节点,直至当前节点与当前节点的横向邻居节点深度最大的公共父节点的子节点的路由表中,分别包括所述当前节点到当前节点的横向邻居节点的路由信息;其中,当前节点的横向邻居节点为在树状拓扑中,当前节点一跳范围内的、与当前节点无父子或者兄弟关系的节点;所述方法包括:当前中间节点接收与目的节点对应的路由请求;判断当前中间节点是否为目的节点的父辈节点或子孙节点,如果是,则计算当前中间节点到所述目的节点的跳数距离,并根据所计算的跳数距离,对所接收到路由请求进行删除处理或转发给所述目的节点;

否则,判断当前中间节点是否为源节点的第一横向邻居节点,并根据判断结果设置路由请求中的第一横向邻居节点地址字段,进一步判断当前中间节点与路由请求发送节点的位置关系,并根据所确定出的位置关系,将所述路由请求删除或进行处理后广播;其中,所述第一横向邻居节点地址为路由请求所经过的第一个源节点的横向邻居节点地址,用于在返回路由响应时,以第一横向邻居节点为目的进行反馈,再由第一横向邻居节点反馈到源节点,以建立最短路径;

并在接收到与路由请求相应的路由响应后,对所述路由响应进行处理,并通过单播方式向源节点转发所述处理后的路由响应。

8.根据权利要求7所述的方法,其特征在于,所述根据所计算的跳数距离,对所接收到路由请求进行删除处理或转发给所述目的节点,包括:判断所计算的跳数距离加上路由请求中经历跳数字段值是否小于源节点与目的节点之间的树路由最短路径跳数,如果是,则将所述路由请求中经历跳数字段值加1并使用树路由向目的节点转发所述路由请求;否则,删除所述路由请求。

9.根据权利要求7所述的方法,其特征在于,所述判断当前中间节点是否为源节点的第一横向邻居节点,并根据判断结果设置路由请求中的第一横向邻居节点地址字段,包括:当当前中间节点为源节点的横向邻居节点,则将路由请求中第一横向邻居节点地址字段设置为当前中间节点的地址;或者,当路由请求中第一横向邻居节点地址字段为空,并且当前中间节点为源节点的父辈节点或者子孙节点的横向邻居节点,则将路由请求中的第一横向邻居节点地址字段设置为当前中间节点的地址。

10.根据权利要求7所述的方法,其特征在于,所述判断当前中间节点与路由请求发送节点的位置关系,并根据所确定出的位置关系,将所述路由请求删除或进行处理后广播,包括:当前中间节点判断当前中间节点与路由请求发送节点的位置关系;

如果路由请求发送节点是当前中间节点的父节点,则判断当前中间节点及当前中间节点的子孙节点是否有横向邻居节点,如果是,则将所述路由请求中经历跳数字段值加1并广播;否则,删除所述路由请求;或者,如果路由请求发送节点是当前中间节点的横向邻居节点,则将所述路由请求中经历跳数字段值加1并广播;或者,如果路由请求发送节点是当前中间节点的子节点,且当前中间节点不为源节点与目的节点的公共父节点,且不为源节点与目的节点的最大深度公共父节点的子节点,则将所述路由请求中经历跳数字段值加1并广播;或者,如果路由请求发送节点是当前中间节点的子节点,且当前中间节点为源节点与目的节点最大深度公共父节点的子节点,则判断当前中间节点是否有横向邻居节点或与源节点不在同一树枝的子节点,如果是,则将所述路由请求中经历跳数字段值加1并广播;否则删除所述路由请求。

11.根据权利要求7所述的方法,其特征在于,所述在接收到与路由请求相应的路由响应后,对所述路由响应进行处理,并通过单播方式向源节点转发所述处理后的路由响应,包括:当接收到与路由请求相应的路由响应后,当前中间节点建立当前中间节点到所述目的节点的路由;

将所述路由响应的中间节点深度和字段中的值增加当前中间节点的深度值,其中,所述中间节点深度和用于记录路由响应所经历的各中间节点到根节点的深度;

在当前中间节点的剩余能量值小于所述路由响应中节点最小剩余能量字段的值时,将当前中间节点的剩余能量值代替所述节点最小剩余能量字段中的值;

将所述路由响应中跳数字段的值加1;

判断所述路由响应中第一横向邻居节点地址字段值是否与当前中间节点地址相等,如果是,则通过单播方式向源节点转发处理后的路由响应;否则,根据第一横向邻居节点地址字段,通过单播的方式向源节点转发处理后的路由响应。

12.一种路由器,其特征在于,所适用的网络系统以树路由作为缺省路由机制;在所述网络系统中,从当前节点的父节点,直至当前节点与当前节点的横向邻居节点深度最大的公共父节点的子节点的路由表中,分别包括所述当前节点到当前节点的横向邻居节点的路由信息;其中,当前节点的横向邻居节点为在树状拓扑中,当前节点一跳范围内的、与当前节点无父子或者兄弟关系的节点;所述路由器作为当前中间节点,包括:路由请求接收模块,用于接收与目的节点对应的路由请求;

位置关系判断模块,用于判断当前中间节点是否为目的节点的父辈节点或子孙节点,如果是,则触发第一路由请求处理模块,否则,触发第二路由请求处理模块;

第一路由请求处理模块,用于计算当前中间节点到所述目的节点的跳数距离,并根据所计算的跳数距离,对所接收到路由请求进行删除处理或转发给所述目的节点;

第二路由请求处理模块,用于判断当前中间节点是否为源节点的第一横向邻居节点,并根据判断结果设置路由请求中的第一横向邻居节点地址字段,进一步判断当前中间节点与路由请求发送节点的位置关系,并根据所确定出的位置关系,将所述路由请求删除或进行处理后广播;其中,所述第一横向邻居节点地址为路由请求所经过的第一个源节点的横向邻居节点地址,用于在返回路由响应时,以第一横向邻居节点为目的进行反馈,再由第一横向邻居节点反馈到源节点,以建立最短路径;

路由响应接收模块,用于接收与路由请求相应的路由响应;

路由响应处理模块,用于在接收到与路由请求相应的路由响应后,对所述路由响应进行处理,并通过单播方式向源节点转发所述处理后的路由响应。

13.一种路由建立方法,其特征在于,所述方法所适用的网络系统以树路由作为缺省路由机制;在所述网络系统中,从当前节点的父节点,直至当前节点与当前节点的横向邻居节点深度最大的公共父节点的子节点的路由表中,分别包括所述当前节点到当前节点的横向邻居节点的路由信息;其中,当前节点的横向邻居节点为在树状拓扑中,当前节点一跳范围内的、与当前节点无父子或者兄弟关系的节点;所述方法包括:目的节点接收源节点发送的路由请求;

沿路由请求的来路向源节点发送与路由请求相应的路由响应,以建立源节点到目的节点的路由。

14.根据权利要求13所述的方法,其特征在于,所述路由响应包括:

源节点地址字段、目的节点地址字段、中间节点深度和字段、节点最小剩余能量字段、跳数字段、第一横向邻居节点地址字段;

其中,所述中间节点深度和字段用于记录路由响应所经历的各中间节点到根节点的深度,所述节点最小剩余能量值用于记录路由响应对应路径上的剩余能量最小的节点的剩余能量,所述跳数字段用于记录路由响应所经历的跳数,第一横向邻居节点地址字段用于在返回路由响应时,以第一横向邻居节点为目的进行反馈,再由第一横向邻居节点反馈到源节点,以建立最短路径。

15.一种路由器,其特征在于,所适用的网络系统以树路由作为缺省路由机制;在所述网络系统中,从当前节点的父节点,直至当前节点与当前节点的横向邻居节点深度最大的公共父节点的子节点的路由表中,分别包括所述当前节点到当前节点的横向邻居节点的路由信息;其中,当前节点的横向邻居节点为在树状拓扑中,当前节点一跳范围内的、与当前节点无父子或者兄弟关系的节点;所述路由器作为目的节点,包括:路由请求接收模块,用于接收源节点发送的路由请求;

路由响应发送模块,用于沿路由请求的来路向源节点发送与路由请求相应的路由响应,以建立源节点到目的节点的路由。

说明书 :

一种路由建立方法及路由器

技术领域

[0001] 本发明涉及网络通信技术领域,特别是涉及一种路由建立方法及路由器。

背景技术

[0002] 无线传感器网络,简称传感网,其是由分布在一定区域的多个传感器节点组成的自组织、面向任务、以数据为中心的无线通信网络;其作为一种新型的信息获取和传输系统,在环境监测、医疗卫生、工业控制以及军事等领域具有广阔的应用前景。
[0003] 现有的传感网协议提供了两种地址分配机制,即DAAM(Distributed Address Assignment Mechanism,分布式地址分配机制)和随机式地址分配机制。在DAAM中,首先由位于传感网中心位置的协调器设定3个参数,包括父节点可以拥有的子节点的最大数目Cm、父节点可以拥有的路由子节点的最大数目Rm和以跳数为计算标准的最大深度Lm。根据这三个参数,一个深度为d的父节点能够确定分配地址时的偏移量,进而可以为其对应的子孙节点分配网络地址。在网络地址分配完毕的传感网中,需要建立各源路由节点到相应目的路由节点的路由,进而实现后续的各节点之间的数据转发。
[0004] 但是,传感网作为一种信息采集网络,节点通过多跳的方式把采集到的信息反馈到具有汇总处理功能的协调器或者Sink节点。那么,离协调器/Sink节点越近的路由节点,就将承担更多的路由任务,必将消耗更多的能量。其中,所述路由节点的能量为路由器中电池剩余电量。局部路由节点的能量过度消耗,或者不可用,将严重影响网络的覆盖和有效性,影响网络的使用寿命。

发明内容

[0005] 本发明实施例提供了一种路由建立方法及路由器,以使各路由节点的路由任务均衡,进而提高网络的使用寿命,技术方案如下:
[0006] 本发明实施例提供一种路由建立方法,所述方法所适用的网络系统以树路由作为缺省路由机制;在所述网络系统中,从当前节点的父节点直至当前节点与当前节点的横向邻居节点深度最大的公共父节点的子节点的路由表中分别包括所述当前节点到当前节点的横向邻居节点的路由信息;其中,当前节点的横向邻居节点为在树状拓扑中,当前节点一跳范围内的、与当前节点无父子或者兄弟关系的节点;所述方法包括:
[0007] 源节点判断待建立路由的目的节点是否为与源节点的横向邻居节点相关的节点或与源节点的子孙节点的横向邻居节点相关的节点,如果是,则根据源节点的路由表中的路由信息,建立源节点到目的节点的路由;否则,构造与所述目的节点对应的路由请求并广播该路由请求;其中,所述路由表中包括源节点到源节点的横向邻居节点的路由信息;
[0008] 在接收到与路由请求相应的路由响应后,建立源节点到目的节点的路由。
[0009] 相应的,本发明实施例还提供一种路由器,所适用的网络系统以树路由作为缺省路由机制;在所述网络系统中,从当前节点的父节点直至当前节点与当前节点的横向邻居节点深度最大的公共父节点的子节点的路由表中分别包括所述当前节点到当前节点的横向邻居节点的路由信息;其中,当前节点的横向邻居节点为在树状拓扑中,当前节点一跳范围内的、与当前节点无父子或者兄弟关系的节点;所述路由器作为源节点,包括:
[0010] 位置关系判断模块,用于判断待建立路由的目的节点是否为与源节点的横向邻居节点相关的节点或与源节点的子孙节点的横向邻居节点相关的节点,如果是,则触发第一路由建立模块;否则,触发路由请求构建模块;
[0011] 第一路由建立模块,用于根据源节点的路由表中的路由信息,建立源节点到目的节点的路由;
[0012] 路由请求构造模块,用于构造与所述目的节点对应的路由请求并广播该路由请求;其中,所述路由表中包括源节点到源节点的横向邻居节点的路由信息;
[0013] 路由响应接收模块,用于接收与路由请求相应的路由响应;
[0014] 第二路由建立模块,用于在接收到与路由请求相应的路由响应后,建立源节点到目的节点的路由。
[0015] 本发明实施例还提供一种路由建立方法,所述方法所适用的网络系统以树路由作为缺省路由机制;在所述网络系统中,从当前节点的父节点直至当前节点与当前节点的横向邻居节点深度最大的公共父节点的子节点的路由表中分别包括所述当前节点到当前节点的横向邻居节点的路由信息;其中,当前节点的横向邻居节点为在树状拓扑中,当前节点一跳范围内的、与当前节点无父子或者兄弟关系的节点;所述方法包括:
[0016] 当前中间节点接收与目的节点对应的路由请求;判断当前中间节点是否为目的节点的父辈节点或子孙节点,如果是,则计算当前中间节点到所述目的节点的跳数距离,并根据所计算的跳数距离,对所接收到路由请求进行删除处理或转发给所述目的节点;
[0017] 否则,判断当前中间节点是否为源节点的第一横向邻居节点,并根据判断结果设置路由请求中的第一横向邻居节点地址字段,进一步判断当前中间节点与路由请求发送节点的位置关系,并根据所确定出的位置关系,将所述路由请求删除或进行处理后广播;其中,所述第一横向邻居节点地址为路由请求所经过的第一个源节点的横向邻居节点地址,用于在返回路由响应时,以第一横向邻居节点为目的进行反馈,再由第一横向邻居节点反馈到源节点,以建立最短路径;
[0018] 并在接收到与路由请求相应的路由响应后,对所述路由响应进行处理,并通过单播方式向源节点转发所述处理后的路由响应。
[0019] 相应的,本发明实施例还提供一种路由器,所适用的网络系统以树路由作为缺省路由机制;在所述网络系统中,从当前节点的父节点直至当前节点与当前节点的横向邻居节点深度最大的公共父节点的子节点的路由表中分别包括所述当前节点到当前节点的横向邻居节点的路由信息;其中,当前节点的横向邻居节点为在树状拓扑中,当前节点一跳范围内的、与当前节点无父子或者兄弟关系的节点;所述路由器作为当前中间节点,包括:
[0020] 路由请求接收模块,用于接收与目的节点对应的路由请求;
[0021] 位置关系判断模块,用于判断当前中间节点是否为目的节点的父辈节点或子孙节点,如果是,则触发第一路由请求处理模块,否则,触发第二路由请求处理模块;
[0022] 第一路由请求处理模块,用于计算当前中间节点到所述目的节点的跳数距离,并根据所计算的跳数距离,对所接收到路由请求进行删除处理或转发给所述目的节点;
[0023] 第二路由请求处理模块,用于判断当前中间节点是否为源节点的第一横向邻居节点,并根据判断结果设置路由请求中的第一横向邻居节点地址字段,进一步判断当前中间节点与路由请求发送节点的位置关系,并根据所确定出的位置关系,将所述路由请求删除或进行处理后广播;其中,所述第一横向邻居节点地址为路由请求所经过的第一个源节点的横向邻居节点地址,用于在返回路由响应时,以第一横向邻居节点为目的进行反馈,再由第一横向邻居节点反馈到源节点,以建立最短路径;
[0024] 路由响应接收模块,用于接收与路由请求相应的路由响应;
[0025] 路由响应处理模块,用于在接收到与路由请求相应的路由响应后,对所述路由响应进行处理,并通过单播方式向源节点转发所述处理后的路由响应。
[0026] 本发明实施例提供一种路由建立方法,所述方法所适用的网络系统以树路由作为缺省路由机制;在所述网络系统中,从当前节点的父节点直至当前节点与当前节点的横向邻居节点深度最大的公共父节点的子节点的路由表中分别包括所述当前节点到当前节点的横向邻居节点的路由信息;其中,当前节点的横向邻居节点为在树状拓扑中,当前节点一跳范围内的、与当前节点无父子或者兄弟关系的节点;所述方法包括:
[0027] 目的节点接收源节点发送的路由请求;
[0028] 沿路由请求的来路向源节点发送与路由请求相应的路由响应,以建立源节点到目的节点的路由。
[0029] 相应的,本发明实施例还提供一种路由器,所适用的网络系统以树路由作为缺省路由机制;在所述网络系统中,从当前节点的父节点直至当前节点与当前节点的横向邻居节点深度最大的公共父节点的子节点的路由表中分别包括所述当前节点到当前节点的横向邻居节点的路由信息;其中,当前节点的横向邻居节点为在树状拓扑中,当前节点一跳范围内的、与当前节点无父子或者兄弟关系的节点;所述路由器作为目的节点,包括:
[0030] 路由请求接收模块,用于接收源节点发送的路由请求;
[0031] 路由响应发送模块,用于沿路由请求的来路向源节点发送与路由请求相应的路由响应,以建立源节点到目的节点的路由。

附图说明

[0032] 为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单的介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动性的前提下,还可以根据这些附图获得其他的附图。
[0033] 图1为树状拓扑示意图;
[0034] 图2为本发明实施例所提供的一种路由建立方法的第一种流程图;
[0035] 图3为本发明实施例所提供的一种路由建立方法的第二种流程图;
[0036] 图4为本发明实施例所提供的一种路由建立方法的第三种流程图;
[0037] 图5为本发明实施例所提供的一种路由建立方法的第四种流程图;
[0038] 图6为本发明实施例所提供的一种路由建立方法的第五种流程图;
[0039] 图7为本发明实施例所提供的一种路由器的第一种结构示意图;
[0040] 图8为本发明实施例所提供的一种路由器的第二种结构示意图;
[0041] 图9为本发明实施例所提供的一种路由器的第三种结构示意图。

具体实施方式

[0042] 下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
[0043] 本发明实施例提供了一种路由建立方法及路由器,其通过将横向邻居节点、节点深度参数、节点剩余能量考虑到路由建立的过程中,实现各路由节点的任务均衡,进而有效提高网络的使用寿命。其中,节点的横向邻居节点为在树状拓扑中,当前节点一跳范围内的、与当前节点无父子或者兄弟关系的节点。
[0044] 为了清楚起见,下面首先对树状拓扑中父节点、父辈节点、子节点、子孙节点、横向邻居节点以及当前节点与横向邻居节点深度最大的公共父节点进行介绍。
[0045] 如图1所示的树状拓扑中:
[0046] 父节点:节点1是节点2和节点6的父节点;节点2是节点3、5、7的父节点;
[0047] 父辈节点:节点1是节点3、5、7等所有节点的父辈节点,节点2也是4、9、10的父辈节点;
[0048] 子节点:节点2和节点6都是节点1的子节点;
[0049] 子孙节点:节点2、3、4、5等都是节点1的子孙节点;节点4、9、10同样是节点2的子孙节点;
[0050] 横向邻居节点:节点8在节点7的通信范围内,节点10在节点9的通信范围内,并且两者之间可以建立通信链路;但是,节点8和节点7,以及节点10和节点9之间,并不是兄弟节点关系,也不是父子关系,节点8和节点7就互相为对方的横向邻居节点;同样,节点9和节点10也互相为对方的横向邻居节点;
[0051] 当前节点与横向邻居节点深度最大的公共父节点:节点7和节点8的深度最大的公共父节点为节点1;节点9和节点10的最大深度公共父节点为节点2。
[0052] 下面以传感网为具体的应用场景,对本发明实施例所提供的一种路由建立方法进行介绍。可以理解的是,本发明实施例所提供的方法并不局限于传感网的优化路由的建立,同时也可以应用于无线Mesh网络中优化路由的建立等。
[0053] 假设源节点和目的节点位于由同一协调器建立的个人局域网(PAN)中,该PAN网络以树路由作为缺省路由机制。其中,各节点已获得通过分布式地址分配机制(DAAM)分配的网络地址,同时在组网以及其后的数据传输阶段,通过特定方式获得各横向邻居节点的网络地址信息,例如:可以从接收到的数据帧中提取相应横向邻居节点的信息。也就是,各节点对应的路由表中包括当前节点到当前节点的横向邻居节点的路由信息。并且,当前节点需要向自身的父节点发布所获得的当前节点到当前节点的横向邻居节点的路由信息,该父节点向其父节点会继续上报该信息,直到本节点与横向邻居节点的深度最大的公共父节点的子节点。也就是,当前节点的父节点直至当前节点与横向邻居节点深度最大的公共父节点的子节点的路由表中都包括到当前节点的横向邻居节点的路由信息。可以理解的是,各节点获得自身网络地址以及到各横向邻居节点路由信息的方式并不局限于本实施例所述的方式。
[0054] 为了清楚起见,下面以源节点向目的节点发送的路由请求的传递过程以及该路由请求对应的路由响应的传递过程对本发明实施例所提供的一种路由建立方法进行说明。
[0055] 下面首先以源节点向目的节点发送相应的路由请求时,各个节点如何建立路由的角度进行介绍。
[0056] 从源节点的角度,如图2所示,一种路由建立方法,可以包括:
[0057] S101,源节点判断待建立路由的目的节点是否为与源节点的横向邻居节点相关的节点或与源节点的子孙节点的横向邻居节点相关的节点,如果是,则执行步骤S102;否则,执行步骤S103;
[0058] 当源节点需要建立到目的节点的路由时,首先判断该目的节点是否为与其自身的横向邻居节点相关的节点或与其子孙节点的横向邻居节点相关的节点,并根据不同的判断结果确定不同的路由建立过程。其中,所述横向邻居节点相关的节点可以包括:横向邻居节点的父辈节点、横向邻居节点的子孙节点或所述横向邻居节点。
[0059] S102,根据路由表中的路由信息,建立源节点到目的节点的路由;
[0060] 其中,根据路由表中的路由信息,建立源节点到目的节点的路由,可以包括:
[0061] 当所述目的节点是源节点的横向邻居节点时,查找路由表中源节点到源节点的横向邻居节点的树路由,并将所述树路由作为源节点到目的节点的路由;或者,[0062] 当所述目的节点是源节点的子孙节点的横向邻居节点时,查找路由表中源节点到源节点的子孙节点的横向邻居节点的树路由,并将所述树路由作为源节点到目的节点的路由;或者,
[0063] 当所述目的节点是源节点的横向邻居节点的父辈节点或子孙节点时,查找路由表中源节点到源节点的横向邻居节点的树路由,并将所述树路由加上所述横向邻居节点到目的节点之间的路由作为源节点到目的节点的路由;或者,
[0064] 当所述目的节点是源节点的子孙节点的横向邻居节点的父辈节点或子孙节点时,查找路由表中源节点到源节点的子孙节点的横向邻居节点的树路由,并将所述树路由加上所述横向邻居节点到所述目的节点之间的路由作为源节点到目的节点的路由。
[0065] 由上述可知,当目的节点是源节点的自身的横向邻居节点相关节点或子孙节点的横向邻居节点相关的节点时,由于路由表中已经记录了源节点到其横向邻居节点,或其子孙的横向邻居节点的路由,并且该路由可以作为优选路由,因此,可以根据路由表中所记录横向邻居节点,直接确定源节点到目的节点的路由,无需发送相应的路由请求。
[0066] S103,构造与该目的节点对应的路由请求并广播该路由请求。
[0067] 当目的节点不是源节点的横向邻居节点相关的节点或源节点的子孙节点的横向邻居节点相关的节点时,则表示路由表中未记录有目的节点的相关信息,此时,需要构造与该目的节点对应的路由请求并向邻居节点进行广播。
[0068] 其中,该目的节点对应的路由请求包括转发跳数限制值、经历跳数字段、第一横向邻居节点地址字段。该转发跳数限制值为源节点与目的节点之间的树路由最短路径的跳数减一;该转发跳数限制值用于表示允许路由请求所经历的最大跳数。该经历跳数字段用于记录路由请求所经历的跳数值。该第一横向邻居节点地址为路由请求所经过的第一个源节点的横向邻居节点地址,用于在返回路由响应时,以第一横向邻居节点为目的进行反馈,再由第一横向邻居节点反馈到源节点,以建立最短路径。其中,如果源节点有横向邻居节点,所述第一横向邻居节点地址为源节点的横向邻居节点的地址;如果源节点没有横向邻居节点,所述第一横向邻居节点地址则为路由请求所经过的源节点的第一个有横向邻居节点的父辈节点或者子孙节点横向邻居节点地址。需要说明的是,源节点构造的路由请求中,所述第一横向邻居节点地址为空,并且该节点地址由后续路由转发过程中的作为源节点的第一横向邻居节点进行设置。
[0069] 需要说明的是,第一横向邻居节点的使用是基于如下假设的:如果目的节点不是源节点的父辈节点或子孙节点,那么,源节点和目的节点之间的最短路径,如果第一横向邻居节点存在的话,肯定存在于包含第一横向邻居节点的路径中。如图1所示,节点3到节点10的最短路径,如果节点9是节点3的横向邻居节点,节点9同时也是节点3的第一横向邻居节点,那么,节点3到节点10的路径就可以是3-9-10。而树路由对应的路径是3-2-7-10。
其中,第一横向邻居节点,可能不只一个。
[0070] 可以理解的是,该转发跳数限制值可以由源节点计算,并放入路由请求中,也可以由各中间节点根据源节点网络地址、目的节点网络地址计算得到。下面简述一种源节点与目的节点之间的树路由最短路径的跳数的计算方式:
[0071] 在基于DAAM地址分配方式的树路由机制中,源节点可以计算出目的节点的深度,记作Dd,源节点与目的节点的、深度最大的公共父节点的深度,记作Pd,如果记源节点的深度为Ds,那么可以得知,源节点到目的节点的最短树路由跳数可以为t=Ds+Dd-2Pd。
[0072] 从中间节点的角度,如图3所示,一种路由建立方法,可以包括:
[0073] S201,当前中间节点接收与该目的节点对应的路由请求;
[0074] 当源节点构成与该目的节点相应的路由请求并广播后,多个中间节点则会收到该目的节点对应的路由请求。
[0075] 可以理解的是,在当前中间节点所接收到的路由请求中经历跳数字段值加1后不大于路由请求所携带的转发跳数限制值时,表示该路由请求所经历的跳数在允许跳数范围内,因此,可以对该路由请求进行后续处理;而在当前中间节点所接收的路由请求中经历跳数字段值加1大于转发跳数限制值时,表示该路由请求继续转发将超出允许的跳数范围,将成为无效的路由请求,因此,直接将该路由请求删除即可。
[0076] 其中,在当前中间节点接收到的路由请求中携带有转发跳数限制值时,则可以直接从该路由请求中提取转发跳数限制值;而所接收到的路由请求中未携带有转发跳数限制值,则需要根据源节点网络地址和目的节点网络地址计算转发跳数限制值。
[0077] S202,判断其是否为目的节点的父辈节点或子孙节点,如果是,则执行步骤S203;否则,执行步骤S204;
[0078] S203,计算其到所述目的节点的跳数距离,并根据所计算的跳数距离,对所接收到路由请求进行删除处理或转发给所述目的节点;
[0079] 其中,根据所计算的跳数距离,对所接收到路由请求进行删除处理或转发给该目的节点,具体为:
[0080] 判断所计算的跳数距离加上路由请求中经历跳数字段值是否小于源节点与目的节点之间的树路由最短路径跳数,如果是,则将所述路由请求中经历跳数字段值加1并使用树路由向目的节点转发所述路由请求;否则,删除所述路由请求。
[0081] 由上述可知,当当前中间节点为目的节点的父辈节点或子孙节点时,则可以在当前节点到目的节点的跳数距离加上路由请求中经历跳数字段值小于源节点与目的节点之间的树路由最短路径跳数时,将所述路由请求中经历跳数字段值加1并使用树路由向目的节点转发所述路由请求。其中,当前中间节点是目的节点的父节点或子节点时,当前中间节点到目的节点的跳数,可以根据树路由计算,即按照树路由计算到目的节点的跳数。
[0082] S204,判断其是否为源节点的第一横向邻居节点,并根据判断结果设置路由请求中的第一横向邻居节点地址字段;
[0083] 其中,所述判断其是否为第一横向邻居节点,并根据判断结果设置路由请求中的第一横向邻居节点地址字段,具体为:
[0084] 当当前中间节点自身为源节点的横向邻居节点,则将路由请求中的第一横向邻居节点地址字段设置为当前中间节点自身地址;
[0085] 当路由请求中的第一横向邻居节点地址字段为空,并且当前中间节点自身为源节点的父辈节点或者子孙节点的横向邻居节点,则将路由请求中的第一横向邻居节点地址字段设置为当前中间节点自身的地址。
[0086] S205,判断其与路由请求发送节点的位置关系,并根据所确定出的位置关系,将所述路由请求删除或进行相应处理后广播。
[0087] 其中,所述判断其与路由请求发送节点的位置关系,并根据所确定出的位置关系,将所述路由请求删除或进行相应处理后广播,具体为:
[0088] 当前中间节点判断当前中间节点与路由请求发送节点的位置关系;
[0089] 如果路由请求发送节点是当前中间节点的父节点,则判断当前中间节点及当前中间节点的子孙节点是否有横向邻居节点,如果是,则将所述路由请求中经历跳数字段值加1并广播;否则,删除所述路由请求;或者,
[0090] 如果路由请求发送节点是当前中间节点的横向邻居节点,则将所述路由请求中经历跳数字段值加1并广播;或者,
[0091] 如果路由请求发送节点是当前中间节点的子节点,且当前中间节点不为源节点与目的节点的公共父节点,且不为源节点与目的节点的最大深度公共父节点的子节点,则将所述路由请求中经历跳数字段值加1并广播;或者,
[0092] 如果路由请求发送节点是当前中间节点的子节点,且当前中间节点为源节点与目的节点最大深度公共父节点的子节点,则判断当前中间节点是否有横向邻居节点或与源节点不在同一树枝的子节点,如果是,则将所述路由请求中经历跳数字段值加1并广播;否则删除所述路由请求。
[0093] 从目的节点的角度,如图4所示,一种路由建立方法,可以包括:
[0094] S301,目的节点接收源节点发送的路由请求;
[0095] 可以理解的是,当路由请求中经历跳数字段值大于源节点到目的节点的树路由跳数时,表明相对于树路由而言,路由请求所经历的路径更加复杂,所消耗的能量更加多,因此,该路由请求所经历的路由被视为无效路由,直接删除该路由请求即可;而当路由请求中经历跳数字段值不大于源节点到目的节点的树路由跳数时,则表明该路由请求所经历的路由有效,此时需要对所接收到的路由请求进行后续的处理。
[0096] S302,沿路由请求的来路向源节点发送相应的路由响应,以建立源节点到目的节点的路由。
[0097] 其中,所述路由响应包括:源节点地址字段、目的节点地址字段、中间节点深度和字段、节点最小剩余能量字段、跳数字段、第一横向邻居节点地址字段;所述中间节点深度和字段用于记录路由响应所经历的各中间节点到根节点的深度,所述节点最小剩余能量值用于记录路由响应对应路径上的剩余能量最小的节点的剩余能量,所述跳数字段用于记录路由响应所经历的跳数,第一横向邻居节点地址字段用于在返回路由响应时,以第一横向邻居节点为目的进行反馈,再由第一横向邻居节点反馈到源节点,以建立最短路径。
[0098] 并且,中间节点深度和字段中的值为0,跳数字段中的值为0,第一横向邻居节点地址字段中设置有接收到的路由请求中携带的第一横向邻居节点地址,节点最小剩余能量字段的值为目的节点的剩余能量。需要说明的是,所谓能量为节点中电池剩余电量,其可以直接从节点设备中读取。
[0099] 下面以目的节点发送相应的路由响应后,各个节点如何建立路由的角度进行介绍。
[0100] 从中间节点的角度,如图5所示,一种路由建立方法,可以包括:
[0101] S401,当前中间节点接收相应的路由响应;
[0102] S402,建立当前中间节点到目的节点的路由;
[0103] S403,将该路由响应的中间节点深度和字段中的值增加当前中间节点的深度值;
[0104] 其中,所述中间节点深度和用于记录路由响应所经历的各中间节点到根节点的深度。
[0105] S404,在当前中间节点的剩余能量值小于该路由响应中节点最小剩余能量字段的值时,将当前中间节点的剩余能量值代替该节点最小剩余能量字段中的值;
[0106] S405,将该路由响应的跳数字段的值加1;
[0107] S406,判断该路由响应中第一横向邻居节点地址字段值是否与当前中间节点地址相等,如果是,则执行步骤S407;否则,执行步骤S408;
[0108] S407,通过单播方式向源节点转发处理后的路由响应;
[0109] S408,根据第一横向邻居节点地址字段,通过单播的方式向源节点转发处理后的路由响应。
[0110] 可以理解的是,步骤S402~步骤S405的顺序并不局限于本实施例所述的顺序。
[0111] 从源节点的角度,如图6所示,一种路由建立方法,可以包括:
[0112] S501,接收与路由请求对应的路由响应;
[0113] S502,建立源节点到目的节点的路由。
[0114] 需要说明的是,当源节点仅仅接收到一个路由响应时,则可以直接将该路由响应对应的路由作为源节点到目的节点之间的路由。而当源节点接收到多个相应的路由响应后,则需要从多个路由响应中筛选出最优的路由,并将所筛选出的最优的路由作为源节点到目的节点之间的路由。
[0115] 其中,源节点在接收到多个路由响应后,可以采用如下方式,确定出源节点到目的节点的最优路由:
[0116] 源节点在接收到多个路由响应后,则利用合成深度公式,计算各响应对应的合成深度值,并将最大合成深度值对应响应的路由作为源节点目目的节点的路由;
[0117] 其中,所述合成深度公式为:
[0118]
[0119] 其中,dj表示路径上与源节点在同一树枝的第j个节点的深度,j为自然数;dk表示路径上与源节点不在同一树枝的、目的节点以外的第k个节点的深度,k为自然数;E0表示路径上节点的统一化初始能量,Er表示路径上的节点最小剩余能量。
[0120] 本发明实施例所提供的技术方案,在源节点到目的节点的路由的建立过程中,通过考虑横向邻居节点,因此,通过利用本发明所提供的方案,可以在深度较深、节点剩余能量较多的层面建立路由,从而实现路由节点的任务均衡,进而达到能量均衡。
[0121] 通过以上的方法实施例的描述,所属领域的技术人员可以清楚地了解到本发明可借助软件加必需的通用硬件平台的方式来实现,当然也可以通过硬件,但很多情况下前者是更佳的实施方式。基于这样的理解,本发明的技术方案本质上或者说对现有技术做出贡献的部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质中,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)执行本发明各个实施例所述方法的全部或部分步骤。而前述的存储介质包括:只读存储器(ROM)、随机存取存储器(RAM)、磁碟或者光盘等各种可以存储程序代码的介质。
[0122] 相应于上述方法实施例,本发明实施例提供一种路由器,其所适用的网络系统以树路由作为缺省路由机制;在所述网络系统中,从当前节点的父节点直至当前节点与当前节点的横向邻居节点深度最大的公共父节点的子节点的路由表中分别包括所述当前节点到当前节点的横向邻居节点的路由信息;其中,当前节点的横向邻居节点为在树状拓扑中,当前节点一跳范围内的、与当前节点无父子或者兄弟关系的节点;所述路由器作为源节点,如图7所示,可以包括:
[0123] 位置关系判断模块110,用于判断待建立路由的目的节点是否为与源节点的横向邻居节点相关的节点或与源节点的子孙节点的横向邻居节点相关的节点,如果是,则触发第一路由建立模块120;否则,触发路由请求构建模块130;
[0124] 第一路由建立模块120,用于根据源节点的路由表中的路由信息,建立源节点到目的节点的路由;
[0125] 路由请求构造模块130,用于构造与所述目的节点对应的路由请求并广播该路由请求;其中,所述路由表中包括源节点到源节点的横向邻居节点的路由信息;
[0126] 路由响应接收模块140,用于接收与路由请求相应的路由响应;
[0127] 第二路由建立模块150,用于在接收到与路由请求相应的路由响应后,建立源节点到目的节点的路由。
[0128] 同时,本发明实施例还提供一种路由器,其所适用的网络系统以树路由作为缺省路由机制;在所述网络系统中,从当前节点的父节点直至当前节点与当前节点的横向邻居节点深度最大的公共父节点的子节点的路由表中分别包括所述当前节点到当前节点的横向邻居节点的路由信息;其中,当前节点的横向邻居节点为在树状拓扑中,当前节点一跳范围内的、与当前节点无父子或者兄弟关系的节点;所述路由器作为当前中间节点,如图8所示,可以包括:
[0129] 路由请求接收模块210,用于接收与目的节点对应的路由请求;
[0130] 位置关系判断模块220,用于判断当前中间节点是否为目的节点的父辈节点或子孙节点,如果是,则触发第一路由请求处理模块230,否则,触发第二路由请求处理模块240;
[0131] 第一路由请求处理模块230,用于计算当前中间节点到所述目的节点的跳数距离,并根据所计算的跳数距离,对所接收到路由请求进行删除处理或转发给所述目的节点;
[0132] 第二路由请求处理模块240,用于判断当前中间节点是否为源节点的第一横向邻居节点,并根据判断结果设置路由请求中的第一横向邻居节点地址字段,进一步判断当前中间节点与路由请求发送节点的位置关系,并根据所确定出的位置关系,将所述路由请求删除或进行处理后广播;其中,所述第一横向邻居节点地址为路由请求所经过的第一个源节点的横向邻居节点地址,用于在返回路由响应时,以第一横向邻居节点为目的进行反馈,再由第一横向邻居节点反馈到源节点,以建立最短路径;
[0133] 路由响应接收模块250,用于接收与路由请求相应的路由响应;
[0134] 路由响应处理模块260,用于在接收到与路由请求相应的路由响应后,对所述路由响应进行处理,并通过单播方式向源节点转发所述处理后的路由响应。
[0135] 同时,本发明实施例还提供一种路由器,其所适用的网络系统以树路由作为缺省路由机制;在所述网络系统中,从当前节点的父节点直至当前节点与当前节点的横向邻居节点深度最大的公共父节点的子节点的路由表中分别包括所述当前节点到当前节点的横向邻居节点的路由信息;其中,当前节点的横向邻居节点为在树状拓扑中,当前节点一跳范围内的、与当前节点无父子或者兄弟关系的节点;所述路由器作为目的节点,如图9所示,可以包括:
[0136] 路由请求接收模块310,用于接收源节点发送的路由请求;
[0137] 路由响应发送模块320,用于沿路由请求的来路向源节点发送与路由请求相应的路由响应,以建立源节点到目的节点的路由。
[0138] 可以理解的是,在不同的路由建立过程中,对于一个路由器而言,其可以作为源节点、中间节点或目的节点。当该路由器作为源节点时,其可以利用:位置关系判断模块110、第一路由建立模块120、路由请求构造模块130、路由响应接收模块140以及第二路由建立模块150的相互配合,实现源节点所具有的路由功能;当该路由器作为中间节点时,其可以利用:路由请求接收模块210、位置关系判断模块220、第一路由请求处理模块230、第二路由请求处理模块240、路由响应接收模块250以及路由响应处理模块260的相互配合,实现中间节点的所具有的路由功能;而当该路由器作为目的节点时,其可以利用:路由响应接收模块310以及路由响应处理模块320的相互配合实现目的节点所具有的功能。
[0139] 本发明实施例所提供的方案,在源节点到目的节点路由的建立过程中,考虑了横向邻居节点,因此,通过利用本发明实施例所提供的方案,可以在深度较深、节点剩余能量较多的层面建立路由,实现了各路由节点的任务均衡,进而有效提高网络的使用寿命。
[0140] 对于装置或系统实施例而言,由于其基本相应于方法实施例,所以相关之处参见方法实施例的部分说明即可。以上所描述的装置或系统实施例仅仅是示意性的,其中所述作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部模块来实现本实施例方案的目的。本领域普通技术人员在不付出创造性劳动的情况下,即可以理解并实施。
[0141] 在本发明所提供的几个实施例中,应该理解到,所揭露的系统,装置和方法,在没有超过本申请的精神和范围内,可以通过其他的方式实现。当前的实施例只是一种示范性的例子,不应该作为限制,所给出的具体内容不应该限制本申请的目的。例如,所述单元或子单元的划分,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式,例如多个单元或多个子单元结合一起。另外,多个单元可以或组件可以结合或者可以集成到另一个系统,或一些特征可以忽略,或不执行。
[0142] 另外,所描述系统,装置和方法以及不同实施例的示意图,在不超出本申请的范围内,可以与其它系统,模块,技术或方法结合或集成。另一点,所显示或讨论的相互之间的耦合或直接耦合或通信连接可以是通过一些接口,装置或单元的间接耦合或通信连接,可以是电性,机械或其它的形式。
[0143] 以上所述仅是本发明的具体实施方式,应当指出,对于本技术领域的普通技术人员来说,在不脱离本发明原理的前提下,还可以做出若干改进和润饰,这些改进和润饰也应视为本发明的保护范围。