CN101710895A - 一种获取多下一跳路由的方法、装置和路由器 - Google Patents

一种获取多下一跳路由的方法、装置和路由器 Download PDF

Info

Publication number
CN101710895A
CN101710895A CN200910224019A CN200910224019A CN101710895A CN 101710895 A CN101710895 A CN 101710895A CN 200910224019 A CN200910224019 A CN 200910224019A CN 200910224019 A CN200910224019 A CN 200910224019A CN 101710895 A CN101710895 A CN 101710895A
Authority
CN
China
Prior art keywords
node
level value
potential energy
message
value
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Granted
Application number
CN200910224019A
Other languages
English (en)
Other versions
CN101710895B (zh
Inventor
张建辉
王滨
陈庶樵
兰巨龙
卜佑军
王肖楠
郭虹
刘宗海
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
PLA Information Engineering University
Original Assignee
PLA Information Engineering University
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by PLA Information Engineering University filed Critical PLA Information Engineering University
Priority to CN2009102240193A priority Critical patent/CN101710895B/zh
Publication of CN101710895A publication Critical patent/CN101710895A/zh
Application granted granted Critical
Publication of CN101710895B publication Critical patent/CN101710895B/zh
Expired - Fee Related legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Abstract

本发明提供一种获取多下一跳路由的方法、装置和路由器,其中该方法包括:网络层次图构建步骤:对于出口节点,其层次值为零;对于其他节点,其层次值为该节点的各个邻居节点相对于出口节点所对应的层次值中的最小值再加1;从而获得网络中各个节点的层次值;节点势能构建步骤:如果当前节点为层次值为零的节点,则其势能值为0;如果当前节点为其它层次的节点,则在其同层或低层邻居节点中选出实际链路带宽最大的一个节点作为当前节点的势能定义参考节点,然后将该邻居节点的层数加1作为当前节点的势能值;当前节点的其它邻居节点的势能值为这些邻居节点的层次值;以势能值小于当前节点的邻居节点作为当前节点的可用下一跳路由。

Description

一种获取多下一跳路由的方法、装置和路由器
技术领域
本发明属于网络管理技术领域,尤其涉及一种获取多下一跳路由的方法、装置和路由器。
背景技术
现有路由协议,可分为最短路径优先类单一下一跳路由协议和多径路由协议,前者基于快速重路由技术实现快速自愈,具体策略是局部保护、重路由计算,其故障恢复时间较长,无法保证网络故障时实时应用不中断;多径路由协议采用全局保护、多路径备份的策略,由于其所建立的从源到目的地的路径数量有限,无法应对网络的并发多故障。针对现有路由协议在提高网络快速自愈能力方面存在的问题,受自然界中水流顺势而流现象的启发,吸取现有技术体系“逐跳转发”和“基于路由备份快速切换”等思想,在不改变现有IP网络基本技术架构的基础上,设计提出一种新型的节点势能导向多下一跳路由生成算法(Node Potential oriented Multi Next Hop Algorithm,NP-MNHA),在路由节点层面提供局部下一跳备份即路由备份。使得以该路由协议为基础的网络具有故障恢复时间短、自适应能力强等特征,在以单一故障为主的一般网络环境和并发多故障的网络极端环境下均具有较好的网络性能。
发明内容
有鉴于此,本发明的目的在于提供一种获取多下一跳路由的方法、装置和路由器,该方法、装置和路由器自适应能力强,故障恢复时间短。
为实现上述目的,本发明实施例提供一种获取多下一跳路由的方法,包括网络层次图构建步骤:
对于出口节点,其层次值为零;
对于其他节点,其层次值为该节点的各个邻居节点相对于出口节点所对应的层次值中的最小值再加1;从而获得网络中各个节点的层次值;
节点势能构建步骤:
如果当前节点为层次值为零的节点,则其势能值为0;
如果当前节点为其它层次的节点,则在其同层或低层邻居节点中选出实际链路带宽最大的一个节点作为当前节点的势能定义参考节点,然后将该邻居节点的层数加1作为当前节点的势能值;
当前节点的其它邻居节点的势能值为这些邻居节点的层次值;
以势能值小于当前节点的邻居节点作为当前节点的可用下一跳路由。
优选地,所述网络层次图构建具体包括:
由已经构建成f-1层的节点发起第f层的构建,向邻居节点发送网络层次图构建触发报文;
当邻居节点接收到该网络层次图构建触发报文,如果该邻居节点的层次值尚未定义,则定义为f,并向该邻居节点的邻居节点发送网络层次图构建触发报文;如果该邻居节点的层次值已经定义为f、f-1或f-2,则不对该层次值做任何调整;如果该邻居节点的层次值已经定义为大于f的值,则将该邻居节点的层次值调整为f,并向该邻居节点的邻居节点发送网络层次图构建触发报文。
优选地,所述方法还包括:在当前节点的可用下一跳路由集合为空时,则进行当前节点层次值的更新过程;
所述当前节点层次值的更新过程包括:
当前节点判断该当前节点的同层邻居节点集合是否为空,如果不为空,则将该当前节点的层次值加1,重新定义为该当前节点的势能值,并生成网络层次图信息通告报文,将该当前节点的层次值的变化情况通告给该当前节点的邻居节点;
如果判断当前节点的同层邻居节点集合为空,则当前节点泛洪发送网络层次图请求更新报文(NLG-RUP),其中NLG-RUP报文中的层次值为所述当前节点的层次值减2,如果当前节点的层次值减2小于零,那么该值设置为0,消息发送完后将关于该出口节点的所有信息删除;当节点收到该NLG-RUP报文后,首先查看是否收到过此报文,如果是则不做任何处理;否则,查看该报文的层次值,如果大于当前节点的层次值,那么丢弃该报文,如果小于当前节点的层次值,那么将NLG-RUP报文继续泛洪给当前节点的邻居节点,并且将关于该出口节点的所有信息删除;如果等于当前节点的层次值,那么节点停止继续泛洪发送NLG-RUP,将发送网络层次图构建触发报文(NLG-CTP);节点收到NLG-CTP报文后,将按照节点势能的计算方法进行相应的计算,当计算得到的层次值和当前节点原来的层次值相同时,那么停止发送NLG-CTP报文,层次值算法更新结束。
优选地,所述方法还包括:
根据邻居节点发送过来的网络层次图信息通告报文对节点的势能进行调整。
优选地,所述方法还包括:当节点相对于某个目的地的层次值发生变化后,则按照所述势能构建步骤对该节点和邻居节点的势能值进行相应的调整。
优选地,所述方法还包括:在进行网络层次图的初始构建时,当节点发现自己相对于某个目的节点的层次信息发生变化后,则节点将自己相对于网络中的各个目的节点所处的层次信息写入网络层次图信息通告报文,并将所述网络层次图信息通告报文广播发送给其邻居节点。
优选地,所述方法还包括:当节点的网络层次检测到所有的低层次节点均不可用时,或者收到其它路由器发送的网络层次图信息通告报文后该节点的网络层次信息发生了变化,或者是新节点加入,则节点将自己相对于网络中的各个目的节点所处的层次信息写入网络层次图信息通告报文,并将所述网络层次图信息通告报文广播发送给其邻居节点。
优选地,所述方法还包括:接收到邻居节点发送过来的关于某目的节点的网络层次图路由请求,将自己相对于网络中的各个目的节点所处的层次信息写入网络层次图信息通告报文,并将所述网络层次图信息通告报文广播发送给其邻居节点。
另一方面,本发明还提供一种获取多下一跳路由的装置,包括:
网络层次图构建单元,用于对于出口节点,将其层次值构建为零;还用于对于其他节点,将其层次值构建为该节点的各个邻居节点相对于出口节点所对应的层次值中的最小值再加1;从而获得网络中各个节点的层次值;
节点势能构建单元,用于对当前节点为层次值为零的节点,将其势能值构建为0,还用于对当前节点为其它层次的节点,在其同层或低层邻居节点中选出实际链路带宽最大的一个节点作为当前节点的势能定义参考节点,然后将该邻居节点的层数加1作为当前节点的势能值。
再一方面,本发明还提供一种路由器,包括上述获取多下一跳路由的装置。
通过本发明实施例,网络故障恢复时间短,自适应能力强,并且在以单一故障为主的一般网络环境和并发多故障的网络极端环境下均具有较好的网络性能。
附图说明
为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
图1A是本发明实施例中的网络拓扑图;
图1B是本发明实施例中的网络层次图;
图2是本发明实施例中网络层次图的构建方法的计算过程示意图;
图3是本发明实施例中网络层次图的构建过程的具体实现示意图;
图4是本发明实施例中层次图已构建完成的示意图;
图5和图6是本发明实施例中节点层次值的触发更新的流程示意图;
图7是本发明实施例中网络层次图构建触发报文的协议格式的示意图;
图8是本发明实施例中网络层次图信息通告报文的协议格式的示意图;
图9是本发明实施例中网络层次图请求更新报文的协议格式的示意图;
图10是本发明另一实施例提供的获取多下一跳路由的装置的示意图。
具体实施方式
为使本发明实施例的目的、技术方案和优点更加清楚,下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有作出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
自然界中,水流具有从高处往低处流的特性,原因是水在流动中由于所流经地点的海拔高度不同而具有相对的势能,只要在高势能点和低势能点之间存在相通的通道,水流就会沿着所有可行通道从高势能点流向低势能点。受此启发,发明人提出一种节点势能导向多下一跳路由生成算法,该算法将势能的概念引入IP网络,并将节点势能定义为网络中节点到零势能点之间满足一定要求的可达性度量。如果只简单地考虑节点之间是否可达,节点势能就退化为从本节点到零势能点的跳数。在设定零势能节点后,通过势能通告过程,网络中的其它节点就能够获得相对于零势能节点的具体势能。规定所有发送到零势能节点的网络数据报文,均向所有势能降低的下一跳节点转发。由于网络数据报文的流向是节点势能降低的方向,能保证转发数据报文时不存在环路。
本发明实施例提供的导向多下一跳路由生成算法的核心是建立多下一跳路由信息,即定义节点的势能值。节点势能值是基于对网络层次图的划分和节点的实际带宽来定义邻居节点的势能值,建立过程就是设定某个目的节点为零势能点,通过网络层次图的划分过程,使网络中其它所有节点获知自己和所有邻居对应于该零势能节点所处的网络层次图,然后再依据链路实际带宽定义出自己和邻居的势能,从而节点可以从这些邻居中选择低势能节点作为多下一跳进行报文的转发。以图1A的网络拓扑为例,经过网络层次图划分之后得到图1B所示的相对于目的节点i的网络层次图,在层次划分的过程中,所有节点均知道自己邻居节点的层次值,然后各个节点依据带宽最大原则定义出自己的势能值和邻居节点关于目的节点i的势能值,各节点在进行报文转发时选择低势能节点进行数据的转发。当网络拓扑发生变化,如节点的移出或者加入,网络层次图要及时更新。节点层次值的更新是由特定事件来进行触发更新。
在详细说明本发明实施例的方案前,首先详细解释下文将用到的术语的含义:
1)零势能点:用户网络流流出网络的出口节点;
2)网络层次图:针对某个目的节点,网络中所有其它节点相对于它的层次分布图;
3)节点势能:在网络中,节点到零势能点之间满足一定要求的可达性度量值;
4)路由器ID:将节点i的所有接口中配置的最大IP地址定义为节点的路由器ID;
5)激活:以下情况下我们称节点S被激活。当节点S检测到链路代价增加或链路故障时,或者从某一下游节点接收到激活请求消息时;
6)势能定义参照节点:如果某一个节点A定义自己的势能值时参照了节点B的层次,则将B的层次加1作为自己的势能值,节点B称为节点A的势能定义参照节点;
7)可用下一跳集合,记为Aij{},表示节点i往目的节点j发送报文时的可用下一跳集合;
8)网络层次图构建触发报文(Network Layer Graph Construction TriggerPacket,NLG-CTP):主要功能是网络层次图构建的启动报文;
9)网络层次图信息通告报文(Network Layer Graph InformationAdvertisement Packet,NLG-IAP):主要功能是向邻居节点通告自己相对于某个出口节点的层次信息;
10)网络层次图路由请求报文(Network Layer Graph Routing RequestPacket,NLG-RRP):主要功能是要求得到邻居节点相对于某指定出口节点所对应的层次;
11)网络层次图请求更新报文(Network Layer Graph Request Update Packet,NLG-RUP):主要功能是通知网络中指定相对于某目的节点对应层次上的节点进行层次的重新构建。
在NP-MNHA中,势能实际上是在概率意义上对从报文发送节点到接收节点之间连接可用性的一种度量,根据节点之间势能差值大小完成数据报文转发决策。影响势能差(Potential Difference)的因素很多,包括网络连接的有无、链路带宽大小、接收节点的处理负载、接收节点流量负载等历史统计信息、网络拓扑结构决定的接收节点拓扑分布特征等。在本发明中将势能定义为基于跳数和链路的实际带宽的一个混合度量值。跳数度量记录分组经过的路由器个数,每台路由设备均为一跳;链路的实际带宽为网络初始化时路由器配置的链路的带宽。
基于上述基本思想,本发明提供一种获取多下一跳路由的方法,包括:
步骤S101:网络层次图构建步骤:
步骤S1011:对于出口节点,其层次值为零;
步骤S1012:对于其他节点,其层次值为该节点的各个邻居节点相对于出口节点所对应的层次值中的最小值再加1;从而获得网络中各个节点的层次值;
步骤S102:节点势能构建步骤:
步骤S1021:如果当前节点为层次值为零的节点,则其势能值为0;
步骤S1022:如果当前节点为其它层次的节点,则在其同层或低层邻居节点中选出实际链路带宽最大的一个节点作为当前节点的势能定义参考节点,然后将该邻居节点的层数加1作为当前节点的势能值;
步骤S1023:当前节点的其它邻居节点的势能值为这些邻居节点的层次值;
步骤S1024:以势能值小于当前节点的邻居节点作为当前节点的可用下一跳路由。
以下以一个具体的实施例说明本发明的具体实现。
网络层次图的构建是由每个出口节点发起的,每个节点收到关于某出口节点的网络层次图构建触发报文后,将按照公式(1)计算自己的层次值。
L ( i , j ) = 0 L ( i , j ) = min [ L ( k , j ) ] + 1 , ( j ∈ N , k ∈ K i , j ≠ i , k ≠ i ) - - - ( 1 )
其中L(i,j)表示节点i相对于出口节点j所对应的层次值;N为网络中的节点集合;Ki为节点i的邻居集合。
网络层次图的具体的构建过程如下:
步骤1:算法初始时,初始节点将自己赋值为0层,然后节点向其邻居节点发送网络层次图构建触发报文NLG-CTP记为<ID0,ID0,0>,表示节点ID0相对于出口节点ID0的层次为0;
步骤2:邻居节点收到ID0发送的报文后,将自己设为1层,并生成NLG-CTP报文<ID′,ID0,0>向其所有邻居节点发送;下面层次的节点收到NLG-CTP报文后,按照公式(1)计算得到自己的层次值,并生成对应的NLG-CTP报文发送给其所有邻居节点;
......
步骤f+1:由当前构造发起节点即层值为f-1的节点发起第f层构造,向其邻居节点发送NLG-CTP报文记为<ID″,ID0,0>;当节点ID″的邻居收到该报文后分以下几种情况进行处理:
如果节点已计算得到自己的层次值为f-2层时,节点收到消息后,由于自己的层次值小于节点ID的层次值,由公式(1)可知,层次值不需要做任何调整,所以不做任何处理;
如果节点已计算得到自己的层次值为f-1层时,节点收到消息后,由于自己的层次值等于节点ID的层次值,由公式(1)可知,层次值不需要做任何调整,所以不做任何处理;
如果该节点是第一次收到关于出口节点ID0的层次触发报文,那么按照公式(1)得到自己的层次值为f,然后生成NLG-CTP报文记为<ID″′,ID0,f>发送给自己的邻居;
如果节点已计算得到自己的层次值为f层时,节点收到消息后,按照公式(1)己的层次不做调整,,所以不做任何处理;
如果节点已计算得到自己的层次值为大于f层时,节点收到消息后,将按照公式(1)调整自己的层次值为f+1,并生成NLG-CTP报文记为<ID″″,ID0,f+1>发送给自己的邻居。
当第f层构造完成时,第f层中的每个节点都知道自己在第f层,并且知道它邻居节点中的哪些节点在f-层,而f-1层中的节点知道自己所有的邻居中哪些为f层,哪些为f-1层,哪些为f-2层;
步骤f+2:假设第f层构造完成,但是算法尚未终止,将开始第f+1层的构造。f层的每个节点向所有邻居节点进行通告,通告报文中将包括该节点和其邻居之间链路的实际带宽;
图2示出了网络层次图的构建方法的计算过程示意图,可以看出,算法的主要特点是近邻同步:由f-1层节点发起第f+1层节点的构建,不需要每次构建都由根节点发起。
针对网络中的每个节点,网络层次图的构建过程的实现如图3所示,包括:
步骤S301:判断是否是出口节点,如果是,则执行步骤S302。
步骤S302:初始化该节点的层次为零,然后执行步骤S303:发送网络层次图构建触发报文,记为<ID0,ID0,0>,然后执行步骤S304。
步骤S305:当S301的判断结果为否时,则判断是否接收到网络层次图构建触发报文,记为<ID,ID0,f-1>,如果是,则继续执行一下步骤:
步骤S306:若本层为第f-2层,则执行步骤S304;
步骤S307:若本层为第f-1层,则执行步骤S304;
步骤S308:若本层为第f层,则执行步骤S304;
步骤S309:若本层的层次值未知,则执行步骤S311;
步骤S310:若本层的层次值大于f层,则执行步骤S311;
步骤S311:将节点侧层次值修改为f;
步骤S312:发送网络层次图构建触发报文,记为<ID,ID0,f-1>;
步骤S304:判断是否接收到所有邻居节点的网络图层次触发报文,若果是,则结束全部流程。
当网络层次图的构建算法执行完后,此时网络中的所有节点均知道自己到达某节点自己所处的层次、自己的邻居节点的层次以及和邻居节点之间的实际带宽,接下来节点将定义自己的势能值,其步骤如下:
步骤1:零层直接定义自己的势能值为0;
步骤2:其它层次的节点在其同层或低层邻居节点中选出实际链路带宽最大的一个节点作为自己的势能定义参考节点,然后将该邻居节点的层数加1作为自己的势能值,而其它邻居节点的势能值为这些邻居节点的层次值;
步骤3:当节点定义完成自己所有邻居节点的势能值之后,将势能值小于自己的邻居节点作为可用下一跳。
通过以上的步骤,节点势能定义完成。势能值为一个局部变量,也就是说一个节点仅仅对自己及其邻居的势能进行定义,并且定义完后并不将这个值告知其它的节点,仅仅用这些值作为参考选择到达出口节点的可用下一跳。
图4中假设网络的层次图已构建完成,以节点A为例说明势能值的定义方法,假设在节点A的同层和低层节点中,节点B提供的实际带宽最大,那么节点B就是自己的势能定义参考节点,所以得到自己的势能为f+1,而节点B、C、D、E和F的势能分别为他们自己的层次值f、f-1、f-1、f+1和f+1,这样节点B、C和D就是节点A最为到达出口节点的可用下一跳。
另外,本实施例提供的方法优选地还包括对节点层次值的更新过程,具体地,如图5和图6所示,节点层次值的触发更新是由于节点的可用下一跳集合为空这一特定事件导致的,当节点的可用下一跳集合为空当时(即步骤S501),节点进行以下的操作:(1)假设节点的层次值为n,节点查看自己的同层邻居节点集合是否为空(即步骤S502),如果不为空,那么节点将自己的层次值加1,重新定义节点的势能值,并生成NLG-IAP报文,将自己层次值的变化情况通告给自己的邻居(即步骤S503和S504);
(2)如果节点的同层邻居节点集合为空,那么节点按以下的步骤进行操作:
泛洪发送网络层次图请求更新报文(NLG-RUP),其中NLG-RUP中的层次值为自己的层次值减2,如果自己的层次值减2小于零,那么该值设置为0,消息发送完后将关于该出口节点的所有信息删除;
当节点收到该类NLG-RUP后,首先查看是否收到过此报文,如果是那么不做任何处理;否则,查看该报文的层次值,(即步骤S602),那么将NLG-RUP报文继续泛洪给自己的邻居(即步骤S603),并且将关于该出口节点的所有信息删除;如果不大于自己的层次值且小于自己的层次值,那么丢弃该报文不做任何处理(即步骤S606);如果等于自己的层次,那么节点停止继续泛洪发送NLG-RUP,将发送网络层次图构建触发报文NLG-CTP(即步骤S605),并且将关于该出口节点的所有信息删除;;
节点收到NLG-CTP报文后,将按照节点势能的计算方法进行相应的计算,当计算得到的层次值和自己原来的层次值相同时,那么停止发送NLG-CTP报文,层次值算法更新结束。
另外,本发明实施例提供的方法优选地还包括对节点势能值的更新,节点势能值的更新主要在以下情况下对节点的势能值进行更新:
1.网络层次图信息通告报文(NLG-IAP)引起的势能值更新
根据邻居节点发送过来的网络层次图信息通告报文(NLG-IAP)进行调整,NLG-IAP报文的主要内容是关于该节点相对于各个/某个出口节点在网络中的层次信息,节点接收到NLG-IAP报文后执行以下步骤:
提取NLG-IAP报文中的层次信息,假设每条路由条目包括RUIi=<ID,Desi,Layi>,而节点数据库中存储的信息为RUI′i=<ID,Desi,Lay′i>,当其中的信息满足如下三种情况时,路由器根据获得的信息对自己的路由表进行更新:
如果收到的路由表项中的目的网络在自身的路由表中不存在,那么添加之,并向其它邻居发送关于该目的地址的网络层次图路由请求报文,按照接收到的NLG-IAP报文,按照公式(1)计算得到节点和其邻居对应的层次值,然后定义邻居节点关于该目的节点的势能值,;
如果收到的路由表项中的目的网路存在于自身的路由表中,但是Lay′i<Layi,那么相应的调整该邻居节点的层次值和势能值;如果邻居节点调整后的势能值大于自己的势能值,并且该邻居节点在自己的下一跳集合中,那么从下一跳集合中删除该邻居节点;如果不在,则不做其它的处理;
如果Layi<Lay′i,那么相应的调整邻居数据库中该邻居节点的层次值和势能值;如果邻居节点调整后的势能值小于自己的势能值,并且该邻居节点原来不在自己的下一跳集合中,那么将其加入到下一跳集合中;如果在,则不做任何的处理;而此时节点并不调整自己的层次值和势能值。
2.节点的层次值发生变化导致的势能值的更新
当节点相对于某个目的地的层次值变化了,那么按照相应的调整策略对自己和邻居节点的势能值进行相应的调整。
另外,本发明实施例提供的方法还包括:在发生以下情况时需要节点生成网络层次图信息通告报文广播发送给其邻居节点:
A.在进行网络层次图的初始构建时,当节点发现自己相对于某个目的节点的层次信息发生变化后,节点将自己相对于网络中的各个目的节点所处的层次信息写入网络层次图信息通告报文NLG-IAP;
B.节点的网络层次信息发生了变化(自己检测到所有的低层次节点均不可用时,或者收到其它路由器发送的网络层次图信息通告报文后该节点的网络层次信息发生了变化,或者是新节点加入),节点将自己相对于网络中的各个目的节点所处的层次信息写入网络层次图信息通告报文NLG-IAP;
C.接收到邻居节点发送过来的关于某目的节点的网络层次图路由请求,将自己相对于网络中的各个目的节点所处的层次信息写入网络层次图信息通告报文NLG-IAP;。
当节点接收到网络层次图信息通告报文后进行的处理方法按照网络层次图构建算法进行计算和操作。
最后说明实现本发明实施例的几种协议报文格式。
1.网络层次图构建触发报文NLG-CTP
图7示出了网络层次图构建触发报文的协议格式。网络中某个出口节点加入网络时,发送该分组,启动网络节点建立以该节点为0层的网络层次图。
2.网络层次图信息通告报文NLI-IAP
图8示出了网络层次图信息通告报文的协议格式。向所有邻居节点采用组播地址发送;表示自己相对于出口节点Ai的层次值(i=1,2,......,n)。该报文通常将启动邻居节点进行势能动态调整。
3.网络层次图请求更新报文NLG-RUP
图9示出了网络层次图请求更新报文的协议格式。其中的层次值为节点的相对于该出口节点的层次值减2。
本发明另一实施例相应提供一种获取多下一跳路由的装置,如图10所示,该装置1000包括:
网络层次图构建单元1001,用于对于出口节点,将其层次值构建为零;还用于对于其他节点,将其层次值构建为该节点的各个邻居节点相对于出口节点所对应的层次值中的最小值再加1;从而获得网络中各个节点的层次值;
节点势能构建单元1002,用于对当前节点为层次值为零的节点,将其势能值构建为0,还用于对当前节点为其它层次的节点,在其同层或低层邻居节点中选出实际链路带宽最大的一个节点作为当前节点的势能定义参考节点,然后将该邻居节点的层数加1作为当前节点的势能值。
另外,本发明再一实施例还提供一种路由器,该路由器中包含上述获取多下一跳路由的装置。
以上所述仅是本发明的优选实施方式,应当指出,对于本技术领域的普通技术人员来说,在不脱离本发明原理的前提下,还可以做出若干改进和润饰,这些改进和润饰也应视为本发明的保护范围。

Claims (10)

1.一种获取多下一跳路由的方法,其特征在于,包括:
网络层次图构建步骤:
对于出口节点,其层次值为零;
对于其他节点,其层次值为该节点的各个邻居节点相对于出口节点所对应的层次值中的最小值再加1;从而获得网络中各个节点的层次值;
节点势能构建步骤:
如果当前节点为层次值为零的节点,则其势能值为0;
如果当前节点为其它层次的节点,则在其同层或低层邻居节点中选出实际链路带宽最大的一个节点作为当前节点的势能定义参考节点,然后将该邻居节点的层数加1作为当前节点的势能值;
当前节点的其它邻居节点的势能值为这些邻居节点的层次值;
以势能值小于当前节点的邻居节点作为当前节点的可用下一跳路由。
2.根据权利要求1所述的方法,其特征在于,所述网络层次图构建具体包括:
由已经构建成f-1层的节点发起第f层的构建,向邻居节点发送网络层次图构建触发报文;
当邻居节点接收到该网络层次图构建触发报文,如果该邻居节点的层次值尚未定义,则定义为f,并向该邻居节点的邻居节点发送网络层次图构建触发报文;如果该邻居节点的层次值已经定义为f、f-1或f-2,则不对该层次值做任何调整;如果该邻居节点的层次值已经定义为大于f的值,则将该邻居节点的层次值调整为f,并向该邻居节点的邻居节点发送网络层次图构建触发报文。
3.根据权利要求1所述的方法,其特征在于,所述方法还包括:在当前节点的可用下一跳路由集合为空时,则进行当前节点层次值的更新过程;
所述当前节点层次值的更新过程包括:
当前节点判断该当前节点的同层邻居节点集合是否为空,如果不为空,则将该当前节点的层次值加1,重新定义为该当前节点的势能值,并生成网络层次图信息通告报文,将该当前节点的层次值的变化情况通告给该当前节点的邻居节点;
如果判断当前节点的同层邻居节点集合为空,则当前节点泛洪发送网络层次图请求更新报文(NLG-RUP),其中NLG-RUP报文中的层次值为所述当前节点的层次值减2,如果当前节点的层次值减2小于零,那么该值设置为0,消息发送完后将关于该出口节点的所有信息删除;当节点收到该NLG-RUP报文后,首先查看是否收到过此报文,如果是则不做任何处理;否则,查看该报文的层次值,如果大于当前节点的层次值,那么丢弃该报文,如果小于当前节点的层次值,那么将NLG-RUP报文继续泛洪给当前节点的邻居节点,并且将关于该出口节点的所有信息删除;如果等于当前节点的层次值,那么节点停止继续泛洪发送NLG-RUP,将发送网络层次图构建触发报文(NLG-CTP);节点收到NLG-CTP报文后,将按照节点势能的计算方法进行相应的计算,当计算得到的层次值和当前节点原来的层次值相同时,那么停止发送NLG-CTP报文,层次值算法更新结束。
4.根据权利要求3所述的方法,其特征在于,所述方法还包括:
根据邻居节点发送过来的网络层次图信息通告报文对节点的势能进行调整。
5.根据权利要求3所述的方法,其特征在于,所述方法还包括:当节点相对于某个目的地的层次值发生变化后,则按照所述势能构建步骤对该节点和邻居节点的势能值进行相应的调整。
6.根据权利要求4所述的方法,其特征在于,所述方法还包括:在进行网络层次图的初始构建时,当节点发现自己相对于某个目的节点的层次信息发生变化后,则节点将自己相对于网络中的各个目的节点所处的层次信息写入网络层次图信息通告报文,并将所述网络层次图信息通告报文广播发送给其邻居节点。
7.根据权利要求4所述的方法,其特征在于,所述方法还包括:当节点的网络层次检测到所有的低层次节点均不可用时,或者收到其它路由器发送的网络层次图信息通告报文后该节点的网络层次信息发生了变化,或者是新节点加入,则节点将自己相对于网络中的各个目的节点所处的层次信息写入网络层次图信息通告报文,并将所述网络层次图信息通告报文广播发送给其邻居节点。
8.根据权利要求4所述的方法,其特征在于,所述方法还包括:接收到邻居节点发送过来的关于某目的节点的网络层次图路由请求,将自己相对于网络中的各个目的节点所处的层次信息写入网络层次图信息通告报文,并将所述网络层次图信息通告报文广播发送给其邻居节点。
9.一种获取多下一跳路由的装置,其特征在于,包括:
网络层次图构建单元,用于对于出口节点,将其层次值构建为零;还用于对于其他节点,将其层次值构建为该节点的各个邻居节点相对于出口节点所对应的层次值中的最小值再加1;从而获得网络中各个节点的层次值;
节点势能构建单元,用于对当前节点为层次值为零的节点,将其势能值构建为0,还用于对当前节点为其它层次的节点,在其同层或低层邻居节点中选出实际链路带宽最大的一个节点作为当前节点的势能定义参考节点,然后将该邻居节点的层数加1作为当前节点的势能值。
10.一种路由器,其特征在于,包括如权利要求9中的获取多下一跳路由的装置。
CN2009102240193A 2009-11-30 2009-11-30 一种获取多下一跳路由的方法、装置和路由器 Expired - Fee Related CN101710895B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN2009102240193A CN101710895B (zh) 2009-11-30 2009-11-30 一种获取多下一跳路由的方法、装置和路由器

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN2009102240193A CN101710895B (zh) 2009-11-30 2009-11-30 一种获取多下一跳路由的方法、装置和路由器

Publications (2)

Publication Number Publication Date
CN101710895A true CN101710895A (zh) 2010-05-19
CN101710895B CN101710895B (zh) 2012-11-14

Family

ID=42403655

Family Applications (1)

Application Number Title Priority Date Filing Date
CN2009102240193A Expired - Fee Related CN101710895B (zh) 2009-11-30 2009-11-30 一种获取多下一跳路由的方法、装置和路由器

Country Status (1)

Country Link
CN (1) CN101710895B (zh)

Cited By (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN103781144A (zh) * 2014-02-28 2014-05-07 东南大学 一种交互邻居表模式的Zigbee网络树型路由方法
CN104702503A (zh) * 2015-03-26 2015-06-10 中国电子科技集团公司第七研究所 网络路由方法和系统
CN107835129A (zh) * 2017-10-24 2018-03-23 重庆大学 内容中心网络边缘节点势能增强路由方法

Family Cites Families (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN101262428B (zh) * 2008-04-24 2011-06-01 西南科技大学 稀疏ad-hoc网络中基于多目标优化的势场路由算法
CN101588291B (zh) * 2008-05-22 2013-01-09 原创信通电信技术(北京)有限公司 在ip电信网系统中确定分组传输路由的方法

Cited By (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN103781144A (zh) * 2014-02-28 2014-05-07 东南大学 一种交互邻居表模式的Zigbee网络树型路由方法
CN104702503A (zh) * 2015-03-26 2015-06-10 中国电子科技集团公司第七研究所 网络路由方法和系统
CN104702503B (zh) * 2015-03-26 2018-05-18 中国电子科技集团公司第七研究所 网络路由方法和系统
CN107835129A (zh) * 2017-10-24 2018-03-23 重庆大学 内容中心网络边缘节点势能增强路由方法
CN107835129B (zh) * 2017-10-24 2020-06-02 重庆大学 内容中心网络边缘节点势能增强路由方法

Also Published As

Publication number Publication date
CN101710895B (zh) 2012-11-14

Similar Documents

Publication Publication Date Title
CN104104718B (zh) 一种基于软件定义网络的用户自主路由定制系统和方法
EP2911348B1 (en) Control device discovery in networks having separate control and forwarding devices
EP3208977B1 (en) Data forwarding method, device and system in software-defined networking
EP2652921B1 (en) Dynamic reroute scheduling in a directed acyclic graph (dag)
KR102002189B1 (ko) 분할 아키텍처 시스템에서의 제어 트래픽의 탄력적 라우팅을 위한 방법 및 장치
JP3546764B2 (ja) ネットワークに備えられた負荷分散サーバ及び負荷分散サーバを備えるノード
EP3186932B1 (en) Path selection in hybrid networks
US9692697B2 (en) Control channel establishing method, forwarding point, and controller
US11509584B2 (en) Routing method, related device, and system
US11095553B2 (en) Method, apparatus and system for controlling routing information advertising
CN103067291A (zh) 一种上下行链路关联的方法和装置
CN112866103B (zh) 一种面向边缘计算的时间敏感移动前传网络保护方法
Lei et al. Multipath routing in SDN-based data center networks
La et al. Distribution of path durations in mobile ad hoc networks and path selection
CN106330730A (zh) 组播控制方法和装置
CN101710895B (zh) 一种获取多下一跳路由的方法、装置和路由器
CN102378265B (zh) 一种无线传感网缓解网络拥塞发生的控制方法
CN107222901B (zh) 基于信道分配的认知无线网络路由协议的实现方法
CN105591806B (zh) 一种链路切换方法及装置
CN106412969B (zh) 综合业务网关容灾切换的方法和装置
CN104579992A (zh) 一种控制网络流量路径的方法及装置
KR101369992B1 (ko) Mil-std-188-220 프로토콜에서 dtr 비트를 활용한 서비스 품질 적용 방법
CN106941686A (zh) 一种路径调整方法、oss网管及ptn网管
CN104038436A (zh) 一种解决有线网络拥塞的路由选择方法
CN110198544B (zh) 工业无线网络拓扑管理方法

Legal Events

Date Code Title Description
C06 Publication
PB01 Publication
C10 Entry into substantive examination
SE01 Entry into force of request for substantive examination
C14 Grant of patent or utility model
GR01 Patent grant
CF01 Termination of patent right due to non-payment of annual fee

Granted publication date: 20121114

Termination date: 20161130

CF01 Termination of patent right due to non-payment of annual fee