发明内容
本发明的目的在于提供一种报文转发方法和设备,以提高硬件转发表项的资源利用率,并提高报文转发效率,为此,本发明采用如下技术方案:
一种报文转发方法,包括:
中央处理单元CPU接收专用集成电路ASIC转发的报文,并根据所述报文对应的路由和地址解析协议ARP表项对该报文进行转发;其中,所述报文是所述ASIC未查询到所接收到的报文对应的硬件转发表项时,转发给所述CPU的;
所述CPU统计第一预设时间内所述报文对应的网段的流量,并判断该流量是否超过第一流量阈值;
若判断为是,所述CPU将所述网段的路由和ARP表项下刷到硬件转发表项,以使所述ASIC根据所述硬件转发表项对相应的报文进行转发;
若判断为否,所述CPU拒绝将所述网段的路由和ARP表项下刷到硬件转发表项。
其中,所述CPU根据所述报文对应路由和ARP表项对该报文进行转发,具体为:
所述CPU根据所述报文查询对应的路由和ARP表项,若查询到对应的路由和ARP表项,则根据该路由和ARP表项对该报文进行转发;若未查询到对应的路由和ARP表项,则生成所述报文对应的路由和ARP表项,并根据该路由和ARP表项对该报文进行转发。
其中,该方法还包括:
所述CPU周期性获取所述ASIC统计的第二预设时间内的网段的流量,并当该流量小于第二流量阈值时,删除该网段对应的硬件转发表项。
其中,所述第一预设时间等于所述第二预设时间;或/和,所述第一流量阈值等于所述第二流量阈值。
一种网络设备,包括中央处理单元CPU和专用集成电路ASIC,所述CPU包括:
接收模块,用于接收所述ASIC转发的报文;其中,所述报文是所述ASIC未查询到所接收到的报文对应的硬件转发表项时,转发给所述CPU的;
转发模块,用于根据所述接收模块接收到的报文对应的路由和地址解析协议ARP表项对该报文进行转发;
统计模块,用于统计第一预设时间内所述转发模块转发的报文对应的网段的流量;
判断模块,用于判断所述统计模块统计的流量是否超过第一流量阈值;
处理模块,用于当所述判断模块判断为是时,将所述网段的路由和ARP表项下刷到硬件转发表项,以使所述ASIC根据所述硬件转发表项对相应的报文进行转发;当所述判断模块判断为否时,拒绝将所述网段的路由和ARP表项下刷到硬件转发表项。
其中,所述转发模块具体用于,根据所述报文查询对应的路由和ARP表项,若查询到对应的路由和ARP表项,则根据该路由和ARP表项对该报文进行转发;若未查询到对应的路由和ARP表项,则生成所述报文对应的路由和ARP表项,并根据该路由和ARP表项对该报文进行转发。
其中,所述CPU还包括:
获取模块,用于获取所述ASIC统计的第二预设时间内的网段的流量;
所述判断模块还用于,判断所述获取模块获取到的网段的流量是否超过第二流量阈值;
所述处理模块还用于,当所述判断模块的判断结果为所述获取模块获取到的网段的流量未超过第二流量阈值时,删除该网段对应的硬件转发表项
其中,所述第一预设时间等于所述第二预设时间;或/和,所述第一流量阈值等于所述第二流量阈值。
本发明上述实施例中,当CPU接收到ASIC转发的报文时,一方面根据该报文对应的路由和ARP表项对该报文进行转发,另一方面,CPU还可以统计预设时间内该报文对应的网段的流量,并判断该流量是否超过流量阈值;若判断为是,CPU将该网段的路由和ARP表项下刷到硬件转发表项,以使ASIC根据该硬件转发表项对相应的报文进行转发;若判断为否,CPU拒绝将该网段的路由和ARP表项下刷到硬件转发表项,该网段的后续报文仍通过CPU转发,提高了硬件转发表项的资源利用率,并提高了报文转发效率。
具体实施方式
针对上述现有技术中存在的问题,本发明实施例提供了一种报文转发的技术方案。在该技术方案中,当CPU接收到ASIC转发的报文时,一方面根据该报文对应的路由和ARP表项对该报文进行转发,另一方面,CPU还可以统计预设时间内该报文对应的网段的流量,并判断该流量是否超过流量阈值;若判断为是,CPU将该网段的路由和ARP表项下刷到硬件转发表项,以使ASIC根据该硬件转发表项对相应的报文进行转发;若判断为否,CPU拒绝将该网段的路由和ARP表项下刷到硬件转发表项(即CPU不将该网段的路由和ARP表项下刷到硬件转发表项),该网段的后续报文仍通过CPU转发。其中,本发明实施例中报文转发的示意图可以如图2所示。
通过该技术方案,可以根据流量的动态变化,将流量大的网段的路由和ARP表项下刷到硬件转发表项,由ASIC根据该硬件转发表项对该网段的报文进行转发;对于流量较小的网段,不将该网段的路由和ARP表项下刷到硬件转发表项,仍由CPU对该网段的报文进行转发,提高了硬件转发表项的资源利用率,并提高了报文转发效率。
下面将结合本发明的实施例中的附图,对本发明的实施例中的技术方案进行清楚、完整的描述,显然,下面所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有付出创造性劳动前提下所获得的所有其他实施例,都属于本发明的实施例保护的范围。
如图3所示,为本发明实施例提供的一种报文转发方法的流程示意图,可以包括以下步骤:
步骤301、CPU接收ASIC转发的报文,并根据该报文对应的路由和ARP表项对该报文进行转发。
具体的,当ASIC接收到报文时,可以根据该报文查询硬件转发表项,若未查询到该报文对应的硬件转发表项,则将该报文转发CPU;若查询到该报文对应的硬件转发表项,则根据该硬件转发表项对报文进行转发。
CPU接收到ASIC转发的报文后,可以根据该报文查询路由和ARP表项,若未查询到该报文对应的路由和ARP表项,则根据该报文生成对应的路由和ARP表项,并根据该路由和ARP表项对该报文进行转发;若查询到该报文对应的路由和ARP表项,则根据该路由和ARP表项对该报文进行转发。
步骤302、CPU统计预设时间内该报文对应的网段的流量,并判断该流量是否超过流量阈值。若判断为是,则转至步骤303;否则,转至步骤304。
具体的,在本发明实施例中,为了提高硬件转发表项的资源利用率,并提高报文转发效率,可以将流量高于一定阈值(第一流量阈值)的网段的路由和ARP表项下刷到硬件转发表项,由ASIC根据该硬件转发表项对该网段的流量进行转发,而不讲流量小于该一定阈值的网段的路由和ARP表项下刷到硬件转发表项,仍然由CPU对该网段的报文进行转发。
为此,在本发明实施例中,CPU在进行报文转发时,还可以统计预设时间内(第一预设时间)该报文对应的网段的流量。例如,对于目的IP为10.0.01、10.0.02、10.0.0.3…的报文的流量均可以统计为网段10.0.0.0的流量。CPU可以通过判断第一预设时间内该网段的流量是否超过预设的第一流量阈值,来确定是否需要将该网段的路由和ARP表项下刷到硬件转发表项,即是否需要通过ASIC来转发该网段的流量。
其中,该预设时间和预设流量阈值均可以根据具体应用场景进行配置,例如,第一预设时间可以设置为5S,第一流量阈值可以设置为20M,且该预设时间和预设流量阈值均可以在应用过程中根据实际情况进行调整,其具体实现在此不再赘述。
步骤303、CPU将该网段的路由和ARP表项下刷到硬件转发表项,以使ASIC根据该硬件转发表项对相应报文进行转发。
具体的,为了提高报文的转发效率,在本发明实施例中,可以通过ASIC对流量较大的(即超过预设流量阈值)的网段的报文进行转发。为此,当CPU确定第一预设时间内网段的流量大于第一流量阈值时,可以将该网段的路由和ARP表项下刷到硬件转发表项。在后续流程中,当ASIC接收到报文时,可以根据接收到的报文查询硬件转发表项,并当查询到对应的硬件转发表项时,根据该对应的硬件转发表项对该报文进行转发。
步骤304、CPU拒绝将该网段的路由和ARP表项下刷到硬件转发表项。
具体的,为了提高硬件转发表项的资源利用率,在本发明实施例中,对于流量较小的(即不超过预设流量阈值)的网段,CPU可以不将该网段的路由和ARP表项下刷到硬件转发表项,以防止该流量较小的网段的路由和ARP表项占用硬件转发表项资源,而导致后续流量较大的网段的路由和ARP表项无法下刷到硬件转发表项。为此,当CPU确定第一预设时间内网段的流量小于第一流量阈值时,可以不将该网段的路由和ARP表项下刷到硬件转发表项。在后续流程中,当ASIC接收到该网段的报文时,查询不到对应的硬件转发表项,将该报文上送CPU,由CPU根据对应的硬件转发表项对该报文进行转发。
进一步的,在本发明实施例中,为了进一步提高硬件转发表项的资源利用率,CPU还可以从ASIC中获取ASIC所统计的预设时间内(第二预设时间)的网段的流量,并当该流量小于预设流量阈值(第二流量阈值)时,删除该网段对应的硬件转发表项。后续流程中,当ASIC再次接收到该网段的报文时,查询不到对应的硬件转发表项,将报文上送CPU进行报文转发。优选地,ASIC统计网段流量的统计周期(即第二预设时间)与CPU统计网段流量的统计周期(即第一预设时间)相同,且第一流量阈值与第二流量阈值相同。
为了使本领域技术人员更好地理解本发明实施例提供的技术方案,下面结合具体的应用场景对本发明实施例提供的技术方案进行更加详细的描述。
在该实施例中,CPU和ASIC中配置的缺省统计周期为5S,第一流量阈值和第二流量阈值均为20M。网络设备上电启动,此时,ASIC中硬件转发表项为空。
当网络设备接收到目的IP地址为10.0.0.1,以及目的IP地址为20.0.0.1的报文时,ASIC查询不到对应的硬件转发表项,ASIC将该报文上送CPU;CPU接收到该报文后,对该报文进行IP地址学习,生成对应的路由和ARP表项,并根据该路由和ARP表项对该报文进行转发。同时,CPU还需要统计该报文对应的网段(10.0.0.0、以及20.0.0.0)的流量。
假设CPU统计到5S内网段10.0.0.0的流量(包括目的IP地址为10.0.0.1、10.0.0.2、10.0.0.3…的报文的流量)为25M,即该网段在预设时间内的流量超过第一流量阈值,CPU将该网段的路由和ARP表项(对应10.0.0.1、10.0.0.2、10.0.0.3…的路由和ARP表项)下刷到硬件转发表项。当ASIC再次接收到目的IP地址为10.0.0.1、10.0.0.2、10.0.0.3的报文时,可以查询到对应的硬件转发表项,ASIC根据查询到的硬件转发表项对相应报文进行转发。其中,ASIC也可以统计自身转发的报文对应的网段的流量。
假设CPU统计到5S内网段20.0.0.0的流量(包括目的IP地址为20.0.0.1、20.0.0.2、20.0.0.3…的报文的流量)为5M,即该网段在预设时间内的流量未超过第一流量阈值,CPU不将该网段的路由和ARP表项(对应20.0.0.1、20.0.0.2、20.0.0.3…的路由和ARP表项)下刷到硬件转发表项。当ASIC再次接收到目的IP地址为20.0.0.1、20.0.0.2、20.0.0.3的报文时,查询不到对应的硬件转发表项,ASIC将该报文上送CPU,由CPU进行报文转发。
CPU将网段10.0.0.0的路由和ARP表项下刷到硬件转发表项后,可以周期性地获取ASIC统计的预设时间内的网段的流量。
假设CPU获取到ASIC统计的5S内网段10.0.0.0的流量为15M,即预设时间内的网段的流量小于第二流量阈值,CPU删除对应该网段的硬件转发表项。在后续流程中,当ASIC再次接收到该网段的报文时,查询不到对应的硬件转发表项,将该报文上送CPU,由CPU进行报文转发。
通过以上描述可以看出,在本发明实施例中,当CPU接收到ASIC转发的报文时,一方面根据该报文对应的路由和ARP表项对该报文进行转发,另一方面,CPU还可以统计预设时间内该报文对应的网段的流量,并判断该流量是否超过流量阈值;若判断为是,CPU将该网段的路由和ARP表项下刷到硬件转发表项,以使ASIC根据该硬件转发表项对相应的报文进行转发;若判断为否,CPU拒绝将该网段的路由和ARP表项下刷到硬件转发表项,该网段的后续报文仍通过CPU转发,提高了硬件转发表项的资源利用率,并提高了报文转发效率。
基于上述方法实施例系统的发明构思,本发明实施例还提供了一种网络设备,可以应用于上述方法实施例。
如图4所示,为本发明实施例提供的一种网络设备的结构示意图,该网络设备可以包括CPU和ASIC,其中,该CPU可以包括:
接收模块41,用于接收所述ASIC转发的报文;其中,所述报文是所述ASIC未查询到所接收到的报文对应的硬件转发表项时,转发给所述CPU的;
转发模块42,用于根据所述接收模块41接收到的报文对应的路由和地址解析协议ARP表项对该报文进行转发;
统计模块43,用于统计第一预设时间内所述转发模块42转发的报文对应的网段的流量;
判断模块44,用于判断所述统计模块43统计的流量是否超过第一流量阈值;
处理模块45,用于当所述判断模块44判断为是时,将所述网段的路由和ARP表项下刷到硬件转发表项,以使所述ASIC根据所述硬件转发表项对相应的报文进行转发;当所述判断模块44判断为否时,拒绝将所述网段的路由和ARP表项下刷到硬件转发表项。
其中,所述转发模块42具体用于,根据所述报文查询对应的路由和ARP表项,若查询到对应的路由和ARP表项,则根据该路由和ARP表项对该报文进行转发;若未查询到对应的路由和ARP表项,则生成所述报文对应的路由和ARP表项,并根据该路由和ARP表项对该报文进行转发。
其中,所述CPU还包括:
获取模块46,用于获取所述ASIC统计的第二预设时间内的网段的流量;
所述判断模块44还用于,判断所述获取模块46获取到的网段的流量是否超过第二阈值;
所述处理模块还用于,当所述判断模块44的判断结果为所述获取模块46获取到的网段的流量未超过第二阈值时,删除该网段对应的硬件转发表项。
其中,所述第一预设时间等于所述第二预设时间;或/和,所述第一流量阈值等于所述第二流量阈值。
本领域技术人员可以理解实施例中的装置中的模块可以按照实施例描述进行分布于实施例的装置中,也可以进行相应变化位于不同于本实施例的一个或多个装置中。上述实施例的模块可以合并为一个模块,也可以进一步拆分成多个子模块。
通过以上的实施方式的描述,本领域的技术人员可以清楚地了解到本发明可借助软件加必需的通用硬件平台的方式来实现,当然也可以通过硬件,但很多情况下前者是更佳的实施方式。基于这样的理解,本发明的技术方案本质上或者说对现有技术做出贡献的部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质中,包括若干指令用以使得一台终端设备(可以是手机,个人计算机,服务器,或者网络设备等)执行本发明各个实施例所述的方法。
以上所述仅是本发明的优选实施方式,应当指出,对于本技术领域的普通技术人员来说,在不脱离本发明原理的前提下,还可以做出若干改进和润饰,这些改进和润饰也应视本发明的保护范围。