一种快速建立邻居关系的方法及系统的制作方法

文档序号:7956166阅读:233来源:国知局
专利名称:一种快速建立邻居关系的方法及系统的制作方法
技术领域
本发明涉及网络通信技术领域,尤其涉及一种快速建立邻居关系的方法及系统。
背景技术
开放最短路径优先协议(OSPF)是一种典型的链路状态路由协议。采用OSPF的路由器彼此交换并保存整个网络的链路信息,从而掌握全网的拓扑结构,独立计算路由。
OSPF作为一种内部网关协议(Interior Gateway Protocol,IGP),用于在同一个自治域(AS)中的路由器之间发布路由信息。区别于距离矢量协议(RIP),OSPF具有支持大型网络、路由收敛快、占用网络资源少等优点,在目前应用的路由协议中占有相当重要的地位。
根据路由器所连接的物理网络不同,OSPF将网络划分为四种类型广播多路访问型(Broadcast MultiAccess,BMA)、非广播多路访问型(None Broadcast MultiAccess,NBMA)、点到点型(Point-to-Point,P2P)、点到多点型(Point-to-MultiPoint,P2MP)。
在多路访问网络上可能存在多个路由器,为了避免路由器之间建立完全相邻关系而引起的大量开销,OSPF要求在区域中选举一个指定路由器(DR)。每个路由器都与之建立完全相邻关系。DR负责收集所有的链路状态信息,并发布给其他路由器。选举DR的同时也选举出一个备份指定路由器(BDR),在DR失效的时候,BDR担负起DR的职责。
点对点型网络不需要DR,因为只存在两个节点,彼此间完全相邻。OSPF协议由Hello协议、交换协议、扩散协议组成。
当路由器开启一个端口的OSPF路由时,将会从这个端口发出一个Hello报文,以后它也将以一定的间隔周期性地发送Hello报文。OSPF路由器用Hello报文来初始化新的相邻关系以及确认相邻的路由器邻居之间的通信状态。
OSPF Hello报文以固定间隔发送,对于广播(Broadcast)接口和P2P以及P2MP接口缺省的配置是10秒,对于NBMA接口缺省值是30秒。Hello报文的发送频率决定了邻居建立的快慢,如果想让邻居以最快的速度建立,那么就需要接口以最快频率的发送Hello报文,则将有效的提高网络的收敛时间。但是考虑到实际情况,路由器性能有高有低,链路速率有快有慢,简单地把Hello报文发送频率调到很高的一个水平以达到邻居快速建立的目的是不恰当的。最好能够在邻居关系建立前以最快的频率发送Hello报文,而当邻居关系建立后以正常的频率发送Hello报文。
如图1所示,两台路由器都通过if0接口直连。假设if0接口是点到点类型,并且假设Hello发送的间隔为10秒一个。如果路由器A(RTA)的Hello定时器先超时,那么RTA会给路由器B(RTB)发送一个Hello报文,等RTB的Hello定时器超时,RTB会给RTA发送一个Hello报文。然后RTA上的邻居状态变为双向(2-Way),以后就走RFC2328规定的流程直到邻居状态为满(Full)为止,其中Full状态表示已经和邻居完成链路状态数据库的交换,邻居状态只有在Full时才会在路由计算中被看作是可用的链路。这里RTB收到RTA的Hello报文后需要等待的时间长度在0秒到10秒才会发送建立双向关系的Hello报文,这段时间长度依赖Hello定时器的间隔。如果把Hello定时器的间隔提高,那么就可以提高收敛速度。另外当接口的状态发生变化时,如果能尽快通知其它邻居,那么对多路访问网络上能极大地减少指定路由器选举前的等待时间。DR选举的速度快了网络收敛速度也会提高。
如果需要邻居变到双向,时间以毫秒来计算的话,Hello报文的发送频率至少是每秒几十个。这种方法必须永久地提高Hello报文发送的速度,也就是说不管邻居是不是已经建立,Hello发送的频率不会改变。要使用这种方法达到非常快速的收敛速度,需要高性能的路由器,这势必大大影响实际工作的可行性。

发明内容
鉴于上述现有技术所存在的问题,本发明的目的是提供一种快速建立邻居关系的方法及系统,从而可以在无需减小Hello定时器时间间隔的情况下实现邻居关系的快速建立。
本发明的目的是通过以下技术方案实现的一种快速建立邻居关系的方法,包括网络设备在邻居建立过程中接收握手报文,作为发送设备的网络设备根据邻接设备状态以及自身接口状态决定是否发送一条握手报文以建立邻居关系。
所述网络中设备接收到来自于邻接设备的握手报文后读取报文获得所述邻接设备的状态信息,并将握手报文立即发送至处于单向状态的设备,不向处于双向状态的设备发送握手报文。
当接口状态变为指定路由器,备份指定路由器或非指定路由器时,设备自动向网络中其它设备发送握手报文。
根据设备状态发送握手报文的耗时小于按照预设置的固定时间间隔发送握手报文的耗时。
在邻居双向关系建立后或者接口状态不再变化后停止根据设备状态发送握手报文,而是通过设置握手报文发送时间间隔来控制握手报文的发送。
一种快速建立邻居关系的系统,包括邻居状态判决模块,用于判断邻居设备处于单向状态或是双向状态;报文发送模块,当邻居设备状态为单向,向该设备回复握手报文;当邻居状态为双向,不回复握手报文。
所述系统还包括接口状态判决模块,用于判断设备接口状态是否发生变化;路由器选举结束后,若接口状态变为指定路由器、备份指定路由器或非指定路由器后,立即发送一个多播握手报文以告知其它邻居其目前的接口状态;若接口状态为初始状态不可用状态则不发送握手报文。由上述本发明提供的技术方案可以看出,本发明在具体实现过程中,针对现有的通信网络中的设备无需进行大量改进,即本发明的实现对路由器的性能没有特别要求,使用现有设备即可,因而,不会增加相应的实现成本;而且,本发明可以快速的实现邻居关系建立,从而提高网络效率;另外,本发明的实现使得Hello报文的发送频率在总体上并未上升,但却大大减少了网络工作负担。


图1所示为网络拓扑图;图2所示为本发明技术方案流程图;图3所示为Hello报文发送示意图;图4所示为本发明所述系统的结构示意图。
具体实施例方式
本发明的核心是通过新的握手(Hello)报文处理方法,根据邻居状态或者接口状态决定是否发送Hello报文,即当网络路由器接收到Hello报文后判断邻居所处的状态,根据邻居的状态决定是要立即向该邻居发送Hello报文,还是等待Hello定时器超时后在再向邻居发送Hello报文,判断接口状态发生变化来决定是否向邻居发送Hello报文。本发明通过使用该方法有效地提高了OSPF邻居建立速度。
具体一点讲,本发明是同时通过邻居状态判决触发发送控制方式、接口状态判决触发发送控制方式和Hello定时器超时触发发送控制方式控制路由器向邻居发送Hello报文。
本发明同时使用上述三种发送控制方式控制路由器向邻居发送Hello报文,且这三种发送控制方式之间为并列关系,其中任何一个发送控制方式满足条件后均可以使路由器向网络中的邻居发送Hello报文。
所述的Hello定时器超时触发是指为路由器设置一个Hello报文定时器,通过该时间定时器控制路由器向邻居发送Hello报文。
在Hello定时器中预先设置好一个发送时间间隔,当路由器发送上一个Hello报文的时间超过该设置好的时间间隔,则路由器在Hello定时器的触发下向邻居发送一条Hello报文。
所述的接口状态判决触发是指路由器接口状态发生变化后,即从其它状态变为指定路由器(DR),从其它状态变为备份指定路由器(BDR),从其它状态变为非指定路由器(DROther)时,立即向这个接口的邻居发送Hello报文。
在多点访问网络上只有DR和BDR才能和DROther建立Full的邻居关系,而DROther之间仅仅建立2-way的邻居关系。接口状态的改变会影响到邻居状态的改变。如果以最快的速度去通知邻居接口状态发生了变化,这将提高DR,BDR选举的过程。
所述的邻居状态判决触发是指路由器一直接收来自于网络中邻居的Hello报文,根据从接收到的邻居报文中获取的邻居状态信息判断是否向邻居发送Hello报文。
路由器在通信网络中一直都在接收、发送消息,邻居状态判决触发发送能够就是当路由器接收到网络中邻居设备发送的Hello报文后读取Hello报文中的状态信息,状态信息中显示了邻居设备目前所处的状态。
邻居设备的状态分为单向状态(1-way)和双向状态(2-way)两种情况,在邻居状态判决触发发送中,处于单向状态的路由器在接收到来自于邻居路由器的Hello报文后立即向该邻居设备回复一个Hello报文。
在这个Hello报文接收、发送的过程中,网络中的路由器向所有的路由器发送Hello报文,路由器读取接收到的Hello报文,获取邻居路由器的有用信息得到邻居路由器的状态。
当邻居路由器的状态为单向时,根据邻居状态判决触发发送,路由器立即向邻居路由器回复一条Hello报文,邻居路由器接收该Hello报文回复。
经过上述两个路由器之间的Hello报文发送、接收、回复以及再接收的过程,每个路由器都完成了一次发送报文和一次接收报文的操作。这样,一旦有处于单向状态的邻居路由器向路由器发送Hello报文,则路由器可以在极短的时间内进入双向状态。
由于在邻居状态判决触发发送中能够触发路由器回复Hello报文的邻居路由器必须是双向状态,所以,相互联系的两个路由器均已处于双向状态。根据开放最短路径优先(OSPF)协议,两个处于双向状态的路由器建立邻居关系,进行最短路径树(SPF)计算,实现路由快速收敛。
下面将结合附图对本发明所述的Hello报文快速回传方法作详细说明。
如图2所示,本发明同时使用两种发送控制方式控制路由器向邻居发送Hello报文。
所述的两种发送控制方式分别为邻居状态判决触发发送和Hello定时器超时触发发送。
这三种发送控制方式之间为并列关系,可以相对独立地进行工作,其中任何一个发送控制方式满足条件后均可以使路由器向网络中的邻居发送Hello报文。
接口状态判决触发发送的工作流程由图2中的步骤4和步骤5所示。
Hello定时器超时触发发送的工作流程由图2中的步骤1和步骤5所示。
步骤1,在路由器A中设置一个Hello报文定时器,用于控制路由器A自动向网络中其它设备发送Hello报文的时间间隔;为定时器设置Hello报文时间间隔时需要考虑到路由器实际性能,根据路由器所能承受的情况进行设置;当路由器A的空闲时间距上一次自动发送Hello报文的时间达到所设定的时间间隔时,Hello定时器超时并触发路由器A,执行步骤5,步骤5、路由器A向网络中其他设备发送Hello报文。
邻居状态判决触发发送的工作流程由图2中的步骤2、步骤3和步骤5所示。邻居状态判决触发发送的工作流程如下步骤2,处于工作状态的路由器A(RTA)可以接收所有网络中其他设备向其发送的报文;当路由器A接收到邻居路由器B(RTB)发送的Hello报文时,路由器A读取所接收到的报文中的信息,确定报文的类型。
步骤3、当路由器B向路由器A发送的报文为Hello报文时,路由器A继续读取Hello报文中的信息,确认路由器B当前所处的状态,并根据路由器B的状态情况进行以下操作当路由器A的邻居路由器B处于双向状态(2-way)时,路由器B不被触发;当路由器A的邻居路由器B处于单向状态(1-way)时,路由器A被立即出发,执行步骤5。
步骤5、当邻居状态判决触发发送触发路由器A后,路由器A立即向路由器B发送Hello报文,路由器B接收该报文。
接口状态判决触发发送的工作流程由图2中的步骤4和步骤5所示。接口状态判决触发发送的工作流程如下
步骤4、在路由器A中设置一个接口状态检测器,用于检测路由器A的接口状态是否发生变化,以便判决是否进行触发;当状态检测器检测到路由器的接口发生变化时自动触发路由器A,执行步骤5;步骤5、当接口状态变化触发路由器后,路由器A向网络中其他设备发送Hello报文。
执行上述各步骤后,无论路由器A和路由器B在执行上述步骤前处于何种状态,在执行上述步骤的过程中,两个路由器均分别执行了一次发送Hello报文和接收Hello报文的操作,因此,路由器A和路由器B均进入双向状态。
根据OSPF协议的规定,网络中处于双向状态的设备会按照规定的流程建立邻接关系,进行SPF计算,实现路由的快速收敛。
在Hello定时器超时触发和邻居状态判决触发的同时作用下,网络中相邻设备之间能够实现在邻居关系建立以前以高频率回复Hello报文,在邻居关系建立后以设备所能承受的正常频率发送、回复Hello报文。其中,邻居关系建立前以高频率回复Hello报文的功能由邻居状态判决触发发送实现,而邻居关系建立后的正常频率发送、回复Hello报文是由Hello定时器超时触发发送实现。
以下结合图3介绍网络中相邻设备同时使用两种发送控制方式建立邻居关系的Hello报文发送、回复情况。
如图3所示,本实施例中相邻的设备为路由器A和路由器B,图中每条带箭头的线段表示发送一个Hello报文,竖线表示时间。这里,两个路由器Hello定时器超时触发发送中Hello报文的发送间隔使用默认值10秒。
在本发明中,由于邻居状态判决触发发送必须在收到来自于其他设备的Hello报文后才能触发并回复一条Hello报文,当没有接收到Hello报文时,则该发送控制方式无法发送Hello报文。因此在网络中两个设备建立邻居关系前,Hello定时器超时触发发送首先作用。
路由器B在Hello定时器超时触发发送的作用下向路由器A发送一条Hello报文;路由器A接收到来自路由器B的Hello报文后在邻居状态判决触发发送的控制下读取Hello报文中的信息,获得路由器B的状态信息;当路由器B处于双向(2-way)状态,路由器A不向路由器B发送Hello报文;当路由器B处于单向(1-way)状态,路由器A立即向路由器B发送Hello报文,路由器B接收到该Hello报文后由原来的单向状态进入双向状态,路由器A因为经过了接收Hello报文和发送Hello报文的过程,也进入到双向状态;由于路由器A检测到路由器B处于单向状态后立即向其发送Hello报文,所以路由器A和路由器B变成双向状态所经历的时间很短,且两个路由器的耗时基本相同,本实施例中将这个很短的时间用 表示,将Hello报文的发送间隔设置为10秒。
均处于双向状态的两个路由器根据OSPF协议规定的流程建立邻接关系,进行SPF计算,达到路由的快速收敛。
当两台路由器上邻居状态都变为双向,路由器间建立起邻接关系后,路由器重新接受Hello定时器超时触发发送的控制,Hello报文的发送间隔会自动恢复到默认值10秒。以10秒为间隔处理一个Hello报文不会对路由器的性能造成影响。
如图4所示,本发明包含有邻居状态判决模块,报文发送模块以及握手报文定时器超时触发模块。
一种快速建立邻居关系的系统,包括邻居状态判决模块,
用于判断邻居设备处于单向状态或是双向状态;报文发送模块,当邻居设备状态为单向,向该设备回复握手报文,当邻居状态为双向,不回复握手报文。
接口状态判决模块,用于判断设备接口状态是否发生变化。
所述系统还包括路由器选举结束后,若接口状态变为指定路由器、备份指定路由器或非指定路由器后,立即发送一个多播握手报文以告知其它邻居其目前的接口状态;若接口状态为初始状态不可用Down状态则不发送握手报文。所述接口为初始状态表明接口不能收发报文,不能和其它路由器建立邻居关系。
综上所述,通过的综合使用上述三种触发发送控制方式,本发明实现了快速建立邻接关系,同时邻居建立后Hello报文的发送自动恢复到正常状态,在不影响路由器性能的情况下极大地提高了OSPF的收敛速度。
以上所述,仅为本发明较佳的具体实施方式
,但本发明的保护范围并不局限于此,任何熟悉本技术领域的技术人员在本发明揭露的技术范围内,可轻易想到的变化或替换,都应涵盖在本发明的保护范围之内。因此,本发明的保护范围应该以权利要求的保护范围为准。
权利要求
1.一种快速建立邻居关系的方法,其特征在于,包括网络设备在邻居建立过程中接收握手报文,作为发送设备的网络设备根据邻接设备状态以及自身接口状态决定是否发送一条握手报文以建立邻居关系。
2.根据权利要求1所述的一种快速建立邻居关系的方法,其特征在于,网络中设备接收到来自于邻接设备的握手报文后读取报文获得所述邻接设备的状态信息,并将握手报文立即发送至处于单向状态的设备,不向处于双向状态的设备发送握手报文。
3.根据权利要求1所述的一种快速建立邻居关系的方法,其特征在于,当接口状态变为指定路由器,备份指定路由器或非指定路由器时,设备自动向网络中其它设备发送握手报文。
4.根据权利要去2或3所述的一种快速建立邻居关系的方法,其特征在于,根据设备状态发送握手报文的耗时小于按照预设置的固定时间间隔发送握手报文的耗时。
5.根据权利要求1所述的一种快速建立邻居关系的方法,其特征在于,在邻居双向关系建立后或者接口状态不再变化后停止根据设备状态发送握手报文,而是通过设置握手报文发送时间间隔来控制握手报文的发送。
6.一种快速建立邻居关系的系统,其特征在于,包括邻居状态判决模块,用于判断邻居设备处于单向状态或是双向状态;报文发送模块,当邻居设备状态为单向,向该设备回复握手报文;当邻居状态为双向,不回复握手报文。
7.根据权利要求6所述的一种快速建立邻居关系的系统,其特征在于,所述系统还包括接口状态判决模块,用于判断设备接口状态是否发生变化;路由器选举结束后,若接口状态变为指定路由器、备份指定路由器或非指定路由器后,立即发送一个多播握手报文以告知其它邻居其目前的接口状态;若接口状态为初始状态不可用状态则不发送握手报文。
全文摘要
本发明提供了一种快速建立邻居关系的方法及系统。该方法包括网络设备在邻居建立过程中接收握手报文,作为发送设备的网络设备根据邻接设备状态决定是否回复一条握手报文以建立邻居关系。因此,本发明对路由器的性能没有特别要求,使用现有设备即可实现,不增加成本;实现快速的邻居关系建立,提供网络效率;Hello报文的发送频率在总体上并未上升,减少网络工作负担。
文档编号H04L29/06GK1866962SQ200610057408
公开日2006年11月22日 申请日期2006年3月13日 优先权日2006年3月13日
发明者杨锋, 闫刚 申请人:华为技术有限公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1