《下行路由获取及维护方法和装置.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所述网关节。