一种低负载、可靠的链路状态路由协议洪泛方法

文档序号:7966855阅读:566来源:国知局
专利名称:一种低负载、可靠的链路状态路由协议洪泛方法
技术领域
链路状态路由协议洪泛方法属于互联网技术领域,尤其涉及路由技术。
背景技术
路由方法可以分为两类距离矢量路由方法和链路状态路由方法。在距离矢量路由方法中,每一个路由器维护一个矢量,矢量中列出了当前已知的到每个目标的最佳距离,以及所使用的路径。通过与每个邻居之间相互交换信息,路由器不断地更新它们内部的路由表。但距离矢量路由方法收敛比较慢,并且不易于扩展。当今的网络中链路状态路由方法是占主导地位的域内路由方法,例如OSPF(open shortest path first,最短路径优先),IS-IS(IntermediateSystem-Intermediate System,中间系统到中间系统)都是使用这种方法。和距离矢量路由方法相比链路状态路由方法最突出的优点是每一个路由器独立计算路由;不依赖其他路由器的计算结果;支持到目的地址的多种路径等。
但是,当网络拓扑改变时,链路状态路由方法需要洪泛链路状态信息(每一条信息都将被发送到除了它进来的那条链路之外的每一条输出链路上)。以确保同一个区域中的拓扑数据库达到一致。尤其当链路变化比较频繁或是区域非常大、包含的路由器非常多的时候,洪泛的负载是非常大的,这种负载可能造成网络的拥塞,可以使路由收敛的性能变糟,从而导致网络的不稳定。所以洪泛过程中发送信息的数量在链路状态路由协议中起着很重要的作用。
但是,链路状态路由协议洪泛方法还存在很多的缺陷。例如洪泛负载过大,带宽浪费严重,洪泛速率慢等问题。目前对链路状态路由协议洪泛方法的研究很多都集中在对方法中存在的问题进行改进,但是,这些方案都不能很好的解决洪泛过程中存在的问题,都还存在缺陷。

发明内容
本发明提出了在链路状态路由环境下的ERSN(efficient reliable subnetwork,有效的、可靠的子网)方法。该方法很好的解决了在洪泛过程中报文发送数量大,网络负载严重的问题,是一个可靠、有效的洪泛方法解决方案。
本发明所提出的方法的基本思想在于本发明以RSN(reliable subnetwork,可靠的子网)方法为基础,特别针对其中的主要问题——不能有效的减少链路数目,降低洪泛信息的数量问题提出了解决方案。在构造网络拓扑图最小生成树的基础上,为拓扑图引入桥的概念,在保证稳定性的条件下,有效减少了链路的数目,降低了网络的负载。
本发明的特征在于该方法是以RSN方法为基础来实现洪泛过程的改进,它依次包含有以下步骤首先介绍一些基本的定义(1)若无向图中任意两个节点都是互相可达的,则称该无向图为连通的,否则为非连通的。
(2)边连通度是由连通图产生非连通图需要删除边的最少数目。
(3)设无向图G=<V,E>(其中V是网络中节点的集合,E是网络中边的集合)是连通的,若有边子集E′属于E,使得在图G中删除了E′之后,所得到的子图G-E′是非连通的,而在图G中删除E′的任何真子集所得到的子图仍是连通图,则称E′为G的一个边割集。若图G的某一边割集仅有一条边e,则称该边e为桥。
(4)节点的度数是指与该节点关联的链路的数目。
(5)一条路的起点和终点重合时称其为回路。
(6)除起点和终点重合外,其余节点均不相同的路称其为圈。
(7)一个连通无向图G的割集K是G最少边的集合,除去它将使G分割为两个连通子图。
(8)设T是连通图G的一棵生成树,如果割集K的边中仅含T的一条树枝(生成树的边),则称K为图G关于生成树T的基本割集。
(9)给定网络G=(V,E),若在E上的实值函数f满足对任意的边e∈E,有0≤f(e)≤c(e),c(e)为边的权重,也可称为边容量,f(e)称为边e的流量。对所有的节点v∈V,f-(v)表示所有以v为终点的边上的流量之和,f+(v)表示所有以v为起点的边上的流量之和,则称f为G的流函数,简称流。
(10)设f为网络G的流,Γ为G中一条无向路(s,t),若Γ中的所有前向边<x,y>(即方向与Γ中从s到t的方向一致的边)均有f(x,y)<c(x,y),所有后向边<u,v>,均有f(u,v)>0,则称Γ为f可增路。
步骤1,根据网络拓扑构造最小生成树定义网络拓扑图G=(V,E),其中V是网络中节点的集合,E是网络中边的集合。假设拓扑图G有n个节点,每个节点设为vi(i=1、2、3....n),vi和vj之间的链路为lij,vi的度数为Di,Ni为vi邻居节点的集合,C为ESNT(efficient subnetwork topology,有效的子网拓扑)的边连通度。
假设网络中的每一个节点都运行链路状态路由协议,例如OSPF或IS-IS。如图1所示,每一个节点运行链路状态协议收集网络的拓扑信息,当网络达到稳定状态,每一个节点的拓扑数据库达到一致后,运用克鲁斯克尔(Kruskal)算法为网络拓扑构造最小生成树MST(minimum spanning tree),其基本思想为选择拓扑图中开销最小的一条边,相继添加不与已经选择的边形成圈的权最小的边,挑选n-1条边为止,n为节点个数。
步骤2,为网络拓扑G生成ESNT拓扑图步骤2.1,根据生成的最小生成树MST,计算每一个节点的度数Di;步骤2.2,如果最小生成树中每一个节点的度数都大于1,执行步骤2.4,否则,存在节点度数为1的节点,则执行步骤2.3;步骤2.3,任选一个度数为1的节点vi,为MST添加边lij,依次比较集合Ni中的每个节点的度数,选出度数最小的节点vj,如果邻居节点中存在多个最小度数相同的节点,则选择添加边lij之后,构成回路中连接节点最多的那一个节点vj,执行步骤2.2;步骤2.40,设置此时构成的拓扑图为ESNT,运用埃德蒙-朱迪(Edmonds-Karp)算法(基本思想是对流f寻找可增路,若存在,则通过调整路上的值使f增大而得到一个新流,再对新流重复此过程,直到不存在可增路),计算ESNT中的边连通度C,当C大于1时,执行步骤2.6,否则当边连通度小于1时,执行步骤2.5;步骤2.5,通过基本割集的方法,计算ESNT中的桥Bi(Bi为不在ESNT中任何圈上的一条边),为ESNT添加一条边,该边可以构成一个包含Bi在内的回路,如果存在多条这样的边,则比较他们的权重值(代表了一种度量,比如距离、延迟等),选择权重最小的那条边,执行步骤2.4;步骤2.6,END。
构造网络拓扑如图1所示,执行步骤1,计算最小生成树得到拓扑图,如图2所示;执行步骤2.1,计算每个节点的度数,得到度数为的1节点为D、E、I、J、K、L;执行步骤2.3,分别为度数为的1的节点加边DI、EF、JK、KL,得到拓扑图,如图3所示;执行步骤2.4,此时拓扑图的边连通度大于1;执行步骤2.6,得到最后的拓扑图,如图3所示,结束。
本发明具有以下优点(1)通过为网络拓扑的最小生成树的叶子节点加边,可以使最后生成的拓扑图ESNT的每一个节点的度数都大于1,这样就可以保证当网络中节点的一个链路断开后,该节点不会从网络拓扑中孤立出去,增强了网络的稳定性。
(2)在构造ESNT的过程中,要保证拓扑图的边连通度大于1,同时要避免桥的产生,可以有效的减少添加边的数目,并保证拓扑图中的某个链路断开后,网络拓扑不会被孤立为两个不连通的部分。
(3)本发明不存在失效的节点使网络拓扑被分割为不连通的部分。
(4)本发明充分减少了链路的数目,有效的减少了洪泛信息的数量,降低了网络的负载,保证了路由快速有效的收敛。
本发明是一个有效的链路状态路由协议洪泛方法解决方案,它对洪泛方法中的发送信息过大的问题给予了较好的解决。结果显示,本发明在维持网络稳定性的情况下,具有减少链路数目,降低网络负载,减少洪泛信息数量等优点,是一个有效的洪泛方法解决方案。


图1.原始的网络拓扑结构。
图2.计算最小生成树得到的拓扑图。
图3.ERSN方法得到的网络拓扑。
图4.RSN方法得到的网络拓扑。
图5.模拟结果。
图6.方法流程图。
具体实施例方式
我们首先介绍标准的洪泛方法。
在链路状态路由算方法中,当网络拓扑改变时,路由器就会洪泛LSA(Link StateAdvertisements,链路状态信息),以确保同一个区域内的拓扑数据库达到一致。收到更新的LSA后,为确保其它节点数据库的一致性,接收节点需要将更新的LSA洪泛到它的所有邻居路由器(除了发送此信息的邻居)。这样就会造成大量冗余信息的产生。如图1所示,假设包含12个节点的网络,每一个网络节点都运行OSPF协议,当连接节点A的某个链路断开后,节点A就会向它连接的所有邻居节点B,C,D,E发送LSAs,这样节点F就会收到A,C,E发送的包含同样信息的LSAs,其他的节点也同样要收到大量的包含相同信息的冗余LSAs,从这里可以看出,标准的洪泛方法会造成大量冗余信息的产生,从而造成带宽的浪费和网络负载的加重。
然后介绍RSN洪泛方法。
在这个方法中,首先运用克鲁斯克尔(Kruskal)算法为网络拓扑构造一棵最小生成树MST,计算最小生成树每一个节点的度数。其次为度数为1的叶子节点加入开销值最小的边,当加边后的网络拓扑的边连通度(边连通度是由连通图产生非连通图需要删除边的最少数目)小于1的时候,继续为最小生成树加入权重值最小的边。直到网络拓扑的边连通度大于1。这样得到最后的拓扑图称为SNT(subnetwork topology,子网拓扑)。当链路状态路由协议需要洪泛路由信息时,只在属于SNT的链路上进行洪泛,其他不属于SNT的链路并不进行信息的洪泛。
因为SNT的边连通度大于1,所以当网络中一个节点的链路断开后,可以保证网络中的节点不会从网络拓扑中孤立出去。但是,该方法没有考虑SNT生成过程中桥的产生。设无向图G=<V,E>是连通的,若有边子集E′属于E,使得在图G中删除了E′之后,所得到的子图G-E′是非连通的,而在图G中删除E′的任何真子集所得到的子图仍是连通图(若无向图中任意两个节点都是互相可达的,则称该无向图为连通的,否则为非连通的),则称E′为G的一个边割集。若图G的某一边割集仅有一条边e,则称该边e为桥。桥是网络拓扑中一个重要的链路,当这个链路断开时,网络拓扑就会分成两个不连通的部分,并且存在桥的网络拓扑的边连通度为1。因此,RSN方法为了保证边连通度大于1,就必须为拓扑图加边直到边连通度大于1,所以RSN方法不能有效减少路由器链路的数目,降低洪泛信息的数量,保证路由快速有效的收敛。例如根据RSN方法,由原始的拓扑图如图1所示,最后得到的拓扑图SNT如图4所示,在图4中,为了防止桥的出现,为MST的叶子节点加边后必须为子图再添加边AC、AI、EG、EH。
下面详细介绍ERSN方法。
通过深入分析,ERSN的核心思想是通过减少网络拓扑中链路的数目来控制需要洪泛的信息数量。在构造网络拓扑图最小生成树的基础上,为拓扑图的最小生成树的叶子节点加边,同时要保证加边后构成的回路中包含最多的节点,以尽可能避免桥的产生。这样就会保证在拓扑图的连通度大于1的情况下,尽可能的减少拓扑图中链路的数量,最大程度的降低需要洪泛的信息数量,减少网络带宽的占用。
定义网络拓扑图G=(V,E),其中V是网络中节点的集合,E是网络中边的集合。假设拓扑图G有n个节点,每个节点设为vi(i=1、2、3....n),vi和vj之间的链路为lij,vi的度数为Di,Ni为vi邻居的集合,C为ESNT(efficient subnetwork topology)的边连通度。
假设网络中的每一个节点都运行链路状态路由协议,例如OSPF或IS-IS。首先,每一个节点运行链路状态路由协议收集网络的拓扑信息,当网络达到稳定状态后。ERSN方法的具体实施方式
可以描述为1.运用克鲁斯克尔(Kruskal)算法为网络拓扑计算最小生成树MST;2.计算MST中每个节点的度数Di;3.如果Di大于1,对每一个节点i∈{Di|Di;>1},执行步骤5,否则执行步骤4;4.为MST添加边lij,依次比较邻居节点中每个节点的度数,选出度数最小的节点vj,如果存在多个这样的节点,则选择加边后构成回路中连接节点最多的vj,执行步骤3;
5.ESNT=MST;运用Edmonds-Karp算法,计算ESNT中的边连通度C,当C大于1时,执行步骤7,否则执行步骤6;6.通过基本割集的方法,计算ESNT中的桥Bi(Bi为不在ESNT中任何圈上的一条边),为ESNT添加一条边,该边可以构成一个包含Bi在内的回路,如果存在多条这样的边,则比较他们的权重值,选择权重最小的那条边,执行步骤5;7.END。
根据原始拓扑图如图1所示,ERSN方法最终得到图3,首先得到最小生成树,如图2所示,节点C、D、I、J、K、L是最小生成树中的叶子节点,它们的度数为1,不能保证洪泛的可靠性,当这些节点连接的链路断开后,整个拓扑图就会被分成孤立的几个连通分支(设M′是无向图M的连通子图,若M′不包含在的任何更大的连通子图中,则称M′是图M的连通分支),每个分支都不能得到整个网络的拓扑信息,从而不能进行正确的路由计算。步骤4为这些叶子节点加边DI、EF、JK、KL。最后得到图3。
为了测试该方法的性能,利用Opnet网络模拟器搭建网络拓扑结构,对它进行模拟,并与标准洪泛方法和RSN方法的性能进行比较。方法性能比较包括两个指标网络洪泛LSAs的总数量和失效节点对网络拓扑的影响。模拟器随机产生的网络拓扑包含15个网络节点,25条链路。在限定30秒时间范围内,任何一个节点随机的发生改变而洪泛LSAs。统计网络节点发送的LSAs的总数量。
图5为模拟结果,由图可以看出ERSN方法发送的报文数量比标准的洪泛方法减少了45%,比RSN方法减少了30%。大大减少了报文的发送数量,减轻了网络负载。
假设模拟器产生的网络拓扑的每个节点都随机的失效。当任意一个节点失效时,网络拓扑被分割成独立的两个部分,统计网络中存在多少个这样的节点。

表1比较失效节点个数由表1可以看出,标准洪泛方法和ERSN方法中不存在这样的节点当这个节点失效时,网络被分割成独立的两个部分,从而使节点的链路状态数据库不能统一。RSN方法中存在两个这样的节点,当这两个节点失效时,RSN方法不能使节点统一它们的链路状态数据库,从而保证洪泛的可靠性。
综合模拟结果可以看出,本发明提供的方法可以有效的降低发送的洪泛报文的数量,减少网络的负载,并保证洪泛的可靠性,是一个有效的的洪泛方法解决方案。
由此可见,本发明达到了预期目的。
权利要求
1.一种低负载、可靠的链路状态路由协议洪泛方法,其特征在于在每个节点(路由器)都运行链路状态的互联网中,当网络达到稳定状态,即每一个节点vi的拓扑数据库达到一致后,若某个节点收到了链路变化的信息,则该节点按下述方法构成的有效、可靠的子网拓扑把链路状态信息洪泛到与该节点相连的链路上步骤(1)该节点运用克鲁斯克尔算法为当前网络拓扑构造最小生产树选择所述网络拓扑结构中最小的一条边,相继添加不与已经选择的边形成圈的权重最小的边,一直到挑选n-1条边为止,n为节点的个数,最终得到网络拓扑的最小生成树,所述圈是指除起点和终点重合外,其余节点均不相同的路;步骤(2)为步骤(1)所构造的网络拓扑生成可靠有效的子网拓扑图,依次含有以下步骤步骤(2.1)根据步骤(1)得到的最小生成树,计算其中每个节点的度数;步骤(2.2)若最小生成树中每个节点的度数都大于1,则转步骤(2.4),否则,对度数为1的节点执行步骤(2.3);步骤(2.3)在所选节点vi的邻居节点集合中依次比较每个节点的度数,选择一个度数最小的节点vj,为所述最小生成树添加边lij,返回步骤(2.2);步骤(2.4)设置步骤(2.3)最终形成的网络拓扑结构为有效可靠子网拓扑图,运用埃德蒙-朱迪算法,根据网络中流的原理,所述流为定义在边上的函数,计算该子网的边连通度,所述边连通度是指由连通图产生非连通图时需要删除的边的最少数目,当边连通度大于1时,执行步骤(2.6),否则,执行步骤(2.5);步骤(2.5)通过基本割集的方法,找出该有效可靠子网拓扑图中的桥,所述基本割集是指T为连通图的一棵生成树,如果割集的边中仅含有该生成树的一条边,则该割集为连通图的基本割集,所述割集为一个连通无向图的最少边的集合,除去它该将使该连通无向图分割为两个连通子图,所述桥为不在可靠有效拓扑图中任何圈上的一条边,为有效可靠子网拓扑图添加一条边,该边可以构成一个包含该桥在内的回路,如果存在多条这样的边,则比较它们的权重值,选择权重最小的那条边;步骤(2.6)形成该节点vi在所连接链路上洪泛链路信息的网络拓扑结构。
2.根据权利要求1所述的一种低负载、可靠的链路状态路由协议洪泛方法,其特征在于,在所述步骤(2.3)中,如果在邻居各节点中存在多个最小度数相同的节点,则选择添加边lij之后,所构成回路中所连接节点最多的那个节点vj。
全文摘要
本发明属于互联网路由技术领域,其特征在于根据当前网络拓扑结构生成最小生成树之后,任选一个度数为1的节点v
文档编号H04L29/06GK1929443SQ200610113118
公开日2007年3月14日 申请日期2006年9月15日 优先权日2006年9月15日
发明者徐明伟, 汪晓洁, 吴茜 申请人:清华大学
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1