一种OSPF报文的流量控制方法及装置与流程

文档序号:11965540阅读:524来源:国知局
一种OSPF报文的流量控制方法及装置与流程
本发明属于网络技术领域,尤其涉及一种开放最短路径优先(OpenShortPathFirst,OSPF)报文的流量控制方法及装置。

背景技术:
OSPF是用于大型复杂网络的链路状态内部网关协议,其将网络分隔为不同的OSPF域,通常,把加入OSPF域的设备称为运行OSPF的设备。对于运行OSPF的设备来说,其需要提取OSPF协议报文的特征以识别OSPF报文,并将OSPF报文上送至软件协议栈进行处理,从而实现根据OSPF报文进行邻居的建立和指定路由器(DesignatedRouter,DR)的选举,计算出网络拓扑,生成OSPF路由。由于软件协议栈的处理能力有限,当需要处理的OSPF报文远远超过软件协议栈的处理能力时,必然会导致运行OSPF的设备的中央处理器(CentralProcessingUnit,CPU)过载,从而造成设备瘫痪。为了解决上述问题,在运行OSPF的设备中引入了CPU防护机制,通过对OSPF报文进行分类,对每种类型的OSPF报文均设置相应的流量阈值,若单位时间内某种类型的OSPF报文的流量超过了其对应的流量阈值,则直接对当前该类型的OSPF报文进行丢弃。然而,在现行方案中,每种类型的OSPF报文的流量阈值是固定的,且设定值相对较小,仅能满足最基本的业务或是适用于中小型网络,一旦由于拓扑变化导致业务量出现激增,就需要人为手动地放大流量阈值,而当报文数量回落并趋于稳定时,又需要手动地将流量阈值恢复为默认值,流量阈值无法根据网络的拓扑变化进行自适应调整,从而导致OSPF网络可能存在邻居失效,由于路由震荡导致的大量重传报文占用网络带宽,以及OSPF网络被攻击的风险。

技术实现要素:
本发明的目的在于提供一种OSPF报文的流量控制方法及装置,旨在解决现行的OSPF报文流量阈值无法根据网络的拓扑变化进行自适应调整的问题。本发明第一方面提供了一种OSPF报文的流量控制方法,所述方法包括:判断当前的报文收发状态是否满足预设的触发条件,所述触发条件包括到达预设时间间隔或者接收到预设类型的报文;当满足预设的触发条件时,获取所述触发条件对应类型的OSPF报文的报文收发参数;根据所述报文收发参数确定所述类型的OSPF报文的新的流量阈值;根据确定的所述新的流量阈值对所述类型的OSPF报文进行流量控制。在第一方面的第一种可能的实现方式中,所述触发条件包括到达预设时间间隔,所述触发条件对应类型的OSPF报文包括HELLO报文,所述获取所述触发条件对应类型的OSPF报文的报文收发参数包括:通过配置文件获取所述报文收发参数,所述报文收发参数包括OSPF设备的有效邻居的数量、每个所述有效邻居的HELLO报文间隔以及每个所述有效邻居的超时时间;所述根据所述报文收发参数确定所述类型的OSPF报文的新的流量阈值包括:将所述报文收发参数导入预设公式,生成将要接收到的HELLO报文流量;根据OSPF设备的配置情况调整所述HELLO报文流量,将调整后的所述HELLO报文流量确定为所述HELLO报文的所述新的流量阈值。结合第一方面的第一种可能的实现方式,在第二种可能的实现方式中,所述预设时间间隔的时间间隔数量级为秒。在第一方面的第三种可能的实现方式中,所述触发条件包括接收到数据库描述DD报文,所述触发条件对应类型的OSPF报文包括OSPF链路状态通告LSA报文,所述获取所述触发条件对应类型的OSPF报文的报文收发参数包括:获取报文收发参数,所述报文收发参数包括第一LSA报文数量和第二LSA报文数量,所述第一LSA报文数量为当前接收到的所述DD报文指示的LSA报文数量,所述第二LSA报文数量为之前接收到的所述DD报文指示的但还未接收到的LSA报文数量;所述根据所述报文收发参数确定所述类型的OSPF报文的新的流量阈值包括:将所述第一LSA报文数量与所述第二LSA报文数量相加,生成第三LSA报文数量;根据预设的LSA报文平均长度及所述第三LSA报文数量,确定将要接收到的LSA报文流量;根据OSPF设备的配置情况调整所述LSA报文流量,将调整后的所述LSA报文流量确定为所述LSA报文的所述新的流量阈值。结合第一方面或者第一方面的上述任一种可能的实现方式,在第四种可能的实现方式中,所述根据确定的所述新的流量阈值对所述类型的OSPF报文进行流量控制包括:获取所述OSPF报文的当前流量阈值;判断所述新的流量阈值与所述当前流量阈值的偏差是否超过了预设阈值,当所述新的流量阈值与所述当前流量阈值的偏差超过了所述预设阈值,则将所述新的流量阈值作为更新后的当前流量阈值;当所述新的流量阈值与所述当前流量阈值的偏差未超过所述预设阈值,则维持所述当前流量阈值;根据所述当前流量阈值对所述类型的OSPF报文进行流量控制。本发明第二方面提供了一种OSPF报文的流量控制装置,所述装置包括:判断单元,用于判断当前的报文收发状态是否满足预设的触发条件,所述触发条件包括到达预设时间间隔或者接收到预设类型的报文;获取单元,用于根据所述判断单元的判断结果获取所述触发条件对应类型的OSPF报文的报文收发参数;确定单元,用于接收所述获取单元发送的所述报文收发参数,根据所述报文收发参数确定所述类型的OSPF报文的新的流量阈值;流量控制单元,用于接收所述确定单元发送的所述新的流量阈值,根据确定的所述新的流量阈值对所述类型的OSPF报文进行流量控制。在第二方面的第一种可能的实现方式中,所述触发条件包括到达预设时间间隔,所述触发条件对应类型的OSPF报文包括HELLO报文,所述获取单元具体用于通过配置文件获取所述报文收发参数,所述报文收发参数包括OSPF设备的有效邻居的数量、每个所述有效邻居的HELLO报文间隔以及每个所述有效邻居的超时时间;所述确定单元具体用于:将所述报文收发参数导入预设公式,生成将要接收到的HELLO报文流量;以及根据OSPF设备的配置情况调整所述HELLO报文流量,将调整后的所述HELLO报文流量确定为所述HELLO报文的所述新的流量阈值。结合第二方面的第一种可能的实现方式,在第二种可能的实现方式中,所述预设时间间隔的时间间隔数量级为秒。在第二方面的第三种可能的实现方式中,所述触发条件包括接收到数据库描述DD报文,所述触发条件对应类型的OSPF报文包括OSPF链路状态通告LSA报文,所述获取单元具体用于:获取报文收发参数,所述报文收发参数包括第一LSA报文数量和第二LSA报文数量,所述第一LSA报文数量为当前接收到的所述DD报文指示的LSA报文数量,所述第二LSA报文数量为之前接收到的所述DD报文指示的但还未接收到的LSA报文数量;所述确定单元具体用于:将所述第一LSA报文数量与所述第二LSA报文数量相加,生成第三LSA报文数量;根据预设的LSA报文平均长度及所述第三LSA报文数量,确定将要接收到的LSA报文流量;以及根据OSPF设备的配置情况调整所述LSA报文流量,将调整后的所述LSA报文流量确定为所述LSA报文的所述新的流量阈值。结合第二方面或者第二方面的上述任一种可能的实现方式,在第四种可能的实现方式中,所述流量控制单元具体用于:获取所述类型的OSPF报文的当前流量阈值;判断所述新的流量阈值与所述当前流量阈值的偏差是否超过了预设阈值,当所述新的流量阈值与所述当前流量阈值的偏差超过了所述预设阈值,则将所述新的流量阈值作为更新后的当前流量阈值;当所述新的流量阈值与所述当前流量阈值的偏差未超过所述预设阈值,则维持所述当前流量阈值;以及根据所述当前流量阈值对所述类型的OSPF报文进行流量控制。本发明第三方面提供了一种OSPF报文的流量控制装置,所述装置包括处理器、存储器和总线:其中所述处理器和所述存储器通过所述总线进行相互间的通信;所述存储器,用于存储程序;所述处理器用于执行所述存储器中存储的程序,所述程序在被执行时,用于:判断当前的报文收发状态是否满足预设的触发条件,所述触发条件包括到达预设时间间隔或者接收到预设类型的报文;当满足预设的触发条件时,获取所述触发条件对应类型的OSPF报文的报文收发参数;根据所述报文收发参数确定所述类型的OSPF报文的新的流量阈值;根据确定的所述新的流量阈值对所述类型的OSPF报文进行流量控制。在第三方面的第一种可能的实现方式中,所述触发条件包括到达预设时间间隔,所述触发条件对应类型的OSPF报文包括HELLO报文,所述获取所述触发条件对应类型的OSPF报文的报文收发参数具体包括通过配置文件获取所述报文收发参数,所述报文收发参数包括OSPF设备的有效邻居的数量、每个所述有效邻居的HELLO报文间隔以及每个所述有效邻居的超时时间;所述根据所述报文收发参数确定所述类型的OSPF报文的新的流量阈值包括:将所述报文收发参数导入预设公式,生成将要接收到的HELLO报文流量;以及根据OSPF设备的配置情况调整所述HELLO报文流量,将调整后的所述HELLO报文流量确定为所述HELLO报文的所述新的流量阈值。结合第三方面的第一种可能的实现方式,在第二种可能的实现方式中,所述预设时间间隔的时间间隔数量级为秒。在第三方面的第三种可能的实现方式中,所述触发条件包括接收到数据库描述DD报文,所述触发条件对应类型的OSPF报文包括OSPF链路状态通告LSA报文,所述报文收发参数包括第一LSA报文数量和第二LSA报文数量,所述第一LSA报文数量为当前接收到的所述DD报文指示的LSA报文数量,所述第二LSA报文数量根据之前接收到的所述DD报文指示的但还未接收到的LSA报文数量;所述根据所述报文收发参数确定所述类型的OSPF报文的新的流量阈值包括:将所述第一LSA报文数量与所述第二LSA报文数量相加,生成第三LSA报文数量;根据预设的LSA报文平均长度及所述第三LSA报文数量,确定将要接收到的LSA报文流量;以及根据OSPF设备的配置情况调整所述LSA报文流量,将调整后的所述LSA报文流量确定为所述LSA报文的所述新的流量阈值。结合第三方面或者第三方面的上述任一种可能的实现方式,在第四种可能的实现方式中,所述根据确定的新的流量阈值对所述类型的OSPF报文进行流量控制包括:获取所述类型的OSPF报文的当前流量阈值;判断所述新的流量阈值与所述当前流量阈值的偏差是否超过了预设阈值,当所述新的流量阈值与所述当前流量阈值的偏差超过了所述预设阈值,则将所述新的流量阈值作为更新后的当前流量阈值;当所述新的流量阈值与所述当前流量阈值的偏差未超过所述预设阈值,则维持所述当前流量阈值;以及根据所述当前流量阈值对所述类型的OSPF报文进行流量控制。在本发明实施例中,通过实时地获取OSPF报文的报文收发参数,根据报文收发参数动态地调整OSPF报文的流量阈值,从而基于OSPF网络的拓扑变化情况实现OSPF报文流量阈值的自适应调整,有效地避免了OSPF网络中由于拓扑变化导致的邻居失效、协议震荡或者网络带宽浪费问题。附图说明图1是本发明实施例提供的OSPF报文的流量控制方法的实现流程图;图2是本发明实施例提供的HELLO报文的流量控制方法的实现流程图;图3是本发明实施例提供的LSA报文的流量控制方法的实现流程图;图4是本发明实施例提供的OSPF报文的流量控制方法中步骤S104的具体实现流程图;图5是本发明实施例提供的OSPF报文的流量控制装置的结构框图;图6是本发明实施例提供的OSPF报文的流量控制装置的硬件结构框图具体实施方式为了使本发明的目的、技术方案及优点更加清楚明白,以下结合附图及实施例,对本发明进行进一步详细说明。应当理解,此处所描述的具体实施例仅仅用以解释本发明,并不用于限定本发明。在本发明实施例中,通过实时地获取OSPF报文的报文收发参数,根据报文收发参数动态地调整OSPF报文的流量阈值,从而基于OSPF网络的拓扑变化情况实现OSPF报文流量阈值的自适应调整,有效地避免了OSPF网络中由于拓扑变化导致的邻居失效、协议震荡或者网络带宽浪费问题。在本实施例中,对OSPF报文进行流量控制的装置可以为加入OSPF域的OSPF设备,优选地,可以为加入OSPF域的交换机。图1示出了本发明实施例提供的OSPF报文的流量控制方法的实现流程,详述如下:在步骤S101中,判断当前的报文收发状态是否满足预设的触发条件,其中,触发条件包括到达预设时间间隔或者接收到预设类型的报文。在OSPF网络中,网络拓扑变化会带来OSPF报文数量的变化,且OSPF网络中的拓扑变化具有非持续性的特点,因此,在本实施例中,通过预设触发条件,根据监测到的当前的报文收发状态来判断是否需要触发对OSPF报文流量阈值的调整。由于拓扑变化随之带来的是OSPF邻居数量的变化以及链路状态信息的变化,其变化反映在报文上,则分别对应HELLO报文数量的变化以及链路状态通告(Link-StateAdvertisement,LSA)报文(包括但不限于链路状态请求报文、链路状态更新报文以及链路状态确认报文)数量的变化,因此,优选地,在本实施例中,根据这两种OSPF报文分别设置不同的触发条件,来分别对这两种OSPF报文的流量阈值进行动态调整。具体地,对于HELLO报文,其对应的触发条件包括到达预设时间间隔,对于LSA报文,其对应的触发条件包括接收到预设类型的报文,相关实现原理将在后续实施例中分别进行详细说明,在此不再赘述。在步骤S102中,当满足预设的触发条件时,获取所述触发条件对应类型的OSPF报文的报文收发参数。在本实施例中,在根据当前的报文收发状态监测出到达预设时间间隔或者接收到预设类型的报文时,则启动对应类型的OSPF报文的报文收发参数获取过程,实时地采集该OSPF报文当前的报文收发参数,以掌握当前的拓扑变化情况。在步骤S103中,根据所述报文收发参数确定该类型的OSPF报文的新的流量阈值。在步骤S102获取到触发条件对应类型的OSPF报文的报文收发参数之后,即可以根据报文收发参数来确定该类型的OSPF报文的新的流量阈值,从而根据OSPF网络的当前拓扑变化情况实现流量阈值的动态调整。在步骤S104中,根据确定的新的流量阈值对所述类型的OSPF报文进行流量控制。由此,在本实施例中,根据动态调整后的流量阈值对相应的OSPF报文进行流量控制,降低了流量阈值的人工干预程度,大大节省了OSPF网络的管理成本。同时,通过流量阈值与当前OSPF网络拓扑变化的精确匹配,有效降低了OSPF网络中由于拓扑变化导致的邻居失效、路由震荡以及网络带宽浪费等问题。在本发明实施例中,分别针对OSPF的HELLO报文以及LSA报文来进行流量阈值的调整,其中,HELLO报文用于建立和维护OSPF设备之间的邻居关系,而LSA报文则用于在OSPF邻居之间通告链路状态信息。图2示出了本发明实施例提供的HELLO报文流量控制的实现流程,详述如下:在步骤S201中,判断是否到达预设时间间隔。在本实施例中,可以通过设置定时器来提示是否到达预设时间间隔,具体地,根据OSPF设备的邻居数目变化情况,可以设置秒级的定时器,例如,每秒钟触发一次HELLO报文流量阈值调整,或者每几十秒触发一次HELLO报文流量阈值调整。在步骤S202中,当到达预设时间间隔时,通过配置文件获取HELLO报文的报文收发参数,其中,报文收发参数包括OSPF设备的有效邻居的数量、每个有效邻居的HELLO报文间隔以及每个有效邻居的超时时间。其中,OSPF设备指的是执行OSPF报文流量控制的OSPF设备。在本实施例中,当到达预设时间间隔时,获取HELLO报文的报文收发参数,HELLO报文的报文收发参数包括但不限于OSPF设备的有效邻居的数量、每个所述有效邻居的HELLO报文间隔以及每个所述有效邻居的超时时间。其中,有效邻居为对执行OSPF报文流量控制的OSPF设备来说处于INIT状态以上状态的、处于FULL状态或者非FULL状态的邻居OSPF设备,有效邻居的数量、每个有效邻居的HELLO报文间隔以及每个有效邻居的超时时间均可以通过查询OSPF设备中的实时配置文件获取,上述报文收发参数能够反映出OSPF设备即将接收到的HELLO报文的流量情况。在步骤S203中,将所述报文收发参数导入预设公式,生成将要接收到的HELLO报文流量。在本实施例中,预设公式在OSPF设备中预先进行配置,用于根据步骤S202中获取到的报文收发参数来计算出将要接收到的HELLO报文流量,例如,每秒需要处理的HELLO报文的流量。其中,预设公式可以由相关技术人员根据经验预先在OSPF设备中进行配置,经验公式的具体形式在此不用于限制本发明。在步骤S204中,根据OSPF设备的配置情况调整所述HELLO报文流量,将调整后的所述HELLO报文流量确定为HELLO报文的新的流量阈值。由于OSPF设备的实际处理能力,例如,OSPF设备CPU的运算能力等,决定了OSPF设备均有一个符合自身能力情况的基础阈值,因此,可以在获取到将要接收到的HELLO报文流量后,参考OSPF设备的配置情况来对步骤S203中获取到的HELLO报文流量进行调整,从而根据OSPF设备的实际情况确定出合适的HELLO报文的新的流量阈值。例如,当OSPF设备的基础阈值大大低于将要接收到的HELLO报文流量时,则相应地将HELLO报文的新的流量阈值确定在低于该HELLO报文流量的值上,避免出现确定的新的流量阈值过高,OSPF设备CPU负荷过重,无法处理的情况。在步骤S205中,根据确定的新的流量阈值对HELLO报文进行流量控制。图3示出了本发明实施例提供的LSA报文流量控制的实现流程,详述如下:在步骤S301中,判断是否接收到预设类型的报文。具体地,对于LSA报文来说,其触发条件可以包括接收到OSPF协议中的数据库描述(DataDescription,DD)报文,即当OSPF设备接收到DD报文,则表示OSPF设备中可能会产生LSA报文的流量,即表示OSPF设备在之后可能接收到邻居的LSA报文。因此,为了确认即将收到的LSA报文的流量大小,OSPF设备需要对接收到的DD报文进行分析,以从DD报文中提取出相应的报文收发参数。在步骤S302中,当接收到DD报文时,获取报文收发参数,其中,报文收发参数包括第一LSA报文数量和第二LSA报文数量,其中,第一LSA报文数量为当前接收到的DD报文指示的LSA报文的数量,第二LSA报文数量为之前接收到的DD报文指示的但还未接收到的LSA报文的数量。在OSPF设备接收到的DD报文的链路信息摘要中,指示了在将来一段时间内将要到达的LSA报文的数量,因此,可以根据当前接收到的DD报文,获取到该DD报文指示的第一LSA报文数量。同时,由于在实际的网络传输过程中,会出现OSPF设备当前已接收到的LSA报文的数量未达到OSPF设备之前接收到的DD报文指示的LSA报文数量的情况,即存在着OSPF设备预计接收但仍未接收到的LSA报文的数量,这部分OSPF设备预计接收但仍未接收到的LSA报文可能在之后的一段时间内到达OSPF设备,因此,还需要确定出这部分LSA报文数量,以更加准确地估计OSPF设备即将接收到的LSA报文的数量。在本实施例中,通过将之前接收到的DD报文中指示的LSA报文数量进行存储,并通过对当前已经接收到的LSA报文数量进行统计,即可以获取到之前接收到的DD报文中指示的但还未接收到的第二LSA报文数量。在步骤S303中,将第一LSA报文数量与第二LSA报文数量相加,生成第三LSA报文数量。其中,第三LSA报文数量即为OSPF设备即将接收到的LSA报文的数量。在步骤S304中,根据预设的LSA报文平均长度及第三LSA报文数量,确定将要接收到的LSA报文流量。每条LSA报文的长度能够反映出该条LSA报文的流量,因此,可以根据LSA报文的平均长度及LSA报文的数量来确定出将要产生的LSA报文流量。在本实施例中,由于每条LSA报文的长度是可以根据相关技术人员的经验来确定的,因此,通过相关技术人员的经验,可以在OSPF设备中预设LSA报文平均长度,通过该LSA报文平均长度与第三LSA报文数量的乘积,即可以确定出OSPF设备即将接收到的LSA报文流量。在步骤S305中,根据OSPF设备的配置情况调整所述LSA报文流量,将调整后的所述LSA报文流量确定为所述LSA报文的新的流量阈值。与步骤S204的实现原理相同,当获取到LSA报文流量后,由于OSPF设备的实际处理能力不同,参考OSPF设备的配置情况来对步骤S304中获取到的LSA报文流量进行调整,从而根据OSPF设备的实际情况确定出合适的LSA报文的新的流量阈值。例如,当OSPF设备对LSA报文的处理能力大大低于确定出的将要接收到的LSA报文流量时,则相应地将LSA报文的新的流量阈值确定在低于该LSA报文流量的值上,避免出现新的流量阈值过高,OSPF设备CPU负荷过重,无法处理的情况。在步骤S306中,根据确定的新的流量阈值对LSA报文进行流量控制。作为本发明的一个实施例,在对LSA报文的新的流量阈值进行确定的过程中,还可以根据LSA报文的流量特性,设置分钟级的定时器,每隔若干分钟统计OSPF设备当前预计接收但未接收到的第三LSA报文数量,若统计出的第三LSA报文数量远远小于当前的流量阈值时,则表示在此后的一段时间内,除LSA泛洪的情况外,基本不可能接收到大量的LSA报文,此时,即可以适当地降低LSA报文的流量阈值,对之前放大的流量阈值进行恢复。作为本明的一个实施例,图4示出了本发明实施例提供的OSPF报文的流量控制方法步骤S104的具体实现流程,详述如下:在步骤S401中,获取所述类型的OSPF报文的当前流量阈值。在步骤S402中,判断步骤103中确定的新的流量阈值与当前流量阈值的偏差是否超过了预设阈值;如果是,执行步骤S403,如果否,执行步骤S404。在步骤S403中,当确定的新的流量阈值与当前流量阈值的偏差超过了预设阈值,将当前流量阈值调整至确定的新的流量阈值。在步骤S404中,当确定的新的流量阈值与当前流量阈值的偏差未超过预设阈值,维持当前流量阈值。在步骤S405中,根据所述当前流量阈值对所述类型的OSPF报文进行流量控制。在本实施例中,通过判断确定出的新的流量阈值与OSPF报文的当前流量阈值的偏差是否超过了预设阈值,来进一步确定是否对当前的流量阈值进行调整。具体地,以LSA报文为例,若确定出的新的流量阈值与LSA报文的当前流量阈值的偏差超过了预设阈值,例如,偏差大于50Kb/s,则对当前流量阈值进行调整,否则,认为需要对当前流量阈值进行调整的调整幅度不大,则不对当前流量阈值进行调整,避免出现对流量阈值的过多不必要的调整导致的OSPF网络不稳定。在本发明实施例中,通过实时地获取OSPF报文的报文收发参数,根据报文收发参数动态地调整OSPF报文的流量阈值,从而基于OSPF网络的拓扑变化情况实现OSPF报文流量阈值的自适应调整,有效地避免了OSPF网络中由于拓扑变化导致的邻居失效、协议震荡或者网络带宽浪费问题。图5示出了本发明实施例提供的OSPF报文的流量控制装置的结构框图,该装置可以位于OSPF设备中,用于运行本发明图1至图4实施例所述的OSPF报文的流量控制方法。为了便于说明,仅示出了与本实施例相关的部分。参照图5,该装置包括:判断单元51,判断当前的报文收发状态是否满足预设的触发条件,其中,触发条件包括到达预设时间间隔或者接收到预设类型的报文。获取单元52,根据判断单元51的判断结果,获取触发条件对应类型的OSPF报文的报文收发参数。确定单元53,接收获取单元52发送的报文收发参数,根据报文收发参数确定所述类型的OSPF报文的新的流量阈值。流量控制单元54,接收确定单元53发送的新的流量阈值,根据确定的新的流量阈值对所述类型的OSPF报文进行流量控制。可选地,触发条件包括到达预设时间间隔,触发条件对应类型的OSPF报文包括HELLO报文,获取单元52具体用于通过配置文件获取报文收发参数,其中,报文收发参数包括OSPF设备的有效邻居的数量、每个有效邻居的HELLO报文间隔以及每个所述有效邻居的超时时间。在本实施例中,确定单元53具体用于:将报文收发参数导入预设公式,生成将要接收到的HELLO报文流量;以及根据OSPF设备的配置情况调整HELLO报文流量,将调整后的所述HELLO报文流量确定为HELLO报文的所述新的流量阈值。可选地,预设时间间隔的时间间隔数量级为秒。可选地,触发条件包括接收到DD报文,其中,触发条件对应类型的OSPF报文包括LSA报文,获取单元52具体用于:获取报文收发参数,所述报文收发参数包括第一LSA报文数量和第二LSA报文数量,其中,第一LSA报文数量为当前接收到的DD报文指示的LSA报文数量,第二LSA报文数量为之前接收到的DD报文指示的但还未接收到的LSA报文数量。在本实施例中,确定单元53具体用于:将第一LSA报文数量与第二LSA报文数量相加,生成第三LSA报文数量;根据预设的LSA报文平均长度及第三LSA报文数量,确定将要接收到的LSA报文流量;以及根据OSPF设备的配置情况调整LSA报文流量,将调整后的所述LSA报文流量确定为LSA报文的所述新的流量阈值。可选地,流量控制单元54具体用于:获取所述类型的OSPF报文的当前流量阈值。判断所述新的流量阈值与所述当前流量阈值的偏差是否超过了预设阈值,当所述新的流量阈值与所述当前流量阈值的偏差超过了所述预设阈值,则将所述新的流量阈值作为更新后的当前流量阈值;当所述新的流量阈值与所述当前流量阈值的偏差未超过所述预设阈值,则维持所述当前流量阈值;以及根据所述当前流量阈值对所述类型的OSPF报文进行流量控制。图6示出了本发明实施例提供的OSPF报文的流量控制装置的硬件结构框图,该装置可以位于OSPF设备中,用于运行本发明图1至图4实施例所述的OSPF报文的流量控制方法。为了便于说明,仅示出了与本实施例相关的部分。参照图6,该装置包括处理器61、存储器62和总线63,其中,处理器61和存储器62通过总线63进行相互间的通信,存储器92用于存储程序,处理器61用于执行存储器62中存储的程序,所述程序在被执行时,用于:判断当前的报文收发状态是否满足预设的触发条件,其中,触发条件包括到达预设时间间隔或者接收到预设类型的报文;当满足预设的触发条件时,获取触发条件对应类型的OSPF报文的报文收发参数;根据报文收发参数确定所述类型的OSPF报文的新的流量阈值;根据确定的新的流量阈值对所述类型的OSPF报文进行流量控制。可选地,触发条件包括到达预设时间间隔,其中,触发条件对应类型的OSPF报文包括HELLO报文,获取触发条件对应类型的OSPF报文的报文收发参数包括通过配置文件获取报文收发参数,其中,报文收发参数包括OSPF设备的有效邻居的数量、每个有效邻居的HELLO报文间隔以及每个有效邻居的超时时间;所述根据所述报文收发参数确定所述类型的OSPF报文的新的流量阈值包括:将所述报文收发参数导入预设公式,生成将要接收到的HELLO报文流量;以及根据OSPF设备的配置情况调整HELLO报文流量,将调整后的所述HELLO报文流量确定为HELLO报文的所述新的流量阈值。可选地,预设时间间隔的时间间隔数量级为秒。可选地,当触发条件包括接收到DD报文,触发条件对应类型的OSPF报文包括LSA报文,所述报文收发参数包括第一LSA报文数量和第二LSA报文数量,其中,第一LSA报文数量为当前接收到的DD报文指示的LSA报文数量,第二LSA报文数量根据之前接收到的DD报文指示的但还未接收到的LSA报文数量;所述根据所述报文收发参数确定所述类型的OSPF报文的新的流量阈值包括:将第一LSA报文数量与第二LSA报文数量相加,生成第三LSA报文数量;根据预设的LSA报文平均长度及第三LSA报文数量,确定将要接收到的LSA报文流量;以及根据OSPF设备的配置情况调整LSA报文流量,将调整后的所述LSA报文流量确定为LSA报文的所述新的流量阈值。可选地,所述根据确定的新的流量阈值对所述类型的OSPF报文进行流量控制包括:获取所述类型的OSPF报文的当前流量阈值;判断所述新的流量阈值与当前流量阈值的偏差是否超过了预设阈值,当所述新的流量阈值与所述当前流量阈值的偏差超过了所述预设阈值,则将所述新的流量阈值作为更新后的当前流量阈值;当所述新的流量阈值与所述当前流量阈值的偏差未超过所述预设阈值,则维持所述当前流量阈值;以及根据所述当前流量阈值对所述类型的OSPF报文进行流量控制。在本发明实施例中,通过实时地获取OSPF报文的报文收发参数,根据报文收发参数动态地调整OSPF报文的流量阈值,从而基于OSPF网络的拓扑变化情况实现OSPF报文流量阈值的自适应调整,有效地避免了OSPF网络中由于拓扑变化导致的邻居失效、协议震荡或者网络带宽浪费问题。以上所述仅为本发明的较佳实施例而已,并不用以限制本发明,凡在本发明的精神和原则之内所作的任何修改、等同替换和改进等,均应包含在本发明的保护范围之内。
当前第1页1 2 3 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1