通过ospf路由器执行的方法以及相应的ospf路由器的制造方法_3

文档序号:9474182阅读:来源:国知局
该接收的Hello报文中是否包含上述指示符,据此判断该其他OSPF接口是否支持加速模式。响应于所接收的Hello报文包含上述指示符,在上述OSPF接口与该其他OSPF接口之间建立邻居关系。由此,可以避免与不支持加速模式的OSPF接口建立邻居,从而避免工作模式不同导致的潜在问题。
[0045]进一步地,在包含上述指示符的基础上,在一个实施例中,第一 Hello报文还包括加速间隔的间隔值。具体地,可以将加速间隔的间隔信息以TLV的形式引入到Hello报文中。指示该间隔信息的字段可以称为AHI (加速Hello间隔)字段。图3B示例性示出指示间隔信息的AHI字段。与图3A类似地,AHI字段左上部分的数字示出间隔信息的类型,右上部分的数字示出间隔信息的字节长度,下面的部分示出具体的间隔值。如前所述,该间隔值可以根据需要设定为例如Is, 20ms, 50ms等等。
[0046]如本领域技术人员所知,许多OSPF设备支持OSPF扩展数据包,其中包含本地链路信令LLS(Link Local Signaling)数据块。该数据块可以附加到Hello报文中。因此,在一个实施例中,可以将以上指示加速模式的指示符和加速间隔的间隔值都包含在LLS数据块中,从而引入到Hello报文中。
[0047]响应于第一 Hello报文包含上述指示符以及加速间隔的间隔值,OSPF路由器可以基于该指示符以及该间隔值对上述OSPF接口的邻居关系进行协商。图4示出根据一个实施例的协商邻居关系的步骤。如图4所示,首先在步骤41,OSPF路由器接收来自其他OSPF接口的Hello报文。接着,在步骤42,判断所接收的Hello报文中是否包含指示加速模式的指示符。换而言之,步骤42可以判断发送该Hello报文的其他OSPF接口是否支持加速模式。如果所接收的Hello报文不包含上述指示符,那么可以确定,上述其他OSPF接口不支持加速模式,不应使得上述OSPF接口与其建立邻居关系,于是跳转至步骤45,丢弃该接收的Hello报文。如果所接收的Hello报文包含有上述指示符,也就是说,该其他OSPF接口也支持加速模式,那么前进至步骤43,继续判断所接收的Hello报文中是否包含与上述OSPF接口相同的间隔值。如果所接收的Hello报文中不包含间隔值,或者包含的间隔值与上述OSPF接口的不同,那么也可以认为,该其他OSPF接口的模式设置与上述OSPF接口不同,不应建立邻居关系。于是同样地跳转至步骤45,丢弃该接收的Hello报文,使得上述OSPF接口不与该其他OSPF接口建立邻居关系。如果所接收的Hello报文中包含与上述OSPF接口相同的间隔值,那么可以确定,该其他OSPF接口具有与上述OSPF接口一致的模式配置,于是前进至步骤44,使得上述OSPF接口与该其他OSPF接口建立邻居关系。通过以上方式,可以排除掉网络中与上述OSPF接口具有不同模式设置的OSPF接口,避免模式设置不同导致的潜在问题。
[0048]以上描述了对现有Hello报文进行扩展形成第一 Hello报文的实施方式。在此情况下,在常规模式中发送的第二 Hello报文可以与上述第一 Hello报文相同或者不同。
[0049]在一个实施例中,该第二 Hello报文仍然为常规Hello报文。也就是说,上述OSPF接口在加速模式中,以加速间隔发送扩展的Hello报文作为第一 Hello报文,从而协商工作模式设置,并实现DR和/或BDR的选举;而在常规模式中,仍然发送常规Hello报文来维持邻居关系。
[0050]在另一实施例中,第二 Hello报文与第一 Hello报文相同,也就是,同样地包括指示加速模式的指示符,可选地还包括加速间隔的间隔值。如此,OSPF路由器使得上述OSPF接口不必在不同模式下发送不同的Hello报文,仅需要调整Hello报文的发送间隔。
[0051]以上结合具体例子描述了通过OSPF路由器执行的方法。通过该方法,使得OSPF接口在加速模式和常规模式之间进行切换,从而在较少的额外CPU开销的情况下,加速网络中DR和/或BDR的选举,减小等待时间。
[0052]基于同一发明构思,本发明实施例还提供一种改进的OSPF路由器。图5示出根据一个实施例的OSPF路由器的示意框图。如前所述,该OSPF路由器具有一 OSPF接口。并且,如图5所示,该实施例中的OSPF路由器总体上示出为500,并包括:第一确定单元51,配置为确定需要在上述OSPF接口所连接的网络中选举指定路由器DR和备用指定路由器BDR中的至少一个;加速模式工作单元53,配置为使得上述OSPF接口进入加速模式,在该加速模式中,以加速间隔发送第一 Hello报文;第二确定单元55,配置为确定在所述网络中DR和BDR的选举已经完成;以及常规模式工作单元57,配置为使得上述OSPF接口进入常规模式,在该常规模式中,以常规间隔发送第二 Hello报文,其中所述常规间隔大于所述加速间隔。
[0053]在一个实施例中,上述第一确定单元51配置为,确定上述OSPF接口处于等待状
O
[0054]在一个实施例中,上述第一确定单元51配置为,响应于上述OSPF接口的邻居接口不具有对应的DR和/或BDR,则确定需要在上述OSPF接口所连接的网络中选举DR和BDR中的至少一个。
[0055]根据一个实施例中,上述第一确定单元51确定上述OSPF接口的邻居接口不具有对应的DR和/或BDR包括确定以下之一:来自所述邻居接口的He I 1报文中的DR和/或BDR字段为空;以及来自所述邻居接口的Hello报文中的DR和/或BDR字段的值与上述OSPF接口的相应字段的值不同。
[0056]在一个实施例中,所述第一 Hello报文包括指示加速模式的指示符。
[0057]在一个实施例中,所述OSPF路由器500还包括邻居协商单元(未示出),配置为基于所述指示符协商与上述OSPF接口的邻居关系,这包括,接收来自其他OSPF接口的Hello报文;判断所接收的Hello报文中是否包含所述指示符;以及响应于所接收的Hello报文包含所述指示符,使得上述OSPF接口与所述其他OSPF接口建立邻居关系。
[0058]在一个实施例中,所述第一 Hello报文还包括加速间隔的间隔值。
[0059]根据一个实施例,邻居协商单元配置为基于所述指示符和所述间隔值,协商与上述OSPF接口的邻居关系,这包括:接收来自其他OSPF接口的Hello报文;判断所接收的Hello报文中是否在相应字段包含所述指示符以及所述间隔值;以及响应于所接收的Hello报文包含所述指示符以及所述间隔值,使得上述OSPF接口与所述其他OSPF接口建立邻居关系。
[0060]在一个实施例中,第二确定单元55配置为:响应于等待时间过去,确定DR和BDR的选举已经完成,其中所述等待时间基于所述加速间隔而预先设定。
[0061]在一个实施例,所述第二确定单元55配置为:响应于已经发送预定数目的第一Hello报文,确定DR和BDR的选举已经完成。
[0062]在一个实施例中,所述第二 Hello报文与第一 Hello报文相同。
[0063]以上通过框图示出了 OSPF路由器500的功能模块。可以理解,这些功能模块可以通过多种方式来实施。
[0064]通过以上描述的本发明实施例的方法和OSPF路由器,可以使得OSPF路由器中的OSPF接口在需要选举DR和/或BDR时,工作于加速模式,在其中以加速间隔频繁发送Hel 1报文,使得网络快速进行DR和/或BDR的选举,进而加速网络路由的更新,减少等待时间和响应时间,提高系统性能和用户体验。此外,加速模式使得建立邻居所需的时间明显缩短,减少因为链路振荡引起的流量丢失。在DR和BDR的选举已经完成,仅需要维持邻居关系和邻接关系时,OSPF接口可工作于常规模式,在其中以常规间隔发送Hello报文,从而避免不必要的CPU开销和负担。以上实施例的方案是一种轻量级的方案,只需要在现有OSPF路由器的基础上进行一些扩展和修改就可实现。上述方案至少可适用于0SPFv2和0SPFv3。
[0065]本领域技术人员可以理解,本发明可以是系统、方法和/或计算机程序产品。计算机程序产品可以包括计算机可读存储介质,其上载有用于使处理器实现本发明的各个方面的计算机可读程序指令。
[0066]计算机可读存储介质可以是可以保持和存储由指令执行设备使用的指令的有形设备。计算机可读存储介质例如可以是一一但不限于一一电存储设备、磁存储设备、光存储设备、电磁存储设备、半导体存储设备或者上述的任意合适的组合。计算机可读存储介质的更具体的例子(非穷举的列表)包括:便携式计算机盘、硬盘、随机存取存储器(RAM)、只读存储器(ROM)、可擦式可编程只读存储器(EPR0M或闪存)、静态随机存取存储器(SRAM)、便携式压缩盘只读存储器(⑶-ROM)、数字多功能盘(DVD)、记忆棒、软盘、机械编码设备、例如其上存储有指令的打孔卡或凹槽内凸起结构、以及上述的任意合适的组合。这里所使用的计算机可读存储介质不被解释为瞬时信号本身,诸如无线电波或者其他自由传播的电磁波、通过波导或其他传输媒介传播的电磁波(例如,通过光纤电缆的光脉冲)、或者通过电线传输的电信号。
[0067]这里所描述的计算机可读程序指令可以从计算机可读存储介质下载到各个计算/处理设备,或者通过网络、例如因特网、局域网、广域网和/或无线网下载到外部计算机或外部存储设备。网络可以包括铜传输电缆、光纤传输、无线传输、路由器、防火墙、交换机、网关计算机和/或边缘服务器。每个计算/处理设备中的网络适配卡或者网络接口从网络接收计算机可读程序指令,并转发该计算机可读程序指令,以供存储在各个计算/处理设备中的计算机可读存储介质中。
[0068]用于执行本发明操作的计算机程序指令可以是汇编指令、指令集架构(ISA)指令、机器指令、机器相关指令、微代码、固件指令、状态设置数据、或者以一种或多种编程语言的任意组合编写的源代码或目标代码,所述编程语言包括面
当前第3页1 2 3 4 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1