下行路由获取及维护方法和装置.pdf

上传人:a*** 文档编号:664561 上传时间:2018-03-02 格式:PDF 页数:25 大小:3.48MB
返回 下载 相关 举报
摘要
申请专利号:

CN201310112066.5

申请日:

2013.04.02

公开号:

CN104104605A

公开日:

2014.10.15

当前法律状态:

实审

有效性:

审中

法律详情:

实质审查的生效IPC(主分类):H04L 12/757申请日:20130402|||公开

IPC分类号:

H04L12/757(2013.01)I; H04L1/16

主分类号:

H04L12/757

申请人:

富士通株式会社

发明人:

底欣; 田军; 张兆宇; 奥琛

地址:

日本神奈川县川崎市

优先权:

专利代理机构:

北京三友知识产权代理有限公司 11127

代理人:

樊一槿

PDF下载: PDF下载
内容摘要

本发明实施例提供了一种下行路由获取及维护方法和装置,该装置为多跳网络中的节点,该节点包括:解码单元,其对转发或侦听到的数据包进行解码,获得该数据包的数据源节点、数据目标节点、发送节点、接收节点、类型以及数据段;第一确定单元,其在该数据包的数据源节点的跳数大于该节点的跳数且两者之差为2时,根据转发数据包表,确定是否转发过或侦听到过该数据源节点的数据包;发送单元,其在第一确定单元确定没有转发过或侦听到过该数据源节点的数据包时,如果该数据包的接收节点为该节点,则在该数据包中添加该数据包的数据源节点的父节点信息,并转发包含父节点信息的数据包。通过本发明,可以在Gateway处获取和维护下行路由,并减小系统开销。

权利要求书

1.  一种多跳网络中的节点,其中,所述节点包括:
解码单元,其对转发或侦听到的数据包进行解码,获得所述数据包的数据源节点、数据目标节点、发送节点、接收节点、类型以及数据段;
第一确定单元,其在所述数据包的数据源节点至数据目标节点的跳数大于所述节点至数据目标节点的跳数且两者之差为2时,根据所述节点的转发数据包表,确定是否转发过或侦听到过所述数据源节点的数据包;
发送单元,其在所述第一确定单元确定没有转发过或侦听到过所述数据源节点的数据包时,如果所述数据包的接收节点为所述节点,则在所述数据包中添加所述数据包的数据源节点的父节点信息,并转发包含父节点信息的数据包;
第一更新单元,其在所述第一确定单元确定没有转发过或侦听到过所述数据源节点的数据包时,在所述转发数据包表中存储对应所述数据源节点及其父节点的信息条目,并将该信息条目对应的传输标识设为预定值,以及初始化预设的对应所述信息条目的遗忘时间。

2.
  根据权利要求1所述的节点,其中,所述节点还包括:
第二确定单元,其在所述第一确定单元确定转发过或侦听到过所述数据源节点的数据包时,根据所述节点的转发数据包表,确定是否已经存储过对应所述数据源节点及其父节点的信息条目;
所述发送单元在所述第二确定单元确定没有存储过对应所述数据源节点及其父节点的信息条目时,如果所述数据包的接收节点为所述节点,则在所述数据包中添加所述数据包的数据源节点的父节点信息,并转发包含父节点信息的数据包;
第二更新单元,其在所述第二确定单元确定没有存储过对应所述数据源节点及其父节点的信息条目时,在所述转发数据包表中存储对应所述数据源节点及其父节点的信息条目,并将该信息条目对应的传输标识设为预定值,以及初始化预设的对应所述信息条目的遗忘时间。

3.
  根据权利要求2所述的节点,其中,所述节点还包括:
第三确定单元,其在所述第二确定单元确定存储过对应所述数据源节点及其父节点的信息条目时,判断在预设的更新周期内,所述信息条目对应的传输标识是否为预 定值;
所述发送单元在所述第三确定单元判断为否时,如果所述数据包的接收节点为所述节点,则在所述数据包中添加所述数据包的数据源节点的父节点信息,并转发包含父节点信息的数据包;
第三更新单元,其在所述第三确定单元判断为否时,将所述信息条目对应的传输标识修改为所述预定值,并将预设的对应所述信息条目的遗忘时间重置为初始值。

4.
  根据权利要求1-3任一项所述的节点,其中,所述发送单元包括:
提取模块,其取出所述数据包中的发送节点;
添加模块,其将所述数据包的发送节点加入到所述数据包的数据段中;
修改模块,其修改所述数据包的类型为包含数据源节点的父节点信息的数据包;
发送模块,其发送包含父节点信息的数据包。

5.
  根据权利要求1所述的节点,其中,如果所述节点为转发(Relay)节点,则所述发送单元还用于在第一次转发其他节点的数据包后,按照预定的更新周期,向网关发送一条数据段为空的消息。

6.
  根据权利要求1所述的节点,其中,所述节点还包括:
暂存单元,其在所述发送单元转发了包含父节点信息的数据包之后,暂存所述包含父节点信息的数据包;
所述发送单元在所述包含父节点信息的数据包被成功发送并被成功接收后,删除所述包含父节点信息的数据包,否则重传所述包含父节点信息的数据包。

7.
  一种多跳网络中的网关节点,其中,所述网关节点包括:
第一判断单元,其根据接收到的包含父节点信息的数据包判断下行路由表是否存储了对应所述数据包的数据源节点的地址及其父节点的地址的信息条目;
第一更新单元,其在所述第一判断单元判断为否时,将所述数据包中的数据源节点的地址及其父节点的地址写入所述下行路由表的一个信息条目,并更新该信息条目对应的更新时间,或者更新该信息条目对应的更新时间和失效时间;其在所述第一判断单元判断为是时,更新所述下行路由表中对应该信息条目的更新时间,或者更新所述下行路由表中对应该信息条目的更新时间并重置对应该信息条目的失效时间;
其中,所述下行路由表包含多个信息条目,每一个信息条目包含节点地址、父节点地址和更新时间;或者,每一个信息条目包含节点地址、父节点地址、更新时间和 失效时间。

8.
  根据权利要求7所述的网关节点,其中,所述网关节点还包括:
第二判断单元,其判断所述下行路由表的各个信息条目的失效时间是否到达;
第二更新单元,其在所述第二判断单元判断为是时,根据预定策略选择删除失效时间到达的信息条目或者继续保存该失效时间到达的信息条目。

9.
  根据权利要求7所述的网关节点,其中,所述网关还包括:
查询单元,其查询其邻居节点表确定所述多跳网络中的一跳节点的父节点信息;
所述第一更新单元将所述一跳节点的地址及其父节点的地址写入所述下行路由表的一个信息条目,并更新该信息条目对应的更新时间,或者更新该信息条目对应的更新时间和失效时间。

10.
  根据权利要求7所述的网关节点,其中,所述网关还包括:
获取单元,其通过监听从所述多跳网络的一跳节点发送到两跳节点的HELLO包或者ACK包,获取所述两跳节点的父节点信息;
所述第一更新单元将所述两跳节点的地址及其父节点的地址写入所述下行路由表的一个信息条目,并更新该信息条目对应的更新时间,或者更新该信息条目对应的更新时间和失效时间;
其中,所述HELLO包或者所述ACK包中包含有发送节点的信息和接收节点的信息,所述发送节点为所述一跳节点,所述接收节点为所述两跳节点,所述发送节点的信息为所述两跳节点的父节点信息。

说明书

下行路由获取及维护方法和装置
技术领域
本发明涉及通信技术领域,尤其涉及一种多跳网络中的下行路由获取及维护方法和装置。
背景技术
为满足数据包向网关(Gateway)汇聚,多跳网络路由主要实现上行路由(从普通节点到Gateway)。而当Gateway需要控制节点或主动查询节点数据时,往往需要下行路由。由于普通节点的存储空间有限,难以维护多跳子节点路由,这就需要在Gateway处获取和维护下行路由。
传统路由算法可以通过在Gateway处建立全局路由表的方式,实现在Gateway获取和维护下行路由,但由于这种方法依赖广播(Broadcast)和洪范(Flooding)方法,获取和维护开销大。
应该注意,上面对技术背景的介绍只是为了方便对本发明的技术方案进行清楚、完整的说明,并方便本领域技术人员的理解而阐述的。不能仅仅因为这些方案在本发明的背景技术部分进行了阐述而认为上述技术方案为本领域技术人员所公知。
发明内容
本发明实施例的主要目的在于提供一种下行路由的获取及维护方法和装置,以便有效的在Gateway处获取和维护下行路由,并减小为此带来的系统开销。
本发明实施例的上述目的是通过如下技术方案实现的:
一种多跳网络中的节点,其中,所述节点包括:
解码单元,其对转发或侦听到的数据包进行解码,获得所述数据包的数据源节点、数据目标节点、发送节点、接收节点、类型以及数据段;
第一确定单元,其在所述数据包的数据源节点至数据目标节点的跳数大于所述节点至数据目标节点的跳数且两者之差为2时,根据所述节点的转发数据包表,确定是 否转发过或侦听到过所述数据源节点的数据包;
发送单元,其在所述第一确定单元确定没有转发过或侦听到过所述数据源节点的数据包时,如果所述数据包的接收节点为所述节点,则在所述数据包中添加所述数据包的数据源节点的父节点信息,并转发包含父节点信息的数据包;
第一更新单元,其在所述第一确定单元确定没有转发过或侦听到过所述数据源节点的数据包时,在所述转发数据包表中存储对应所述数据源节点及其父节点的信息条目,并将该信息条目对应的传输标识设为预定值,以及初始化预设的对应所述信息条目的遗忘时间。
一种多跳网络中的网关节点,其中,所述网关节点包括:
第一判断单元,其根据接收到的包含父节点信息的数据包判断下行路由表是否存储了对应所述数据包的数据源节点的地址及其父节点的地址的信息条目;
第一更新单元,其在所述第一判断单元判断为否时,将所述数据包中的数据源节点的地址及其父节点的地址写入所述下行路由表的一个信息条目,并更新该信息条目对应的更新时间,或者更新该信息条目对应的更新时间和失效时间;其在所述第一判断单元判断为是时,更新所述下行路由表中对应该信息条目的更新时间,或者更新所述下行路由表中对应该信息条目的更新时间并重置对应该信息条目的失效时间;
其中,所述下行路由表包含多个信息条目,每一个信息条目包含节点地址、父节点地址和更新时间;或者,每一个信息条目包含节点地址、父节点地址、更新时间和失效时间。
本发明实施例的技术效果在于,减小在Gateway处获取和维护下行路由带来的系统开销。
参照后文的说明和附图,详细公开了本发明的特定实施方式,指明了本发明的原理可以被采用的方式。应该理解,本发明的实施方式在范围上并不因而受到限制。在所附权利要求的精神和条款的范围内,本发明的实施方式包括许多改变、修改和等同。
针对一种实施方式描述和/或示出的特征可以以相同或类似的方式在一个或更多个其它实施方式中使用,与其它实施方式中的特征相组合,或替代其它实施方式中的特征。
应该强调,术语“包括/包含”在本文使用时指特征、整件、步骤或组件的存在,但并不排除一个或更多个其它特征、整件、步骤或组件的存在或附加。
附图说明
参照以下的附图可以更好地理解本发明的很多方面。附图中的部件不是成比例绘制的,而只是为了示出本发明的原理。为了便于示出和描述本发明的一些部分,附图中对应部分可能被放大或缩小。在本发明的一个附图或一种实施方式中描述的元素和特征可以与一个或更多个其它附图或实施方式中示出的元素和特征相结合。此外,在附图中,类似的标号表示几个附图中对应的部件,并可用于指示多于一种实施方式中使用的对应部件。
在附图中:
图1是本发明实施例的下行路由获取和维护方法的流程图;
图2是本发明实施例的数据包的帧结构示意图;
图3是将父节点信息添加入数据包的方法的流程图;
图4是将父节点信息添加入数据包后的数据包的帧结构的示意图;
图5是本发明实施例的多跳网络中的节点的组成示意图;
图6是本发明另一实施例的下行路由获取和维护方法的流程图;
图7是图6所示的方法中网关节点更新其下行路由表的流程图;
图8是下行路由表的结构示意图;
图9是修改后的ACK消息帧结构示意图;
图10是下行路由建立实例中的网络拓扑示意图;
图11是下行路由查询过程示意图;
图12是本发明实施例的网关节点的组成示意图。
具体实施方式
参照附图,通过下面的说明书,本发明实施例的前述以及其它特征将变得明显。这些实施方式只是示例性的,不是对本发明的限制。
为了使本领域的技术人员能够容易地理解本发明的原理和实施方式,本发明实施例以Ad-hoc网络为例进行说明,但可以理解,本发明实施例并不限于Ad-hoc网络,例如,本发明实施例提供的方法和装置也适用于传感器网络等其他多跳网络。
在Ad hoc网络中,包含两种类型节点:数据源节点(Source Node)和转发节点 (Relay Node)。其中,数据源节点定时或不定时发送以Gateway为最终目的地的数据包,而转发节点不产生原始数据,仅转发数据源节点发送来的数据包。另外,数据源节点也可以具备转发来自其他数据源节点的数据的能力,此时其功能与转发节点相同。其中,当一个数据源节点向Gateway发送数据包时,该数据包内所包含的地址信息包括:GS(Global Source,数据源节点)、GD(Global Destination,数据目标节点)、LS(Local Source,发送节点)、LD(Local Destination,接收节点)。
在本发明实施例中,假设网络已经建立上行路由,也即,所有节点均已获得下一跳父节点。
实施例1
本实施例提供了一种下行路由获取和维护方法,该方法应用于多跳网络中具备数据转发功能的节点,例如转发节点或者数据源节点。图1是该方法的流程图,请参照图1,该方法包括:
步骤101:所述节点解码转发或侦听到的数据包,获得该数据包的数据源节点、数据目标节点、发送节点、接收节点、类型以及数据段;
其中,该数据包的帧结构如图2所示,包含数据源节点(GS)、数据目标节点(GD)、发送节点(LS)、接收节点(LD)、编号(FID)、类型(TYPE)、以及数据段(DATA Payload)。其中,各字段的含义与现有技术相同,在此不再赘述。
步骤102:如果所述数据包的数据源节点的跳数(数据源节点到数据目标节点的跳数)大于自身的跳数(上述节点到数据目标节点的跳数),且所述跳数相差2,则所述节点根据自身存储的转发数据包表,确定是否转发过或侦听到过所述数据源节点的数据包;
其中,转发数据包表包含了若干个(一个或多个)信息条目,各信息条目是该节点在转发或侦听到数据包后存储的。其中,每个信息条目包含一个数据源节点的地址及其父节点的地址。
优选的,每个信息条目还可以包含一个传输标识,用于指示该信息条目的更新时间。其中,每个节点将工作时间分割成许多更新周期,在一个更新周期的时间内,如果节点执行了添加父节点信息进入数据包的操作或者侦听到与条目对应的父节点信息已经发送到其他节点,则将这一信息条目对应的传输标识置为预定值,例如为1;当进入到下一个更新周期时,将传输标识重置为非预定值,例如为0。另外,一个节 点在接收到来自数据源节点的数据包时,当数据包中的信息与存储的条目信息相同时,需要判断该传输标识,在一个更新周期内,如果该传输标识为上述预定值(例如为1),则结束处理,如果该传输标识不是上述预定值(例如为0),则执行将父节点信息加入数据包的操作,并修改传输标识为上述预定值。具体的处理过程将在以下进行说明。
优选的,每个信息条目还可以包含一个遗忘时间,用于指示该信息条目的过期时间。在创建数据包表的信息条目时,可以对该信息条目的遗忘时间进行初始化分配。在节点接收到或者侦听到与信息条目相对应的数据包时(例如,数据包中的信息与存储的条目信息相同),将该信息条目对应的遗忘时间重置为初始值。当一个信息条目对应的遗忘时间到达时,节点可以根据自己的负载决定是否删除该信息条目。
其中,由于转发数据包表中存储了包含数据源节点的地址的信息条目,如果转发过某数据源节点的数据包,则该转发数据包表中应该存储有对应该数据源节点的信息条目。因此通过查询本地存储的转发数据包表中的信息条目,可以确认是否转发过该数据源节点发送的数据包。
步骤103:如果没有转发过或侦听到过所述数据源节点的数据包,且所述数据包的接收节点为所述节点,则所述节点在所述数据包中添加所述数据包的数据源节点的父节点信息,并转发包含父节点信息的数据包。
在一个实施例中,如果该节点没有转发过或侦听到过所述数据源节点的数据包,则该节点还可以在所述转发数据包表中存储对应所述数据源节点及其父节点的信息条目,并将该信息条目对应的传输标识设为预定值。
其中,如果该节点没有转发过或侦听到过该数据源节点的数据包,且该数据包中的LD(接收节点)为自身的ID,也就是说,本地节点为该数据包的接收节点,本地节点需要转发该数据包,则本地节点将该数据包中的数据源节点的父节点信息添加到该数据包中,并转发包含该父节点信息的数据包。在一个实施例中,该节点还需要在本地的转发数据包表中创建对应该数据源节点及其父节点的信息条目,其中,该信息条目中的数据源节点就是该数据包中的GS,其父节点就是数据包中的LS。其中,还可以将该新创建的信息条目对应的传输标识设为前述预定值。其中,还可以初始化该新创建的信息条目对应的遗忘时间。
其中,如果该节点没有转发过或侦听到过该数据源节点的数据包,且该数据包中 的LD(接收节点)并不是自身的ID,这就说明,本地节点不是该数据包的接收节点,本地节点只是侦听到该数据包,并不需要转发给数据包,则本地节点只需要在转发数据包表中创建对应该数据源节点及其父节点的信息条目即可,与前述相同,该信息条目中的数据源节点就是该数据包中的GS,其父节点就是该数据包中的LS。同理,可以在创建该信息条目时将其对应的传输标识设为前述预定值。还可以同时初始化该新创建的信息条目对应的遗忘时间。
其中,本地节点可以通过图3所示的方法将该数据包中的数据源节点的父节点信息添加到该数据包中,如图3所示,该方法包括:
步骤301:取出所述数据包中的发送节点;
其中,根据步骤102的说明,由于本地节点是距离数据源节点两跳的节点,因此该数据包中的发送节点(LS)即为该数据源节点的父节点。
步骤302:将所述数据包的发送节点加入到所述数据包的数据段中;
其中,通过将数据源节点的父节点加入到该数据包的数据段中,可以协助网关获取节点及其父节点信息,以确定下行路由。具体将在以下的实施例中加以说明。
修改后的数据包的帧结构如图4所示,其中,在该数据包的数据段(DATA Payload)中,不仅包含了其原有的数据内容(DATA),还包含了父节点信息(Parent ID)。图4所示的示例是以父节点的信息加入数据段的头部为例,但本实施例并不以此作为限制。
步骤303:修改所述数据包的类型为包含数据源节点的父节点信息的数据包。
其中,通过修改该数据包的类型(如图4所示的TYPE段),可以协助网关节点确认该数据包的类型。如果通过确认该数据包的类型,发现该数据包是包含了父节点信息的数据包,则可以提取其中的数据源节点及其父节点的信息,并添加入其下行路由表中。具体将在以下的实施例中加以说明。
为使本实施方式的方法更加清楚易懂,以下通过举例对该方法进行说明。
举例说明,假设数据源节点A经过节点B发送数据包到节点C,则节点C收到的数据包中,GS为A,LS为B,LD为C,而节点C通过查询其本地的转发数据包表,发现没有转发过或侦听到过节点A发送的数据包,也就是说,其转发数据包表中不包含数据源节点为节点A的信息条目,则根据本实施方式的方法,节点C取出数据包中的LS,也即B的地址,添加入该数据包的数据段中,并修改该数据包的类 型为包含父节点信息的数据包,转发该数据包,并可以在转发数据包表中创建节点A及其父节点B的信息条目,同时,可以将该条目对应的传输标识设为预定值,并初始化该信息条目对应的遗忘时间。
根据本实施方式的另外一种情况,在该举例中,如果节点D侦听到了该数据包(GS为A,LS为B,LD为C),同样的,该节点D通过查询其本地的转发数据包表,发现没有转发过或侦听到过节点A发送的数据包,也就是说,其转发数据包表中也不包含数据源节点为节点A的信息条目,则根据本实施方式的方法,由于节点D并不是该数据包的接收节点,节点D只需要在其转发数据包表中创建对应该数据包的节点A及其父节点B的信息条目即可,当然,可选的,还可以将该条目对应的传输标识设为预定值,并初始化该信息条目对应的遗忘时间。
通过步骤101-103的处理,该节点将包含父节点信息的数据包转发出去,由此网关节点可以获得该数据源节点及其父节点,并存储在其下行路由表中。当网关节点通过这种方式获得了该多跳网络中的所有数据源节点及其父节点的信息后,即可由此确定到任意一个节点的下行路径。不但可以在网关节点处获取和维护下行路由,还减小了为此带来的系统开销。其中,对于网关侧的处理将在以下的实施例中加以说明。
在本实施例的一个实施方式中,通过步骤102的判断,如果该节点转发过或侦听到过该数据源节点发送的数据包,则该方法还可以包括以下步骤:
步骤104:所述节点根据自身存储的转发数据包表,确定是否存储过对应所述数据源节点及其父节点的信息条目;
步骤105:如果没有存储过对应所述数据源节点及其父节点的信息条目,且所述数据包的接收节点为所述节点,则所述节点在所述数据包中添加所述数据包的数据源节点的父节点信息,并转发包含父节点信息的数据包。
其中,与步骤103类似,如果没有存储过对应所述数据源节点及其父节点的信息条目,该节点还可以在所述转发数据包表中存储对应所述数据源节点及其父节点的信息条目,优选的,还可以将该信息条目对应的传输标识设为预定值,优选的,还可以初始化该信息条目对应的遗忘时间。
在该实施方式中,本地节点可能转发过或侦听到过该数据源节点发送的数据包,但是没有存储过对应该数据源节点及其父节点的信息条目,则本地节点可以执行如前所述的处理,包括:如果数据包的LD是本地节点,则执行将父节点信息添加入数据 包的操作并转发该包含了父节点信息的数据包,同时在转发数据包表中创建新的信息条目,优选的可以将该条目对应的传输标识设为预定值,优选的还可以初始化该信息条目对应的遗忘时间;如果数据包的LD不是本地节点,则仅在转发数据包表中创建新的信息条目,优选的可以将该条目对应的传输标识设为预定值,优选的还可以初始化该信息条目对应的遗忘时间。
其中,在本实施方式中,本地节点也可以通过图3所示的方法将该数据包中的数据源节点的父节点信息添加到该数据包中,如前所述,在此不再赘述。
为使本实施方式的方法更加清楚易懂,以下通过举例加以说明。
举例说明,假设数据源节点A经过节点B发送数据包到节点C,则节点C收到的数据包中,GS为A,LS为B,LD为C,而节点C通过查询其本地的转发数据包表,发现包含节点A及其父节点E的信息条目,但不包含节点A及其父节点B的信息条目,也就是说转发过或侦听到过该数据源节点A的数据包,但该数据包不是通过节点B转发的而是通过节点E转发的,所以存储的信息条目是节点A及其父节点E,没有存储过对应此次接收到的数据包的数据源节点A及其父节点B的信息条目。则根据本实施方式的方法,节点C取出数据包中的LS,也即B的地址,添加入该数据包的数据段中,并修改该数据包的类型为包含父节点信息的数据包,转发该数据包,并可以在转发数据包表中创建节点A及其父节点B的信息条目,同时,可以将该条目对应的传输标识设为预定值,并初始化该信息条目对应的遗忘时间。
根据本实施方式的另外一种情况,在该举例中,如果节点D侦听到了该数据包(GS为A,LS为B,LD为C),同样的,该节点D的转发数据包表中存储了节点A及其父节点E的信息条目,而没有存储对应该数据包的节点A及其父节点B的信息条目,则由于节点D并不是该数据包的接收节点,节点D只需要在其转发数据包表中创建对应该数据包的节点A及其父节点B的信息条目即可,当然,可选的,还可以将该条目对应的传输标识设为预定值,并初始化该信息条目对应的遗忘时间。
通过步骤101-102、104-105的处理,该节点将包含父节点信息的数据包转发出去,由此网关节点可以获得该数据源节点及其父节点,并存储在其下行路由表中。当网关节点通过这种方式获得了该多跳网络中的所有数据源节点及其父节点的信息后,即可由此确定到任意一个节点的下行路径。不但可以在网关节点处获取和维护下行路由,还减小了为此带来的系统开销。其中,对于网关侧的处理将在以下的实施例中加 以说明。
在本实施例的一个实施方式中,通过步骤104的判断,如果存储过对应数据源节点及其父节点的信息条目,则该方法还可以包括以下步骤:
步骤106:所述节点判断在预设的更新周期内,所述信息条目对应的传输标识是否为预定值;
步骤107:如果在预设的更新周期内,所述信息条目对应的传输标识不是预定值,且所述数据包的接收节点为所述节点,则所述节点在所述数据包中添加所述数据包的数据源节点的父节点信息,并转发包含父节点信息的数据包。
其中,如果在预设的更新周期内,所述信息条目对应的传输标识不是预定值,该节点还可以将该信息条目对应的传输标识修改为该预定值,优选的,还可以将该信息条目对应的遗忘时间重置为初始值。
其中,如果在预设的更新周期内,所述信息条目对应的传输标识是预定值,则该节点可以结束处理。
在该实施方式中,本地节点可能转发过或侦听到过该数据源节点发送的数据包,并且存储过对应该数据源节点及其父节点的信息条目,如果该信息条目对应的传输标识仍然是预定值(例如为1),则说明该信息条目还未过更新周期,此时可以不做处理,也可以将该信息条目对应的遗忘时间重置为初始值;如果该信息条目对应的传输标识是非预定值(例如为0),则说明该信息条目已经过了更新周期,此时如果该数据包的LD是本地节点,则执行将父节点信息添加入数据包的操作并转发该包含了父节点信息的数据包,由于该信息条目类似于被重新处理过,因此可以将该条目对应的传输标识重新修改为预定值,优选的还可以将该信息条目对应的遗忘时间重置为初始值;如果数据包的LD不是本地节点,也就是说,该本地节点只是侦听到该数据包,则本地节点可以仅将其转发数据包表中的该信息条目的传输标识修改为上述预定值,优选的还可以将该信息条目对应的遗忘时间重置为初始值。
其中,在本实施方式中,本地节点也可以通过图3所示的方法将该数据包中的数据源节点的父节点信息添加到该数据包中,如前所述,在此不再赘述。
为使本实施方式的方法更加清楚易懂,以下通过举例加以说明。
举例说明,假设数据源节点A经过节点B发送数据包到节点C,则节点C收到的数据包中,GS为A,LS为B,LD为C,而节点C通过查询其本地的转发数据包 表,发现包含节点A及其父节点B的信息条目,也就是说不但转发过或侦听到过该数据源节点A的数据包,而且存储过对应该数据包的数据源节点A及其父节点B的信息条目。则根据本实施方式的方法,节点C查看在更新周期内该信息条目对应的传输标识是为预定值,如果是预定值,就说明可能刚刚转发过该数据包,则节点C可以不做任何处理;如果不是预定值,就说明该条目已经过了更新周期,此时由于节点C就是该数据包的接收节点,则节点C取出数据包中的LS,也即B的地址,添加入该数据包的数据段中,并修改该数据包的类型为包含父节点信息的数据包,转发该数据包,同时,该节点C还可以将该条目对应的传输标识修改为上述预定值,并将该信息条目对应的遗忘时间重置为初始值。
根据本实施方式的另外一种情况,在该举例中,如果节点D侦听到了该数据包(GS为A,LS为B,LD为C),同样的,该节点D的转发数据包表中存储了节点A及其父节点B的信息条目,则由于节点D并不是该数据包的接收节点,节点D只需要将其转发数据包表中的对应该数据包的节点A及其父节点B的信息条目的传输标识修改为上述预定值即可,当然,可选的,还可以将该信息条目对应的遗忘时间重置为初始值。
通过步骤101-102、104、106-107的处理,该节点将包含父节点信息的数据包转发出去,由此网关节点可以获得该数据源节点及其父节点,并存储在其下行路由表中。当网关节点通过这种方式获得了该多跳网络中的所有数据源节点及其父节点的信息后,即可由此确定到任意一个节点的下行路径。不但可以在网关节点处获取和维护下行路由,还减小了为此带来的系统开销。其中,对于网关侧的处理将在以下的实施例中加以说明。
在本实施例中,如果上述本地节点是只执行转发其它节点的数据包而不产生原始数据包的转发(Relay)节点,则该节点在第一次转发其它节点的数据包后,可以按照更新周期,主动向网关(Gateway)节点发送一条数据段为空的消息,以便接收到这一消息的具备数据转发功能的节点,按照与数据源节点发送数据包结构相同的方式处理,以便网关节点可以获知该节点的父节点信息。
在本实施例中,本地节点在转发了其他节点的包含父节点信息的数据包后,为了保障传输的可靠性,还可以暂存该包含父节点信息的数据包,当带有父节点信息的数据包被成功传递到下一跳节点时(成功发送并被成功接收),该本地节点可以删除该 包含父节点信息的数据包,当带有父节点信息的数据包未成功传递到下一跳节点时,该本地节点可以将该数据包重新放入到发送队列中,重新发送。其中,放入位置可以根据实际情况进行选择,例如可以放入发送队列的末尾。
在本实施例中,为了进一步减小系统开销,如果该节点是该多跳网络中的一跳节点,在该节点向Gateway转发数据包时,可以不执行如本实施例1的操作(将父节点信息添加入数据包、在转发数据包表中创建条目等),而是按照传统方法直接转发该数据包,此时,Gateway可以在自身的邻居表中,查询到所有一跳节点,进而获得一跳节点的父节点信息,也即Gateway本身。
在本实施例中,为了进一步减小系统开销,在带有握手(Hello)机制或确认(ACK)机制的情况下,如果该节点是该多跳网络中的一跳节点,在转发其数据包时,可以去掉数据包中的LS信息,也即一跳节点在向Gateway转发数据包时,在传统方法的基础上去掉该数据包的LS信息,Gateway可以通过侦听该一跳节点与两跳节点之间的Hello包或者ACK包来获得两跳节点对应的父节点(一跳节点)信息。具体的过程将在实施例3进行详细说明。
通过本实施例的方法,多跳网络中的具备数据转发功能的节点可以将包含父节点信息的数据包传递到下一跳节点,由此网关可以获得各节点及其父节点的信息,利用该信息建立下行路由表,可以确定其到任意一个节点的下行路径。不但可以在网关节点处获取和维护下行路由,还减小了为此带来的系统开销。
本发明实施例还提供了一种多跳网络中的节点,如下面的实施例2所述,由于该节点解决问题的原理与实施例1的方法类似,因此其具体的实施可以参照实施例1的方法的实施,重复之处不再赘述。
实施例2
本发明实施例提供了一种多跳网络中的节点。图5是该节点的组成示意图,请参照图5,该节点包括:
解码单元51,其对转发或侦听到的数据包进行解码,获得所述数据包的数据源节点、数据目标节点、发送节点、接收节点、类型以及数据段;
第一确定单元52,其在所述数据包的数据源节点的跳数(数据源节点到数据目标节点的跳数)大于所述节点的跳数(上述节点到数据目标节点的跳数)且两者之差为2时,根据所述节点的转发数据包表,确定是否转发过或侦听到过所述数据源节点 的数据包;
发送单元53,其在所述第一确定单元52确定没有转发过或侦听到过所述数据源节点的数据包时,如果所述数据包的接收节点为所述节点,则在所述数据包中添加所述数据包的数据源节点的父节点信息,并转发包含父节点信息的数据包。
在一个实施方式中,该节点还可以包括:
第一更新单元54,其在所述第一确定单元52确定没有转发过或侦听到过所述数据源节点的数据包时,在所述转发数据包表中存储对应所述数据源节点及其父节点的信息条目,并将该信息条目对应的传输标识设为预定值。
在一个实施方式中,该节点还可以包括:
第二确定单元55,其在所述第一确定单元52确定转发过或侦听到过所述数据源节点的数据包时,根据所述节点的转发数据包表,确定是否已经存储过对应所述数据源节点及其父节点的信息条目;
所述发送单元53在所述第二确定单元55确定没有存储过对应所述数据源节点及其父节点的信息条目时,如果所述数据包的接收节点为所述节点,则在所述数据包中添加所述数据包的数据源节点的父节点信息,并转发包含父节点信息的数据包。
在该实施方式中,该节点还可以包括:
第二更新单元56,其在所述第二确定单元55确定没有存储过对应所述数据源节点及其父节点的信息条目时,在所述转发数据包表中存储对应所述数据源节点及其父节点的信息条目,并将该信息条目对应的传输标识设为预定值。
在一个实施方式中,该节点还可以包括:
第三确定单元57,其在所述第二确定单元55确定存储过对应所述数据源节点及其父节点的信息条目时,判断在预设的更新周期内,所述信息条目对应的传输标识是否为预定值;
所述发送单元53在所述第三确定单元57判断为否时,如果所述数据包的接收节点为所述节点,则在所述数据包中添加所述数据包的数据源节点的父节点信息,并转发包含父节点信息的数据包。
在该实施方式中,该节点还可以包括:
第三更新单元58,其在所述第三确定单元57判断为否时,将所述信息条目对应的传输标识修改为所述预定值。
在以上的实施方式中,发送单元53可以包括:
提取模块531,其取出所述数据包中的发送节点;
添加模块532,其将所述数据包的发送节点加入到所述数据包的数据段中;
修改模块533,其修改所述数据包的类型为包含数据源节点的父节点信息的数据包;
发送模块534,其发送包含父节点信息的数据包。
在以上的实施方式中,第一更新单元54还可以在将信息条目对应的传输标识设为预定值后,初始化预设的对应所述信息条目的遗忘时间。
在以上的实施方式中,第二更新单元56还可以在将信息条目对应的传输标识设为预定值后,初始化预设的对应所述信息条目的遗忘时间。
在以上的实施方式中,第三更新单元58还可以在将所述信息条目对应的传输标识修改为所述预定值后,将预设的对应所述信息条目的遗忘时间重置为初始值。
在本实施例中,如果所述节点为转发(Relay)节点,则所述发送单元53还可以在第一次转发其他节点的数据包后,按照预定的更新周期,向网关发送一条数据段为空的消息。
在一个实施方式中,该节点还可以包括:
暂存单元59,其在所述发送单元53转发了包含父节点信息的数据包之后,暂存所述包含父节点信息的数据包;
所述发送单元53在所述包含父节点信息的数据包被成功发送并被成功接收后,删除所述暂存单元59中所存储的包含父节点信息的数据包,否则重传所述暂存单元59中所存储的包含父节点信息的数据包,例如将该包含父节点信息的数据包加入到发送队列中进行发送。
本实施例的节点的各组成部分的功能与实施例1的方法的各步骤相同,其内容被合并于此,在此不再赘述。
通过本实施例的节点将包含父节点信息的数据包传递到下一跳节点,由此网关可以获得各节点及其父节点的信息,利用该信息建立下行路由表,可以确定其到任意一个节点的下行路径。不但可以在网关节点处获取和维护下行路由,还减小了为此带来的系统开销。
实施例3
本发明实施例还提供了一种下行路由获取和维护方法,该方法应用于多跳网络的网关节点。图6是该方法的流程图,请参照图6,该方法包括:
步骤601:所述网关节点根据接收到的包含父节点信息的数据包更新其预先存储的下行路由表,
其中,所述下行路由表包含多个信息条目,每一个信息条目包含节点地址、父节点地址和更新时间,或者每一个信息条目包含节点地址、父节点地址、更新时间和失效时间。
在步骤601的一个实施方式中,网关节点更新其下行路由表的步骤可以通过图7所示的方法来实现,请参照图7,该方法包括:
步骤701:根据下行路由表确定是否已经存储对应该数据包的数据源节点的地址及其父节点的地址的信息条目;
步骤702:如果没有存储对应该数据包的数据源节点的地址及其父节点的地址的信息条目,则所述网关节点将所述数据包中的数据源节点的地址及其父节点的地址写入所述下行路由表的一个信息条目,并更新该信息条目对应的更新时间,或者更新该信息条目对应的更新时间和失效时间。
步骤703:如果已经存储对应该数据包的数据源节点的地址及其父节点的地址的信息条目,则所述网关节点更新所述下行路由表中对应该信息条目的更新时间,或者所述网关节点更新所述下行路由表中对应该信息条目的更新时间并重置对应该信息条目的失效时间。
在本实施例中,当Gateway接收到一个Type类型为包含了父节点信息的数据包时,Gateway将其中包含的节点ID(GS)和父节点ID(Parent)存储在下行路由表中,该下行路由表的结构如图8所示。其中,节点ID可能是产生原始数据的数据源节点的ID,也可能是只转发其他节点的数据包而不产生原始数据包的Realy节点,如实施例1所述,由于该Relay节点也向Gateway发送了数据段为空的消息,则该消息中的GS即为该Realy节点的ID。
如图8所示,在该下行路由表中,第一列存储内容为节点ID标识,第二列存储内容为对应的父节点ID标识,第三列存储这一条目的更新时间,第四列是可选的,其可以存储这一信息条目的失效时间。
当Gateway接收到包含一个条目的数据包时,若相同条目已经存储在Gateway 上,则Gateway更新该条目的更新时间,可选的还可以重置该条目的失效时间。当条目的失效时间到达仍未更新时,Gateway可以根据节点的父节点个数、内存使用情况等因素,选择删除或继续保存这一条目。
通过本实施例的方法,当Gateway需要查询某个节点的下行路径时,按照该节点到Gateway的顺序反向查找到完整路径,即节点的上行路径,将上行路径反向即为下行路径。其中,当该下行路由表中存储了多于一个父节点时,可从中选择一个作为下行路由的父节点,例如选择最近一次作为父节点转发数据包的节点,也即更新时间与当前时刻最接近的节点。
在本实施例的一个实施方式中,为了进一步减小系统开销,距离Gateway一跳范围内的节点,可以不向网关汇聚父节点信息,也即不按照实施例1的方法向网关转发数据包,而是按照传统方法转发数据包,也即不在数据包中添加父节点信息。此时,Gateway可以在自身的邻居节点表中,查询到所有的一跳节点,获得其父节点信息。也即,在该实施方式中,网关节点查询其邻居节点表,以确定该多跳网络中的一跳节点的父节点信息,并将该一跳节点的地址及其父节点地址(也即Gateway本身)写入所述下行路由表的一个信息条目,并更新该信息条目对应的更新时间,或者更新该信息条目对应的更新时间和失效时间。
在本实施例的另一个实施方式中,为了进一步减小系统开销,距离Gateway两跳范围的节点,在带有握手(Hello)机制或确认(ACK)机制的情况下,一跳节点在转发其数据包时,可以去掉数据包中的LS信息。Gateway通过监听从一跳节点发送到两跳节点的HELLO包或者ACK包,来获取两跳节点的父节点信息,此时,该Gateway将两跳节点的地址及其父节点的地址写入该下行路由表的一个信息条目,并更新该条目对应的更新时间,或者更新该信息条目对应的更新时间和失效时间。其中,所述HELLO包或者所述ACK包中包含有发送节点(一跳节点)的信息和接收节点(两跳节点)的信息,所述发送节点的信息为所述两跳节点的父节点信息。
在本实施方式中,在带有握手机制的情况下,如果用于节点间握手的Hello包中带有发送节点的子节点信息,则当一跳节点向两跳节点发送Hello包时,Gateway可以侦听这些Hello包,获得两跳节点(子节点)对应的一跳节点(父节点)信息,并保存在图8所示的下行路由表中;
在本实施方式中,在带有ACK机制的情况下,距离Gateway两跳的节点不向 Gateway发送父节点信息。距离Gateway两跳的节点,需要距离Gateway一跳的节点转发数据包。当距离Gateway一跳的节点成功接收到数据包后,会向距离Gateway两跳的节点回复ACK消息。Gateway可以通过侦听这些ACK消息,从中获得两跳节点(子节点)和一跳节点(父节点)的路由信息,并将父节点加入到下行路由表的相应位置中。
在以上的两个实施方式中,不同协议中ACK消息的结构不同,但都较为简单。为实现本发明实施例的方法,ACK消息中可以包含一跳节点(ACK消息发送端)的ID和两跳节点(ACK消息接收端)的ID。以IEEE802.11协议为例,修改后的ACK消息帧结构如图9所示。其中,接收端ID可从需确认的数据帧中复制,即为数据帧中的源节点ID,而发送端ID即为节点自身ID。
为了使本实施例的方法更加清楚易懂,以下结合附图和一个具体示例对本实施例的方法进行说明。
请参照图10所示的网络拓扑示意图以及图11所示的下行路由查询过程的示意图。对于图10所示的网络拓扑,假设为其建立了如图11所示的下行路由表。当Gateway需要查询节点8的下行路由时,首先在下行路由表中查询到节点8的父节点为节点7,继续查询节点7的父节点为节点3,重复这一过程,直到查询到某节点的父节点为Gateway自身为止。将查询到的所有节点按照相反顺序排列,Gateway即可获得完整的到节点8的下行路径:0→1→3→7→8。
通过本实施例的方法,Gateway根据获取到的包含父节点信息的数据包建立和更新下行路由表,可以确定其到任意一个节点的下行路径。不但可以在网关节点处获取和维护下行路由,还减小了为此带来的系统开销。
本发明实施例还提供了一种多跳网络中的网关节点,如下面的实施例4所述,由于该网关节点解决问题的原理与实施例3的方法类似,因此其具体的实施可以参照实施例3的方法的实施,重复之处不再赘述。
实施例4
本发明实施例提供了一种多跳网络中的网关节点。图12是该网关节点的组成示意图,请参照图12,该网关节点包括:
第一判断单元121,其根据接收到的包含父节点信息的数据包判断下行路由表是否存储了对应所述数据包的数据源节点的地址及其父节点的地址的信息条目;
第一更新单元122,其在第一判断单元121判断为否时,将所述数据包中的数据源节点的地址及其父节点的地址写入所述下行路由表的一个信息条目,并更新该信息条目对应的更新时间,或者更新该信息条目对应的更新时间和失效时间;在第一判断单元121判断为是时,更新所述下行路由表中对应该信息条目的更新时间,或者更新所述下行路由表中对应该信息条目的更新时间并重置对应该信息条目的失效时间。
其中,所述下行路由表包含多个信息条目,每一个信息条目包含节点地址、父节点地址和更新时间;或者,每一个信息条目包含节点地址、父节点地址、更新时间和失效时间。
在一个实施方式中,网关节点还包括:
第二判断单元123,其判断所述下行路由表的各个信息条目的失效时间是否到达。
第二更新单元124,其在第二判断单元123判断为是时,根据预定策略选择删除失效时间到达的信息条目或者继续保存该失效时间到达的信息条目。
在一个实施方式中,网关节点还包括:
查询单元125,其查询其邻居节点表确定所述多跳网络中的一跳节点的父节点信息;
此时,第一更新单元121将所述一跳节点的地址及其父节点的地址写入所述下行路由表的一个信息条目,并更新该信息条目对应的更新时间,或者更新该信息条目对应的更新时间和失效时间。
在一个实施方式中,网关节点还包括:
获取单元126,其通过监听从所述多跳网络的一跳节点发送到两跳节点的HELLO包或者ACK包,获取所述两跳节点的父节点信息;
此时,第一更新单元121将所述两跳节点的地址及其父节点的地址写入所述下行路由表的一个信息条目,并更新该信息条目对应的更新时间,或者更新该信息条目对应的更新时间和失效时间。其中,所述HELLO包或者所述ACK包中包含有发送节点的信息和接收节点的信息,所述发送节点为所述一跳节点,所述接收节点为所述两跳节点,所述发送节点的信息为所述两跳节点的父节点信息。
通过本实施例的网关节点根据获取到的包含父节点信息的数据包建立和更新下行路由表,可以确定其到任意一个节点的下行路径。不但可以在网关节点处获取和维 护下行路由,还减小了为此带来的系统开销。
本发明实施例还提供了一种通信网络,该通信网络包括一个或多个实施例2所述的节点,以及实施例4所述的网关节点。其内容被合并于此,在此不再赘述。
本发明实施例还提供了一种计算机可读程序,其中当在终端设备中执行该程序时,该程序使得计算机在所述终端设备中执行实施例1或实施例3所述的下行路由获取和维护方法。
本发明实施例还提供了一种存储有计算机可读程序的存储介质,其中该计算机可读程序使得计算机在终端设备中执行实施例1或实施例3所述的下行路由获取和维护方法。
以上参照附图描述了本发明的优选实施方式。这些实施方式的许多特征和优点根据该详细的说明书是清楚的,因此所附权利要求旨在覆盖这些实施方式的落入其真实精神和范围内的所有这些特征和优点。此外,由于本领域的技术人员容易想到很多修改和改变,因此不是要将本发明的实施方式限于所例示和描述的精确结构和操作,而是可以涵盖落入其范围内的所有合适修改和等同物。
应当理解,本发明的各部分可以用硬件、软件、固件或者它们的组合来实现。在上述实施方式中,多个步骤或方法可以用存储在存储器中且由合适的指令执行系统执行的软件或固件来实现。例如,如果用硬件来实现,和在另一实施方式中一样,可以用本领域共知的下列技术中的任一项或者他们的组合来实现:具有用于对数据信号实现逻辑功能的逻辑门电路的离散逻辑电路,具有合适的组合逻辑门电路的专用集成电路,可编程门阵列(PGA),现场可编程门阵列(FPGA)等。
根据本发明实施例的方法和装置,还公开了以下附记:
附记1,一种下行路由获取和维护方法,该方法应用于多跳网络中的具备数据转发功能的节点,其中,所述方法包括:
所述节点解码转发或侦听到的数据包,获得所述数据包的数据源节点、数据目标节点、发送节点、接收节点、类型以及数据段;
如果所述数据包的数据源节点的跳数(数据源节点到数据目标节点的跳数)大于自身的跳数(上述节点到数据目标节点的跳数),且所述跳数相差2,则所述节点根据自身存储的转发数据包表,确定是否转发过所述数据源节点的数据包;
如果没有转发过所述数据源节点的数据包,且所述数据包的接收节点为所述节 点,则所述节点在所述数据包中添加所述数据包的数据源节点的父节点信息,并转发包含父节点信息的数据包。
附记2,根据附记1所述的方法,其中,如果没有转发过所述数据源节点的数据包,则所述方法还包括:
所述节点在所述转发数据包表中存储对应所述数据源节点及其父节点的信息条目,并将该信息条目对应的传输标识设为预定值。
附记3,根据附记1所述的方法,其中,如果转发过所述数据源节点的数据包,则所述方法还包括:
所述节点根据自身存储的转发数据包表,确定是否存储过对应所述数据源节点及其父节点的信息条目;
如果没有存储过对应所述数据源节点及其父节点的信息条目,且所述数据包的接收节点为所述节点,则所述节点在所述数据包中添加所述数据包的数据源节点的父节点信息,并转发包含父节点信息的数据包。
附记4,根据附记3所述的方法,其中,如果没有存储过对应所述数据源节点及其父节点的信息条目,则所述方法还包括:
所述节点在所述转发数据包表中存储对应所述数据源节点及其父节点的信息条目,并将该信息条目对应的传输标识设为预定值。
附记5,根据附记3所述的方法,其中,如果存储过对应所述数据源节点及其父节点的信息条目,则所述方法还包括:
所述节点判断在预设的更新周期内,所述信息条目对应的传输标识是否为预定值;
如果在预设的更新周期内,所述信息条目对应的传输标识不是预定值,且所述数据包的接收节点为所述节点,则所述节点在所述数据包中添加所述数据包的数据源节点的父节点信息,并转发包含父节点信息的数据包。
附记6,根据附记5所述的方法,其中,如果在预设的更新周期内,所述信息条目对应的传输标识不是预定值,则所述方法还包括:
所述节点将所述信息条目对应的传输标识修改为所述预定值。
附记7,根据附记1-附记6任一项所述的方法,其中,所述节点在所述数据包中添加所述数据包的数据源节点的父节点信息的步骤包括:
取出所述数据包中的发送节点;
将所述数据包的发送节点加入到所述数据包的数据段中;
修改所述数据包的类型为包含数据源节点的父节点信息的数据包。
附记8,根据附记2或4所述的方法,其中,在将信息条目对应的传输标识设为预定值后,所述方法还包括:
初始化预设的对应所述信息条目的遗忘时间。
附记9,根据附记6所述的方法,其中,在将所述信息条目对应的传输标识修改为所述预定值后,所述方法还包括:
将预设的对应所述信息条目的遗忘时间重置为初始值。
附记10,根据附记1所述的方法,其中,如果所述节点为转发(Relay)节点,则所述方法还包括:
在第一次转发其他节点的数据包后,按照预定的更新周期,向网关发送一条数据段为空的消息。
附记11,根据附记1所述的方法,其中,所述方法还包括:
在转发了包含父节点信息的数据包后,暂存所述包含父节点信息的数据包,如果所述包含父节点信息的数据包被成功发送并被成功接收,则所述节点删除所述包含父节点信息的数据包,否则重传所述包含父节点信息的数据包。
附记12,一种下行路由获取和维护方法,该方法应用于多跳网络的网关节点,其中,所述方法包括:
所述网关节点根据接收到的包含父节点信息的数据包更新其预先存储的下行路由表,
其中,所述下行路由表包含多个信息条目,每一个信息条目包含节点地址、父节点地址和更新时间,或者每一个信息条目包含节点地址、父节点地址、更新时间和失效时间。
附记13,根据附记12所述的方法,其中,所述网关节点根据接收到的包含父节点信息的数据包更新其预先存储的下行路由表的步骤包括:
当所述下行路由表没有存储对应所述数据包的数据源节点的地址及其父节点的地址的信息条目时,所述网关节点将所述数据包中的数据源节点的地址及其父节点的地址写入所述下行路由表的一个信息条目,并更新该信息条目对应的更新时间,或者 更新该信息条目对应的更新时间和失效时间。
附记14,根据附记12所述的方法,其中,所述网关节点根据接收到的包含父节点信息的数据包更新其预先存储的下行路由表的步骤包括:
当所述下行路由表存储了对应所述数据包的数据源节点的地址及其父节点的地址的信息条目时,所述网关节点更新所述下行路由表中对应该信息条目的更新时间,或者所述网关节点更新所述下行路由表中对应该信息条目的更新时间并重置对应该信息条目的失效时间。
附记15,根据附记12所述的方法,其中,所述方法还包括:
当所述下行路由表的一个信息条目的失效时间到达时,所述网关节点根据预定策略选择删除该信息条目或者继续保存该信息条目。
附记16,根据附记12所述的方法,其中,所述方法还包括:
所述网关节点查询其邻居节点表,以确定所述多跳网络中的一跳节点的父节点信息,并将该一跳节点的地址及其父节点地址写入所述下行路由表的一个信息条目,并更新该信息条目对应的更新时间,或者更新该信息条目对应的更新时间和失效时间。
附记17,根据附记12所述的方法,其中,所述方法还包括:
所述网关节点通过监听从所述多跳网络的一跳节点发送到两跳节点的HELLO包或者ACK包,来获取所述两跳节点的父节点信息;
所述网关节点将所述两跳节点的地址及其父节点的地址写入所述下行路由表的一个信息条目,并更新该条目对应的更新时间,或者更新该信息条目对应的更新时间和失效时间,
其中,所述HELLO包或者所述ACK包中包含有发送节点的信息和接收节点的信息,所述发送节点为所述一跳节点,所述接收节点为所述两跳节点,所述发送节点的信息为所述两跳节点的父节点信息。

下行路由获取及维护方法和装置.pdf_第1页
第1页 / 共25页
下行路由获取及维护方法和装置.pdf_第2页
第2页 / 共25页
下行路由获取及维护方法和装置.pdf_第3页
第3页 / 共25页
点击查看更多>>
资源描述

《下行路由获取及维护方法和装置.pdf》由会员分享,可在线阅读,更多相关《下行路由获取及维护方法和装置.pdf(25页珍藏版)》请在专利查询网上搜索。

1、10申请公布号CN104104605A43申请公布日20141015CN104104605A21申请号201310112066522申请日20130402H04L12/757201301H04L1/1620060171申请人富士通株式会社地址日本神奈川县川崎市72发明人底欣田军张兆宇奥琛74专利代理机构北京三友知识产权代理有限公司11127代理人樊一槿54发明名称下行路由获取及维护方法和装置57摘要本发明实施例提供了一种下行路由获取及维护方法和装置,该装置为多跳网络中的节点,该节点包括解码单元,其对转发或侦听到的数据包进行解码,获得该数据包的数据源节点、数据目标节点、发送节点、接收节点、类型以。

2、及数据段;第一确定单元,其在该数据包的数据源节点的跳数大于该节点的跳数且两者之差为2时,根据转发数据包表,确定是否转发过或侦听到过该数据源节点的数据包;发送单元,其在第一确定单元确定没有转发过或侦听到过该数据源节点的数据包时,如果该数据包的接收节点为该节点,则在该数据包中添加该数据包的数据源节点的父节点信息,并转发包含父节点信息的数据包。通过本发明,可以在GATEWAY处获取和维护下行路由,并减小系统开销。51INTCL权利要求书2页说明书15页附图7页19中华人民共和国国家知识产权局12发明专利申请权利要求书2页说明书15页附图7页10申请公布号CN104104605ACN104104605。

3、A1/2页21一种多跳网络中的节点,其中,所述节点包括解码单元,其对转发或侦听到的数据包进行解码,获得所述数据包的数据源节点、数据目标节点、发送节点、接收节点、类型以及数据段;第一确定单元,其在所述数据包的数据源节点至数据目标节点的跳数大于所述节点至数据目标节点的跳数且两者之差为2时,根据所述节点的转发数据包表,确定是否转发过或侦听到过所述数据源节点的数据包;发送单元,其在所述第一确定单元确定没有转发过或侦听到过所述数据源节点的数据包时,如果所述数据包的接收节点为所述节点,则在所述数据包中添加所述数据包的数据源节点的父节点信息,并转发包含父节点信息的数据包;第一更新单元,其在所述第一确定单元确。

4、定没有转发过或侦听到过所述数据源节点的数据包时,在所述转发数据包表中存储对应所述数据源节点及其父节点的信息条目,并将该信息条目对应的传输标识设为预定值,以及初始化预设的对应所述信息条目的遗忘时间。2根据权利要求1所述的节点,其中,所述节点还包括第二确定单元,其在所述第一确定单元确定转发过或侦听到过所述数据源节点的数据包时,根据所述节点的转发数据包表,确定是否已经存储过对应所述数据源节点及其父节点的信息条目;所述发送单元在所述第二确定单元确定没有存储过对应所述数据源节点及其父节点的信息条目时,如果所述数据包的接收节点为所述节点,则在所述数据包中添加所述数据包的数据源节点的父节点信息,并转发包含父。

5、节点信息的数据包;第二更新单元,其在所述第二确定单元确定没有存储过对应所述数据源节点及其父节点的信息条目时,在所述转发数据包表中存储对应所述数据源节点及其父节点的信息条目,并将该信息条目对应的传输标识设为预定值,以及初始化预设的对应所述信息条目的遗忘时间。3根据权利要求2所述的节点,其中,所述节点还包括第三确定单元,其在所述第二确定单元确定存储过对应所述数据源节点及其父节点的信息条目时,判断在预设的更新周期内,所述信息条目对应的传输标识是否为预定值;所述发送单元在所述第三确定单元判断为否时,如果所述数据包的接收节点为所述节点,则在所述数据包中添加所述数据包的数据源节点的父节点信息,并转发包含父。

6、节点信息的数据包;第三更新单元,其在所述第三确定单元判断为否时,将所述信息条目对应的传输标识修改为所述预定值,并将预设的对应所述信息条目的遗忘时间重置为初始值。4根据权利要求13任一项所述的节点,其中,所述发送单元包括提取模块,其取出所述数据包中的发送节点;添加模块,其将所述数据包的发送节点加入到所述数据包的数据段中;修改模块,其修改所述数据包的类型为包含数据源节点的父节点信息的数据包;发送模块,其发送包含父节点信息的数据包。5根据权利要求1所述的节点,其中,如果所述节点为转发(RELAY)节点,则所述发送单元还用于在第一次转发其他节点的数据包后,按照预定的更新周期,向网关发送一条数权利要求书。

7、CN104104605A2/2页3据段为空的消息。6根据权利要求1所述的节点,其中,所述节点还包括暂存单元,其在所述发送单元转发了包含父节点信息的数据包之后,暂存所述包含父节点信息的数据包;所述发送单元在所述包含父节点信息的数据包被成功发送并被成功接收后,删除所述包含父节点信息的数据包,否则重传所述包含父节点信息的数据包。7一种多跳网络中的网关节点,其中,所述网关节点包括第一判断单元,其根据接收到的包含父节点信息的数据包判断下行路由表是否存储了对应所述数据包的数据源节点的地址及其父节点的地址的信息条目;第一更新单元,其在所述第一判断单元判断为否时,将所述数据包中的数据源节点的地址及其父节点的地。

8、址写入所述下行路由表的一个信息条目,并更新该信息条目对应的更新时间,或者更新该信息条目对应的更新时间和失效时间;其在所述第一判断单元判断为是时,更新所述下行路由表中对应该信息条目的更新时间,或者更新所述下行路由表中对应该信息条目的更新时间并重置对应该信息条目的失效时间;其中,所述下行路由表包含多个信息条目,每一个信息条目包含节点地址、父节点地址和更新时间;或者,每一个信息条目包含节点地址、父节点地址、更新时间和失效时间。8根据权利要求7所述的网关节点,其中,所述网关节点还包括第二判断单元,其判断所述下行路由表的各个信息条目的失效时间是否到达;第二更新单元,其在所述第二判断单元判断为是时,根据预。

9、定策略选择删除失效时间到达的信息条目或者继续保存该失效时间到达的信息条目。9根据权利要求7所述的网关节点,其中,所述网关还包括查询单元,其查询其邻居节点表确定所述多跳网络中的一跳节点的父节点信息;所述第一更新单元将所述一跳节点的地址及其父节点的地址写入所述下行路由表的一个信息条目,并更新该信息条目对应的更新时间,或者更新该信息条目对应的更新时间和失效时间。10根据权利要求7所述的网关节点,其中,所述网关还包括获取单元,其通过监听从所述多跳网络的一跳节点发送到两跳节点的HELLO包或者ACK包,获取所述两跳节点的父节点信息;所述第一更新单元将所述两跳节点的地址及其父节点的地址写入所述下行路由表的。

10、一个信息条目,并更新该信息条目对应的更新时间,或者更新该信息条目对应的更新时间和失效时间;其中,所述HELLO包或者所述ACK包中包含有发送节点的信息和接收节点的信息,所述发送节点为所述一跳节点,所述接收节点为所述两跳节点,所述发送节点的信息为所述两跳节点的父节点信息。权利要求书CN104104605A1/15页4下行路由获取及维护方法和装置技术领域0001本发明涉及通信技术领域,尤其涉及一种多跳网络中的下行路由获取及维护方法和装置。背景技术0002为满足数据包向网关(GATEWAY)汇聚,多跳网络路由主要实现上行路由(从普通节点到GATEWAY)。而当GATEWAY需要控制节点或主动查询节点。

11、数据时,往往需要下行路由。由于普通节点的存储空间有限,难以维护多跳子节点路由,这就需要在GATEWAY处获取和维护下行路由。0003传统路由算法可以通过在GATEWAY处建立全局路由表的方式,实现在GATEWAY获取和维护下行路由,但由于这种方法依赖广播(BROADCAST)和洪范FLOODING方法,获取和维护开销大。0004应该注意,上面对技术背景的介绍只是为了方便对本发明的技术方案进行清楚、完整的说明,并方便本领域技术人员的理解而阐述的。不能仅仅因为这些方案在本发明的背景技术部分进行了阐述而认为上述技术方案为本领域技术人员所公知。发明内容0005本发明实施例的主要目的在于提供一种下行路由。

12、的获取及维护方法和装置,以便有效的在GATEWAY处获取和维护下行路由,并减小为此带来的系统开销。0006本发明实施例的上述目的是通过如下技术方案实现的0007一种多跳网络中的节点,其中,所述节点包括0008解码单元,其对转发或侦听到的数据包进行解码,获得所述数据包的数据源节点、数据目标节点、发送节点、接收节点、类型以及数据段;0009第一确定单元,其在所述数据包的数据源节点至数据目标节点的跳数大于所述节点至数据目标节点的跳数且两者之差为2时,根据所述节点的转发数据包表,确定是否转发过或侦听到过所述数据源节点的数据包;0010发送单元,其在所述第一确定单元确定没有转发过或侦听到过所述数据源节点。

13、的数据包时,如果所述数据包的接收节点为所述节点,则在所述数据包中添加所述数据包的数据源节点的父节点信息,并转发包含父节点信息的数据包;0011第一更新单元,其在所述第一确定单元确定没有转发过或侦听到过所述数据源节点的数据包时,在所述转发数据包表中存储对应所述数据源节点及其父节点的信息条目,并将该信息条目对应的传输标识设为预定值,以及初始化预设的对应所述信息条目的遗忘时间。0012一种多跳网络中的网关节点,其中,所述网关节点包括0013第一判断单元,其根据接收到的包含父节点信息的数据包判断下行路由表是否存储了对应所述数据包的数据源节点的地址及其父节点的地址的信息条目;说明书CN104104605。

14、A2/15页50014第一更新单元,其在所述第一判断单元判断为否时,将所述数据包中的数据源节点的地址及其父节点的地址写入所述下行路由表的一个信息条目,并更新该信息条目对应的更新时间,或者更新该信息条目对应的更新时间和失效时间;其在所述第一判断单元判断为是时,更新所述下行路由表中对应该信息条目的更新时间,或者更新所述下行路由表中对应该信息条目的更新时间并重置对应该信息条目的失效时间;0015其中,所述下行路由表包含多个信息条目,每一个信息条目包含节点地址、父节点地址和更新时间;或者,每一个信息条目包含节点地址、父节点地址、更新时间和失效时间。0016本发明实施例的技术效果在于,减小在GATEWA。

15、Y处获取和维护下行路由带来的系统开销。0017参照后文的说明和附图,详细公开了本发明的特定实施方式,指明了本发明的原理可以被采用的方式。应该理解,本发明的实施方式在范围上并不因而受到限制。在所附权利要求的精神和条款的范围内,本发明的实施方式包括许多改变、修改和等同。0018针对一种实施方式描述和/或示出的特征可以以相同或类似的方式在一个或更多个其它实施方式中使用,与其它实施方式中的特征相组合,或替代其它实施方式中的特征。0019应该强调,术语“包括/包含”在本文使用时指特征、整件、步骤或组件的存在,但并不排除一个或更多个其它特征、整件、步骤或组件的存在或附加。附图说明0020参照以下的附图可以。

16、更好地理解本发明的很多方面。附图中的部件不是成比例绘制的,而只是为了示出本发明的原理。为了便于示出和描述本发明的一些部分,附图中对应部分可能被放大或缩小。在本发明的一个附图或一种实施方式中描述的元素和特征可以与一个或更多个其它附图或实施方式中示出的元素和特征相结合。此外,在附图中,类似的标号表示几个附图中对应的部件,并可用于指示多于一种实施方式中使用的对应部件。0021在附图中0022图1是本发明实施例的下行路由获取和维护方法的流程图;0023图2是本发明实施例的数据包的帧结构示意图;0024图3是将父节点信息添加入数据包的方法的流程图;0025图4是将父节点信息添加入数据包后的数据包的帧结构。

17、的示意图;0026图5是本发明实施例的多跳网络中的节点的组成示意图;0027图6是本发明另一实施例的下行路由获取和维护方法的流程图;0028图7是图6所示的方法中网关节点更新其下行路由表的流程图;0029图8是下行路由表的结构示意图;0030图9是修改后的ACK消息帧结构示意图;0031图10是下行路由建立实例中的网络拓扑示意图;0032图11是下行路由查询过程示意图;0033图12是本发明实施例的网关节点的组成示意图。具体实施方式说明书CN104104605A3/15页60034参照附图,通过下面的说明书,本发明实施例的前述以及其它特征将变得明显。这些实施方式只是示例性的,不是对本发明的限制。

18、。0035为了使本领域的技术人员能够容易地理解本发明的原理和实施方式,本发明实施例以ADHOC网络为例进行说明,但可以理解,本发明实施例并不限于ADHOC网络,例如,本发明实施例提供的方法和装置也适用于传感器网络等其他多跳网络。0036在ADHOC网络中,包含两种类型节点数据源节点(SOURCENODE)和转发节点RELAYNODE。其中,数据源节点定时或不定时发送以GATEWAY为最终目的地的数据包,而转发节点不产生原始数据,仅转发数据源节点发送来的数据包。另外,数据源节点也可以具备转发来自其他数据源节点的数据的能力,此时其功能与转发节点相同。其中,当一个数据源节点向GATEWAY发送数据包。

19、时,该数据包内所包含的地址信息包括GS(GLOBALSOURCE,数据源节点、GD(GLOBALDESTINATION,数据目标节点、LS(LOCALSOURCE,发送节点、LD(LOCALDESTINATION,接收节点。0037在本发明实施例中,假设网络已经建立上行路由,也即,所有节点均已获得下一跳父节点。0038实施例10039本实施例提供了一种下行路由获取和维护方法,该方法应用于多跳网络中具备数据转发功能的节点,例如转发节点或者数据源节点。图1是该方法的流程图,请参照图1,该方法包括0040步骤101所述节点解码转发或侦听到的数据包,获得该数据包的数据源节点、数据目标节点、发送节点、接。

20、收节点、类型以及数据段;0041其中,该数据包的帧结构如图2所示,包含数据源节点(GS)、数据目标节点(GD)、发送节点(LS)、接收节点(LD)、编号(FID)、类型(TYPE)、以及数据段(DATAPAYLOAD)。其中,各字段的含义与现有技术相同,在此不再赘述。0042步骤102如果所述数据包的数据源节点的跳数(数据源节点到数据目标节点的跳数)大于自身的跳数(上述节点到数据目标节点的跳数),且所述跳数相差2,则所述节点根据自身存储的转发数据包表,确定是否转发过或侦听到过所述数据源节点的数据包;0043其中,转发数据包表包含了若干个(一个或多个)信息条目,各信息条目是该节点在转发或侦听到数。

21、据包后存储的。其中,每个信息条目包含一个数据源节点的地址及其父节点的地址。0044优选的,每个信息条目还可以包含一个传输标识,用于指示该信息条目的更新时间。其中,每个节点将工作时间分割成许多更新周期,在一个更新周期的时间内,如果节点执行了添加父节点信息进入数据包的操作或者侦听到与条目对应的父节点信息已经发送到其他节点,则将这一信息条目对应的传输标识置为预定值,例如为1;当进入到下一个更新周期时,将传输标识重置为非预定值,例如为0。另外,一个节点在接收到来自数据源节点的数据包时,当数据包中的信息与存储的条目信息相同时,需要判断该传输标识,在一个更新周期内,如果该传输标识为上述预定值(例如为1),。

22、则结束处理,如果该传输标识不是上述预定值(例如为0),则执行将父节点信息加入数据包的操作,并修改传输标识为上述预定值。具体的处理过程将在以下进行说明。0045优选的,每个信息条目还可以包含一个遗忘时间,用于指示该信息条目的过期时说明书CN104104605A4/15页7间。在创建数据包表的信息条目时,可以对该信息条目的遗忘时间进行初始化分配。在节点接收到或者侦听到与信息条目相对应的数据包时(例如,数据包中的信息与存储的条目信息相同),将该信息条目对应的遗忘时间重置为初始值。当一个信息条目对应的遗忘时间到达时,节点可以根据自己的负载决定是否删除该信息条目。0046其中,由于转发数据包表中存储了包。

23、含数据源节点的地址的信息条目,如果转发过某数据源节点的数据包,则该转发数据包表中应该存储有对应该数据源节点的信息条目。因此通过查询本地存储的转发数据包表中的信息条目,可以确认是否转发过该数据源节点发送的数据包。0047步骤103如果没有转发过或侦听到过所述数据源节点的数据包,且所述数据包的接收节点为所述节点,则所述节点在所述数据包中添加所述数据包的数据源节点的父节点信息,并转发包含父节点信息的数据包。0048在一个实施例中,如果该节点没有转发过或侦听到过所述数据源节点的数据包,则该节点还可以在所述转发数据包表中存储对应所述数据源节点及其父节点的信息条目,并将该信息条目对应的传输标识设为预定值。。

24、0049其中,如果该节点没有转发过或侦听到过该数据源节点的数据包,且该数据包中的LD(接收节点)为自身的ID,也就是说,本地节点为该数据包的接收节点,本地节点需要转发该数据包,则本地节点将该数据包中的数据源节点的父节点信息添加到该数据包中,并转发包含该父节点信息的数据包。在一个实施例中,该节点还需要在本地的转发数据包表中创建对应该数据源节点及其父节点的信息条目,其中,该信息条目中的数据源节点就是该数据包中的GS,其父节点就是数据包中的LS。其中,还可以将该新创建的信息条目对应的传输标识设为前述预定值。其中,还可以初始化该新创建的信息条目对应的遗忘时间。0050其中,如果该节点没有转发过或侦听到。

25、过该数据源节点的数据包,且该数据包中的LD(接收节点)并不是自身的ID,这就说明,本地节点不是该数据包的接收节点,本地节点只是侦听到该数据包,并不需要转发给数据包,则本地节点只需要在转发数据包表中创建对应该数据源节点及其父节点的信息条目即可,与前述相同,该信息条目中的数据源节点就是该数据包中的GS,其父节点就是该数据包中的LS。同理,可以在创建该信息条目时将其对应的传输标识设为前述预定值。还可以同时初始化该新创建的信息条目对应的遗忘时间。0051其中,本地节点可以通过图3所示的方法将该数据包中的数据源节点的父节点信息添加到该数据包中,如图3所示,该方法包括0052步骤301取出所述数据包中的发。

26、送节点;0053其中,根据步骤102的说明,由于本地节点是距离数据源节点两跳的节点,因此该数据包中的发送节点(LS)即为该数据源节点的父节点。0054步骤302将所述数据包的发送节点加入到所述数据包的数据段中;0055其中,通过将数据源节点的父节点加入到该数据包的数据段中,可以协助网关获取节点及其父节点信息,以确定下行路由。具体将在以下的实施例中加以说明。0056修改后的数据包的帧结构如图4所示,其中,在该数据包的数据段(DATAPAYLOAD)中,不仅包含了其原有的数据内容(DATA),还包含了父节点信息(PARENTID)。图4所示的示例是以父节点的信息加入数据段的头部为例,但本实施例并不。

27、以此作为限制。说明书CN104104605A5/15页80057步骤303修改所述数据包的类型为包含数据源节点的父节点信息的数据包。0058其中,通过修改该数据包的类型(如图4所示的TYPE段),可以协助网关节点确认该数据包的类型。如果通过确认该数据包的类型,发现该数据包是包含了父节点信息的数据包,则可以提取其中的数据源节点及其父节点的信息,并添加入其下行路由表中。具体将在以下的实施例中加以说明。0059为使本实施方式的方法更加清楚易懂,以下通过举例对该方法进行说明。0060举例说明,假设数据源节点A经过节点B发送数据包到节点C,则节点C收到的数据包中,GS为A,LS为B,LD为C,而节点C通。

28、过查询其本地的转发数据包表,发现没有转发过或侦听到过节点A发送的数据包,也就是说,其转发数据包表中不包含数据源节点为节点A的信息条目,则根据本实施方式的方法,节点C取出数据包中的LS,也即B的地址,添加入该数据包的数据段中,并修改该数据包的类型为包含父节点信息的数据包,转发该数据包,并可以在转发数据包表中创建节点A及其父节点B的信息条目,同时,可以将该条目对应的传输标识设为预定值,并初始化该信息条目对应的遗忘时间。0061根据本实施方式的另外一种情况,在该举例中,如果节点D侦听到了该数据包(GS为A,LS为B,LD为C),同样的,该节点D通过查询其本地的转发数据包表,发现没有转发过或侦听到过节。

29、点A发送的数据包,也就是说,其转发数据包表中也不包含数据源节点为节点A的信息条目,则根据本实施方式的方法,由于节点D并不是该数据包的接收节点,节点D只需要在其转发数据包表中创建对应该数据包的节点A及其父节点B的信息条目即可,当然,可选的,还可以将该条目对应的传输标识设为预定值,并初始化该信息条目对应的遗忘时间。0062通过步骤101103的处理,该节点将包含父节点信息的数据包转发出去,由此网关节点可以获得该数据源节点及其父节点,并存储在其下行路由表中。当网关节点通过这种方式获得了该多跳网络中的所有数据源节点及其父节点的信息后,即可由此确定到任意一个节点的下行路径。不但可以在网关节点处获取和维护。

30、下行路由,还减小了为此带来的系统开销。其中,对于网关侧的处理将在以下的实施例中加以说明。0063在本实施例的一个实施方式中,通过步骤102的判断,如果该节点转发过或侦听到过该数据源节点发送的数据包,则该方法还可以包括以下步骤0064步骤104所述节点根据自身存储的转发数据包表,确定是否存储过对应所述数据源节点及其父节点的信息条目;0065步骤105如果没有存储过对应所述数据源节点及其父节点的信息条目,且所述数据包的接收节点为所述节点,则所述节点在所述数据包中添加所述数据包的数据源节点的父节点信息,并转发包含父节点信息的数据包。0066其中,与步骤103类似,如果没有存储过对应所述数据源节点及其。

31、父节点的信息条目,该节点还可以在所述转发数据包表中存储对应所述数据源节点及其父节点的信息条目,优选的,还可以将该信息条目对应的传输标识设为预定值,优选的,还可以初始化该信息条目对应的遗忘时间。0067在该实施方式中,本地节点可能转发过或侦听到过该数据源节点发送的数据包,但是没有存储过对应该数据源节点及其父节点的信息条目,则本地节点可以执行如前所述的处理,包括如果数据包的LD是本地节点,则执行将父节点信息添加入数据包的操作并说明书CN104104605A6/15页9转发该包含了父节点信息的数据包,同时在转发数据包表中创建新的信息条目,优选的可以将该条目对应的传输标识设为预定值,优选的还可以初始化。

32、该信息条目对应的遗忘时间;如果数据包的LD不是本地节点,则仅在转发数据包表中创建新的信息条目,优选的可以将该条目对应的传输标识设为预定值,优选的还可以初始化该信息条目对应的遗忘时间。0068其中,在本实施方式中,本地节点也可以通过图3所示的方法将该数据包中的数据源节点的父节点信息添加到该数据包中,如前所述,在此不再赘述。0069为使本实施方式的方法更加清楚易懂,以下通过举例加以说明。0070举例说明,假设数据源节点A经过节点B发送数据包到节点C,则节点C收到的数据包中,GS为A,LS为B,LD为C,而节点C通过查询其本地的转发数据包表,发现包含节点A及其父节点E的信息条目,但不包含节点A及其父。

33、节点B的信息条目,也就是说转发过或侦听到过该数据源节点A的数据包,但该数据包不是通过节点B转发的而是通过节点E转发的,所以存储的信息条目是节点A及其父节点E,没有存储过对应此次接收到的数据包的数据源节点A及其父节点B的信息条目。则根据本实施方式的方法,节点C取出数据包中的LS,也即B的地址,添加入该数据包的数据段中,并修改该数据包的类型为包含父节点信息的数据包,转发该数据包,并可以在转发数据包表中创建节点A及其父节点B的信息条目,同时,可以将该条目对应的传输标识设为预定值,并初始化该信息条目对应的遗忘时间。0071根据本实施方式的另外一种情况,在该举例中,如果节点D侦听到了该数据包(GS为A,。

34、LS为B,LD为C),同样的,该节点D的转发数据包表中存储了节点A及其父节点E的信息条目,而没有存储对应该数据包的节点A及其父节点B的信息条目,则由于节点D并不是该数据包的接收节点,节点D只需要在其转发数据包表中创建对应该数据包的节点A及其父节点B的信息条目即可,当然,可选的,还可以将该条目对应的传输标识设为预定值,并初始化该信息条目对应的遗忘时间。0072通过步骤101102、104105的处理,该节点将包含父节点信息的数据包转发出去,由此网关节点可以获得该数据源节点及其父节点,并存储在其下行路由表中。当网关节点通过这种方式获得了该多跳网络中的所有数据源节点及其父节点的信息后,即可由此确定到。

35、任意一个节点的下行路径。不但可以在网关节点处获取和维护下行路由,还减小了为此带来的系统开销。其中,对于网关侧的处理将在以下的实施例中加以说明。0073在本实施例的一个实施方式中,通过步骤104的判断,如果存储过对应数据源节点及其父节点的信息条目,则该方法还可以包括以下步骤0074步骤106所述节点判断在预设的更新周期内,所述信息条目对应的传输标识是否为预定值;0075步骤107如果在预设的更新周期内,所述信息条目对应的传输标识不是预定值,且所述数据包的接收节点为所述节点,则所述节点在所述数据包中添加所述数据包的数据源节点的父节点信息,并转发包含父节点信息的数据包。0076其中,如果在预设的更新。

36、周期内,所述信息条目对应的传输标识不是预定值,该节点还可以将该信息条目对应的传输标识修改为该预定值,优选的,还可以将该信息条目对应的遗忘时间重置为初始值。0077其中,如果在预设的更新周期内,所述信息条目对应的传输标识是预定值,则该节说明书CN104104605A7/15页10点可以结束处理。0078在该实施方式中,本地节点可能转发过或侦听到过该数据源节点发送的数据包,并且存储过对应该数据源节点及其父节点的信息条目,如果该信息条目对应的传输标识仍然是预定值(例如为1),则说明该信息条目还未过更新周期,此时可以不做处理,也可以将该信息条目对应的遗忘时间重置为初始值;如果该信息条目对应的传输标识是。

37、非预定值(例如为0),则说明该信息条目已经过了更新周期,此时如果该数据包的LD是本地节点,则执行将父节点信息添加入数据包的操作并转发该包含了父节点信息的数据包,由于该信息条目类似于被重新处理过,因此可以将该条目对应的传输标识重新修改为预定值,优选的还可以将该信息条目对应的遗忘时间重置为初始值;如果数据包的LD不是本地节点,也就是说,该本地节点只是侦听到该数据包,则本地节点可以仅将其转发数据包表中的该信息条目的传输标识修改为上述预定值,优选的还可以将该信息条目对应的遗忘时间重置为初始值。0079其中,在本实施方式中,本地节点也可以通过图3所示的方法将该数据包中的数据源节点的父节点信息添加到该数据。

38、包中,如前所述,在此不再赘述。0080为使本实施方式的方法更加清楚易懂,以下通过举例加以说明。0081举例说明,假设数据源节点A经过节点B发送数据包到节点C,则节点C收到的数据包中,GS为A,LS为B,LD为C,而节点C通过查询其本地的转发数据包表,发现包含节点A及其父节点B的信息条目,也就是说不但转发过或侦听到过该数据源节点A的数据包,而且存储过对应该数据包的数据源节点A及其父节点B的信息条目。则根据本实施方式的方法,节点C查看在更新周期内该信息条目对应的传输标识是为预定值,如果是预定值,就说明可能刚刚转发过该数据包,则节点C可以不做任何处理;如果不是预定值,就说明该条目已经过了更新周期,此。

39、时由于节点C就是该数据包的接收节点,则节点C取出数据包中的LS,也即B的地址,添加入该数据包的数据段中,并修改该数据包的类型为包含父节点信息的数据包,转发该数据包,同时,该节点C还可以将该条目对应的传输标识修改为上述预定值,并将该信息条目对应的遗忘时间重置为初始值。0082根据本实施方式的另外一种情况,在该举例中,如果节点D侦听到了该数据包(GS为A,LS为B,LD为C),同样的,该节点D的转发数据包表中存储了节点A及其父节点B的信息条目,则由于节点D并不是该数据包的接收节点,节点D只需要将其转发数据包表中的对应该数据包的节点A及其父节点B的信息条目的传输标识修改为上述预定值即可,当然,可选的。

40、,还可以将该信息条目对应的遗忘时间重置为初始值。0083通过步骤101102、104、106107的处理,该节点将包含父节点信息的数据包转发出去,由此网关节点可以获得该数据源节点及其父节点,并存储在其下行路由表中。当网关节点通过这种方式获得了该多跳网络中的所有数据源节点及其父节点的信息后,即可由此确定到任意一个节点的下行路径。不但可以在网关节点处获取和维护下行路由,还减小了为此带来的系统开销。其中,对于网关侧的处理将在以下的实施例中加以说明。0084在本实施例中,如果上述本地节点是只执行转发其它节点的数据包而不产生原始数据包的转发(RELAY)节点,则该节点在第一次转发其它节点的数据包后,可以。

41、按照更新周期,主动向网关(GATEWAY)节点发送一条数据段为空的消息,以便接收到这一消息的具备数据转发功能的节点,按照与数据源节点发送数据包结构相同的方式处理,以便网关节点可说明书CN104104605A108/15页11以获知该节点的父节点信息。0085在本实施例中,本地节点在转发了其他节点的包含父节点信息的数据包后,为了保障传输的可靠性,还可以暂存该包含父节点信息的数据包,当带有父节点信息的数据包被成功传递到下一跳节点时(成功发送并被成功接收),该本地节点可以删除该包含父节点信息的数据包,当带有父节点信息的数据包未成功传递到下一跳节点时,该本地节点可以将该数据包重新放入到发送队列中,重新。

42、发送。其中,放入位置可以根据实际情况进行选择,例如可以放入发送队列的末尾。0086在本实施例中,为了进一步减小系统开销,如果该节点是该多跳网络中的一跳节点,在该节点向GATEWAY转发数据包时,可以不执行如本实施例1的操作(将父节点信息添加入数据包、在转发数据包表中创建条目等),而是按照传统方法直接转发该数据包,此时,GATEWAY可以在自身的邻居表中,查询到所有一跳节点,进而获得一跳节点的父节点信息,也即GATEWAY本身。0087在本实施例中,为了进一步减小系统开销,在带有握手(HELLO)机制或确认(ACK)机制的情况下,如果该节点是该多跳网络中的一跳节点,在转发其数据包时,可以去掉数据。

43、包中的LS信息,也即一跳节点在向GATEWAY转发数据包时,在传统方法的基础上去掉该数据包的LS信息,GATEWAY可以通过侦听该一跳节点与两跳节点之间的HELLO包或者ACK包来获得两跳节点对应的父节点(一跳节点)信息。具体的过程将在实施例3进行详细说明。0088通过本实施例的方法,多跳网络中的具备数据转发功能的节点可以将包含父节点信息的数据包传递到下一跳节点,由此网关可以获得各节点及其父节点的信息,利用该信息建立下行路由表,可以确定其到任意一个节点的下行路径。不但可以在网关节点处获取和维护下行路由,还减小了为此带来的系统开销。0089本发明实施例还提供了一种多跳网络中的节点,如下面的实施例。

44、2所述,由于该节点解决问题的原理与实施例1的方法类似,因此其具体的实施可以参照实施例1的方法的实施,重复之处不再赘述。0090实施例20091本发明实施例提供了一种多跳网络中的节点。图5是该节点的组成示意图,请参照图5,该节点包括0092解码单元51,其对转发或侦听到的数据包进行解码,获得所述数据包的数据源节点、数据目标节点、发送节点、接收节点、类型以及数据段;0093第一确定单元52,其在所述数据包的数据源节点的跳数(数据源节点到数据目标节点的跳数)大于所述节点的跳数(上述节点到数据目标节点的跳数)且两者之差为2时,根据所述节点的转发数据包表,确定是否转发过或侦听到过所述数据源节点的数据包;。

45、0094发送单元53,其在所述第一确定单元52确定没有转发过或侦听到过所述数据源节点的数据包时,如果所述数据包的接收节点为所述节点,则在所述数据包中添加所述数据包的数据源节点的父节点信息,并转发包含父节点信息的数据包。0095在一个实施方式中,该节点还可以包括0096第一更新单元54,其在所述第一确定单元52确定没有转发过或侦听到过所述数据源节点的数据包时,在所述转发数据包表中存储对应所述数据源节点及其父节点的信息条目,并将该信息条目对应的传输标识设为预定值。说明书CN104104605A119/15页120097在一个实施方式中,该节点还可以包括0098第二确定单元55,其在所述第一确定单元。

46、52确定转发过或侦听到过所述数据源节点的数据包时,根据所述节点的转发数据包表,确定是否已经存储过对应所述数据源节点及其父节点的信息条目;0099所述发送单元53在所述第二确定单元55确定没有存储过对应所述数据源节点及其父节点的信息条目时,如果所述数据包的接收节点为所述节点,则在所述数据包中添加所述数据包的数据源节点的父节点信息,并转发包含父节点信息的数据包。0100在该实施方式中,该节点还可以包括0101第二更新单元56,其在所述第二确定单元55确定没有存储过对应所述数据源节点及其父节点的信息条目时,在所述转发数据包表中存储对应所述数据源节点及其父节点的信息条目,并将该信息条目对应的传输标识设。

47、为预定值。0102在一个实施方式中,该节点还可以包括0103第三确定单元57,其在所述第二确定单元55确定存储过对应所述数据源节点及其父节点的信息条目时,判断在预设的更新周期内,所述信息条目对应的传输标识是否为预定值;0104所述发送单元53在所述第三确定单元57判断为否时,如果所述数据包的接收节点为所述节点,则在所述数据包中添加所述数据包的数据源节点的父节点信息,并转发包含父节点信息的数据包。0105在该实施方式中,该节点还可以包括0106第三更新单元58,其在所述第三确定单元57判断为否时,将所述信息条目对应的传输标识修改为所述预定值。0107在以上的实施方式中,发送单元53可以包括010。

48、8提取模块531,其取出所述数据包中的发送节点;0109添加模块532,其将所述数据包的发送节点加入到所述数据包的数据段中;0110修改模块533,其修改所述数据包的类型为包含数据源节点的父节点信息的数据包;0111发送模块534,其发送包含父节点信息的数据包。0112在以上的实施方式中,第一更新单元54还可以在将信息条目对应的传输标识设为预定值后,初始化预设的对应所述信息条目的遗忘时间。0113在以上的实施方式中,第二更新单元56还可以在将信息条目对应的传输标识设为预定值后,初始化预设的对应所述信息条目的遗忘时间。0114在以上的实施方式中,第三更新单元58还可以在将所述信息条目对应的传输标。

49、识修改为所述预定值后,将预设的对应所述信息条目的遗忘时间重置为初始值。0115在本实施例中,如果所述节点为转发(RELAY)节点,则所述发送单元53还可以在第一次转发其他节点的数据包后,按照预定的更新周期,向网关发送一条数据段为空的消息。0116在一个实施方式中,该节点还可以包括0117暂存单元59,其在所述发送单元53转发了包含父节点信息的数据包之后,暂存所述包含父节点信息的数据包;说明书CN104104605A1210/15页130118所述发送单元53在所述包含父节点信息的数据包被成功发送并被成功接收后,删除所述暂存单元59中所存储的包含父节点信息的数据包,否则重传所述暂存单元59中所存。

50、储的包含父节点信息的数据包,例如将该包含父节点信息的数据包加入到发送队列中进行发送。0119本实施例的节点的各组成部分的功能与实施例1的方法的各步骤相同,其内容被合并于此,在此不再赘述。0120通过本实施例的节点将包含父节点信息的数据包传递到下一跳节点,由此网关可以获得各节点及其父节点的信息,利用该信息建立下行路由表,可以确定其到任意一个节点的下行路径。不但可以在网关节点处获取和维护下行路由,还减小了为此带来的系统开销。0121实施例30122本发明实施例还提供了一种下行路由获取和维护方法,该方法应用于多跳网络的网关节点。图6是该方法的流程图,请参照图6,该方法包括0123步骤601所述网关节。

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 电学 > 电通信技术


copyright@ 2017-2020 zhuanlichaxun.net网站版权所有
经营许可证编号:粤ICP备2021068784号-1