CN100499658C - 一种避免冗余Flood的方法 - Google Patents
一种避免冗余Flood的方法 Download PDFInfo
- Publication number
- CN100499658C CN100499658C CNB2005101014125A CN200510101412A CN100499658C CN 100499658 C CN100499658 C CN 100499658C CN B2005101014125 A CNB2005101014125 A CN B2005101014125A CN 200510101412 A CN200510101412 A CN 200510101412A CN 100499658 C CN100499658 C CN 100499658C
- Authority
- CN
- China
- Prior art keywords
- lsa
- flood
- router
- neighbours
- inundation
- 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.)
- Expired - Fee Related
Links
Images
Landscapes
- Data Exchanges In Wide-Area Networks (AREA)
Abstract
本发明公开了一种避免冗余Flood的方法,根据开放最短路径优先协议OSPF的Flood原则:在Flood一条链路状态公告(LSA)的时候,如果不确定邻居是否已经有该条LSA那就需要把它Flood给对方,如果已经确定该邻居已经有该LSA,则不必再向其Flood该LSA,关键是如何判断在这个邻居上已经存在该LSA,本发明的判断方法是如果路由器A从路由器B收到一条LSA,那么B一定有该条LSA。通过本发明,可以消除冗余Flood的LSA,减少报文的接收、处理工作量,避免带宽的无效占用。
Description
技术领域
本发明涉及网络通信技术领域,尤其涉及一种避免冗余Flood的方法。
背景技术
OSPF(开放最短路径优先协议)是运行于IP(网际协议)之上的协议,它没有利用TCP(传输控制协议)进行报文的传输,因此保证报文的可靠传输就成为OSPF协议的一部分。目前OSPF协议可以充分保证报文的可靠传输,但是在两台路由器之间存在多条并行链路的情况下却会出现传输冗余的情况。并行链路的数量越多,冗余传输的情况也就越严重。如果能够避免冗余的传输,那就能很大地提高路由器的处理效率。
OSPF的网络类型:P2P,NBMA,Broadcast。P2P就是点到点类型,意思是一条链路只能使两台路由器通信。NBMA和Broadcast(广播网)的行为是一致的,这种网络中的路由器分为三种角色(以一个广播网为例):DR(一定会有且仅一个),BDR(是DR的备份路由器,DR坏了BDR就自动成为DR了,不一定有,但最多只能一个),DRother(数量没有限制,可以有,可以没有)。DR、BDR、DRother的概念仅存在于NBMA和Broadcase网络中,P2P中不存在也没有对应的角色。DR、BDR是路由器自动选举产生的,DRother就是除去DR和BDR的路由器了。
显式ACK:在任何类型的网络上,如果路由器A给B发送一个LSA,然后B回给A一个ACK报文的话,这种确认的方式叫做显式ACK。
隐式ACK:在NBMA和Broadcast类型的网络上,如果DRother给DR发送一个LSA,协议规定DR只能给DRother回那个收到的LSA,这种类型叫做隐式ACK。
根据OSPF标准(RFC2328),一台路由器收到一条LSA(链路状态通告)后应该向所有其它邻居Flood。接收端在收到LSA后会发送一个ACK给发送端。如果发送端在一定时间内没有收到确认,它会把LSA再Flood一次,直到收到ACK为止。这样一个Flood周期就完成了。
图1中的拓扑结构,Flood LSA的过程如图2所示,RTA和RTB都运行OSPF协议,它们之间有三条并行链路,对应的接口分别为s0、s1和s2。假设RTB向RTA Flood一条LSA,根据OSPF标准,LSA会分别从RTB的接口s0、s1、s2向RTA Flood;RTA会分别从三个接口收到三份相同的LSA,再假设s0接口的LSA先到达RTA,RTA会把该LSA从其接口s1、s2给Flood回RTB,然后再从接口s0发一个ACK给RTB,通知RTB在接口s0上发送的LSA已经收到了;接下来RTB从s1、s2Flood出来的LSA也陆续到达RTA,RTA会认为这两个LSA是重复的LSA,它会分别在s1、s2发送一个ACK告诉RTB从上述两个接口Flood的LSA已经收到了。
发明内容
从图2可以看到,三个并行链路的情况下,两台路由器报文发送总的次数共六次。事实上,在图1中的两台路由器之间冗余Flood的发送有两次:分别是RTA收到RTB Flood过来的LSA后又分别从接口s1和s2把该LSA Flood回去,在图2中用虚线显示。如果RTA不Flood这两条LSA,那么RTA和RTB都能提高2/6(33%)的效率。而且并行链路越多,冗余Flood的LSA越多。四条链路会冗余Flood 3条LSA,浪费的效率是3/8(37%)。随着链路的增加,冗余Flood的LSA就越多,浪费的效率会越来越趋近于50%。
本发明的发明目的是提供一种避免冗余Flood的方法,通过本发明,通过本发明,可以消除冗余Flood的LSA,利用本发明可以有效减少报文的Flood,同时减少报文的接收处理,降低了带宽的占用。
本发明的目的是通过以下技术方案实现的:
一种避免冗余洪泛Flood的方法,适用于开放最短优先路径OSPF多链路情况,该方法包括:
A.路由器的一个接口收到一个链路状态广播LSA,查询所述LSA的发送方,记录所述发送方的标识Router-id;
B.遍历所述路由器所有的接口下的所有的邻居,每一次遍历过程中,如果当前的邻居满足特定条件,则不向该邻居Flood LSA。
其中,所述特定条件包括:当前的邻居的标识Router-id和所述记录的标识Router-id相同,并且不需要Flood隐式ACK。
所述的一种避免冗余Flood的方法,步骤A中所述的LSA,是所述路由器接口收到的比自己数据库中更新的、非所述路由器接口生成的链路状态广播LSA。
所述的一种避免冗余Flood的方法,步骤A中所述的发送方的标识Router-id,
置于所述LSA的域中;
或者,通过函数的参数来传递。
所述的一种避免冗余Flood的方法,所述步骤B中遍历所有的接口下的所有的邻居之前,确定每一个接口、每一个邻居存在。
所述的一种避免冗余Flood的方法,所述步骤B中判断不需要Flood隐式ACK的情况包括:所述路由器不是指定路由器DR,或者所述LSA的发送方不是非指定路由器DRother。
所述的一种避免冗余Flood的方法,所述步骤B还包括:每一次遍历过程中,如果当前的邻居不满足所述的条件,则向该邻居Flood LSA。
所述的一种避免冗余Flood的方法,有多条并行链路时,如果存在一条可靠链路,则只在该条链路上Flood LSA。
附图说明
图1为拓扑结构示意图。
图2为已有技术中发送LSA的示意图。
图3a为本发明中发送LSA的示意图。
图3b为本发明中发送LSA的示意图。
图4为本发明中发送LSA的流程图。
具体实施方式
贯穿说明书,示出的该优选实施例和示例应被看作本发明的范例而不受限制。
路由器Router每次收到一条LSA
查询该条LSA是由哪一个邻居Flood的,记录该路由器的标识Router-id;
遍历所有接口下的所有的邻居路由器,与已经记录的标识Router-id比较;
如果标识Router-id相同:并且不需要Flood隐式ACK,则跳过该邻居取下一个邻居,否则,向该邻居Flood LSA。
本发明提供的一种避免冗余Flood的方法,具体实施流程如图4所示,其中,
步骤410:
路由器的一个接口收到一个比自己数据库中更新的,且非自己产生的链路状态广播LSA;
步骤420:
在所述接口下的邻居表中根据源IP地址查找到发送所述LSA的邻居,记录下该路由器的标识Router-id,取第一个接口;
步骤430:
如果所述接口不存在,则跳转到步骤540;
步骤440:
所述接口存在,如果所述路由器自己是指定路由器DR,并且邻居是非指定路由器DRother,则所述接口发送隐式ACK,否则,跳转到步骤460;
步骤450:
取所述路由器的下一接口,跳转到步骤430;
步骤460:
发送显式ACK,取第一个邻居;
步骤470:
如果邻居不存在,跳转到步骤450;
步骤480:
如果邻居关系没有建立,跳转到步骤520;
步骤490:
如果路由器自己是非指定路由器DRother,且LSA是指定路由器DR或备份指定路由器BDR发送过来的,跳转到步骤450;
步骤500:
假如路由器自己是备份指定路由器BDR,则跳转到步骤450;
步骤510:
路由器自己不是备份指定路由器BDR,假如当前邻居的标识Router-id和发送这个LSA的邻居的标识Router-id相同,则跳转到步骤530;
步骤520:
给这个邻居发送LSA;
步骤530:
取下一个邻居,跳转到步骤470。
步骤540:
结束。
此时,FloodLSA的示意图如图3a所示,如果RTA不Flood图2中虚线表示的两条冗余LSA,那么RTA和RTB都能提高2÷6=33%的效率,而且并行链路越多,冗余Flood的LSA越多。随着链路的增加,冗余Flood的LSA就越多,浪费的效率会越来越趋近于50%,因此,本发明最大可减少50%的总报文Flood量。
如图3b所示,如果在多条并行链路的情况下能够确保其中某一条链路一定可靠,则可以指定LSA只在该条链路上Flood,这样就能够更进一步地降低冗余的LSA Flood和接收。以图1中的拓扑为例,如果指定RTB在s0接口上FloodLSA,那么当RTB要向RTA Flood一条LSA时,它只会从s0接口Flood给RTA,而不会再从s1或s2Flood LSA。这样在多条并行链路的情况下,Flood LSA时就可以把多条链路看成一条链路,使得报文Flood、接收的效率达到最高。也就是说一条LSA仅仅两个报文就够了,比改进前减少了四个报文,效率提高了66%。
通过本发明可以判断邻居上是否已经存在该LSA,如果该邻居上存在该LSA,则不再向其Flood该LSA,如果该邻居上不存在该LSA,且存在一条可靠链路,则只在该条链路上Flood,否则,正常处理。本发明可以消除冗余Flood的LSA,利用本发明可以有效减少报文的Flood,同时减少报文的接收处理,降低了带宽的占用。接口数量越多,效果越好。随着接口数量的增加,最大可减少50%的总报文Flood量。
Claims (7)
1.一种避免冗余洪泛Flood的方法,适用于开放最短优先路径OSPF多链路情况,其特征在于,该方法包括:
A.路由器的一个接口收到一个链路状态广播LSA,查询所述LSA的发送方,记录所述发送方的标识Router-id;
B.遍历所述路由器所有的接口下的所有的邻居,每一次遍历过程中,如果当前的邻居满足特定条件,则不向该邻居Flood LSA;
其中,所述特定条件包括:当前的邻居的标识Router-id和所述记录的标识Router-id相同,并且不需要Flood隐式ACK。
2.根据权利要求1所述的一种避免冗余洪泛Flood的方法,其特征在于,步骤A中所述的LSA,是所述路由器接口收到的比自己数据库中更新的、非所述路由器接口生成的链路状态广播LSA。
3.根据权利要求1所述的一种避免冗余洪泛Flood的方法,其特征在于,步骤A中所述的发送方的标识Router-id,置于所述LSA的域中,或者通过函数的参数来传递。
4.根据权利要求1所述的一种避免冗余洪泛Flood的方法,其特征在于,所述步骤B中遍历所有的接口下的所有的邻居之前,确定每一个接口、每一个邻居存在。
5.根据权利要求1、2、3或4所述的一种避免冗余洪泛Flood的方法,其特征在于,所述步骤B中判断不需要Flood隐式ACK的情况包括:所述路由器不是指定路由器DR,或者所述LSA的发送方不是非指定路由器DRother。
6.根据权利要求5所述的一种避免冗余洪泛Flood的方法,其特征在于,所述步骤B还包括:每一次遍历过程中,如果当前的邻居不满足所述的条件,则向该邻居Flood LSA。
7.根据权利要求6所述的一种避免冗余洪泛Flood的方法,其特征在于,有多条并行链路时,如果存在一条可靠链路,则只在所述可靠链路上FloodLSA。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CNB2005101014125A CN100499658C (zh) | 2005-11-12 | 2005-11-12 | 一种避免冗余Flood的方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CNB2005101014125A CN100499658C (zh) | 2005-11-12 | 2005-11-12 | 一种避免冗余Flood的方法 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN1859375A CN1859375A (zh) | 2006-11-08 |
CN100499658C true CN100499658C (zh) | 2009-06-10 |
Family
ID=37298237
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CNB2005101014125A Expired - Fee Related CN100499658C (zh) | 2005-11-12 | 2005-11-12 | 一种避免冗余Flood的方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN100499658C (zh) |
Families Citing this family (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN102404228B (zh) * | 2011-12-12 | 2014-12-24 | 杭州华三通信技术有限公司 | 一种基于ospf协议的gr处理方法和设备 |
WO2014000181A1 (zh) * | 2012-06-27 | 2014-01-03 | 华为技术有限公司 | 最短路径优先邻居建立方法、节点及系统 |
CN103346973B (zh) * | 2013-06-17 | 2016-11-16 | 杭州华三通信技术有限公司 | 一种动态调整ospf的lsa洪泛速率的方法和装置 |
CN104506430A (zh) * | 2015-01-15 | 2015-04-08 | 安徽皖通邮电股份有限公司 | 一种isis协议lsp洪泛和同步方法 |
CN106411729B (zh) * | 2015-07-31 | 2020-04-28 | 中兴通讯股份有限公司 | 一种实现链路状态通告处理的方法及装置 |
CN112350936B (zh) * | 2019-08-08 | 2023-04-18 | 中兴通讯股份有限公司 | 一种内部网关协议泛洪优化方法及装置、存储介质 |
-
2005
- 2005-11-12 CN CNB2005101014125A patent/CN100499658C/zh not_active Expired - Fee Related
Also Published As
Publication number | Publication date |
---|---|
CN1859375A (zh) | 2006-11-08 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN101425961B (zh) | 实现链路状态数据库同步方法、路由器及线路板、主控板 | |
EP1716500B1 (en) | Apparatus, method,system and computer program product for communicating packets in a network environment | |
CN101170459B (zh) | 基于双向转发链路进行故障检测与链路恢复的方法 | |
CN100499658C (zh) | 一种避免冗余Flood的方法 | |
RU2550151C2 (ru) | Выбор маршрута в беспроводных сетях | |
CN101483592B (zh) | 一种抑制双向转发检测链路振荡的方法及装置 | |
CN1889579B (zh) | 提高路由信息协议路由收敛速度的方法及装置 | |
JP4385834B2 (ja) | ルーティング制御方法およびルータ装置 | |
CN100414942C (zh) | 业务转发路由的恢复方法 | |
KR20090030320A (ko) | 고장 방지 능력을 위해 다중 경로를 실행하기 위한 방법 및모바일 에드-호크 네트워크 | |
WO2020151641A1 (zh) | 数据传输方法、装置、发送节点及接收节点 | |
CN101163060B (zh) | Bfd会话建立方法、bfd会话建立装置及路由设备 | |
CN101753581B (zh) | 一种不间断数据转发方法及装置 | |
CN100579076C (zh) | 一种邻居关系建立方法和路由器 | |
KR20140017678A (ko) | 다중경로 오버레이 네트워크 및 그의 다중경로 관리 프로토콜 | |
CN104378249A (zh) | 数据链路的检测方法、装置、系统、控制器及网关 | |
CN103560947B (zh) | 一种避免中间系统邻居关系震荡的方法及装置 | |
CN102571149A (zh) | 一种电力线通信的中继方法和节点 | |
CN102215167B (zh) | 传输数据的方法、装置及其系统 | |
CN109347674B (zh) | 一种数据传输的方法、装置及电子设备 | |
CN104717144A (zh) | 一种基于网内缓存和逐跳确认的可靠组播方法 | |
CN110661550B (zh) | 一种hplc通信链路中转发报文的方法、装置、存储介质和电子设备 | |
CN102769571B (zh) | 一种平滑重启实现方法及设备 | |
WO2015096432A1 (zh) | 网络拓扑结构的控制方法和系统 | |
CN102271049B (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 | ||
CF01 | Termination of patent right due to non-payment of annual fee |
Granted publication date: 20090610 Termination date: 20191112 |