一种提高大象流流表利用率的方法及装置与流程

文档序号:17757538发布日期:2019-05-24 21:25阅读:317来源:国知局
一种提高大象流流表利用率的方法及装置与流程

本发明涉及一种网络通信技术领域,尤其是涉及一种提高大象流流表利用率的方法及装置。



背景技术:

在数据中心网络中,流量的类型包括大象流和老鼠流,大象流通常是指占据数据中心网络大部分带宽的数据流,老鼠流通常是指占据数据中心网络小部分带宽的数据流。为了优化数据中心网络的带宽资源,常需要在网络交换设备上区分大象流与老鼠流,并针对大象流或老鼠流做一些转发策略等。

网络交换设备的交换芯片中通常设有一用于存储大象流信息的大象流流表,交换芯片可基于软件或硬件动态分离出大象流和老鼠流,并将大象流保存至大象流流表中。随着网络业务的增大和数据中心网络带宽的增长,大象流的种类也随之增多,大象流流表中存放的大象流条目也随之增大,大象流流表也越来越大,使得交换芯片的尺寸设计也越来越大,成本越来越高。



技术实现要素:

本发明的目的在于克服现有技术的缺陷,提供一种提高大象流流表利用率的方法及装置,能够提高大象流流表的利用率。

为实现上述目的,本发明提出如下技术方案:一种提高大象流流表利用率的方法,包括如下步骤:

s100,接收数据包并判断所述数据包是否为大象流;

s200,在判断结果为大象流时,查找大象流流表;

s300,根据查找结果判断当前大象流是否已存在大象流流表中;

s400,在判断结果为不存在时,进一步判断当前大象流是否与大象流流表中已存在的大象流冲突;

s500,在判断结果为冲突时,获取大象流流表中与当前大象流冲突的大象流的驻留时间,将驻留时间最长的大象流进行提前老化处理,进一步将当前大象流学习至大象流流表中。

优选地,在步骤s100中,通过大象流检测器判断接收到的数据包是否为大象流。

优选地,在步骤s200中,所述查找大象流流表包括如下步骤:

s201,解析数据包,获取五元组信息;

s202,根据所述五元组信息生成流表查找键值;

s203,根据本原多项式和所述流表查找键值生成用于查找大象流流表的索引值,进一步根据所述索引值查找大象流流表获得用于存储大象流信息的大象流条目。

优选地,在步骤s300中,通过将所述流表查找键值与查找到的大象流条目中记录的信息进行匹配,若匹配,则当前大象流已存在大象流流表中。

优选地,在步骤s400中,通过判断查找到的大象流条目是否为空以判断当前大象流是否与大象流流表中已存在的大象流冲突。

优选地,在步骤s500中,大象流的驻留时间通过如下步骤计算:

步骤s501,在大象流被学习至大象流流表中时为其配置一用于记录驻留时间的时间字段;

步骤502,配置一周期性扫描大象流流表的计时器,若在扫描过程中发现大象流流表的一大象流条目中已学习到大象流,则将当前计时器的值加一后写入所述大象流条目的时间字段中。

本发明还揭示了一种提高大象流流表利用率的装置,包括

接收模块,用于接收数据包;

第一判断模块,用于判断所述数据包是否为大象流;

流表查询模块,用于在第一判断模块判断结果为大象流时,查找大象流流表;

第二判断模块,用于根据查找结果判断所述大象流是否已存在大象流流表中;

第三判断模块,用于在判断结果为不存在时,判断所述大象流是否与大象流表中已存在的大象流冲突;

老化处理模块,用于在判断结果为冲突时,获取大象流流表中与所述大象流冲突的大象流的驻留时间,并将驻留时间最大的大象流进行提前老化处理。

优选地,所述流表查询模块包括

数据包解析模块,用于对接收到的数据包进行解析获取五元组信息;

查找键值模块,用于根据五元组信息生成流表查找键值;

索引模块,用于根据流表查找键值和本原多项式生成用于查找大象流流表的索引值,并根据索引值查找大象流流表。

优选地,还包括信息更新模块,用于在第二判断模块判断大象流存在大象流流表中时,更新当前大象流在大象流流表中的状态信息。

优选地,还包括学习模块,用于在第三判断模块判断当前大象流与大象流表中已存在的大象流不冲突时将当前大象流学习到相应的大象流条目中。

本发明的有益效果是:。

(1)通过记录大象流流表中每个大象流的存活时间,在接收到新的大象流时查找大象流流表,并判断大象流流表中是否存在与其相冲突的大象流,并在存在冲突时使冲突的大象流中存活时间最长的大象流提前老化,以使新的大象流能够被学习到大象流流表中,从而提高大象流流表的利用率。

(2)充分利用物理存储资源,减小芯片设计的尺寸,降低生产成本。

附图说明

图1是本发明的方法流程图示意图;

图2是本发明的索引值计算示意图;

图3是本发明的大象流流表结构示意图;

图4是本发明的流程图示意图;

图5是本发明的装置结构框图示意图。

具体实施方式

下面将结合本发明的附图,对本发明实施例的技术方案进行清楚、完整的描述。

本发明所揭示的一种提高大象流流表利用率的方法及装置,通过记录大象流流表中每个大象流的存活时间,在接收到新的大象流时查找大象流流表,并判断大象流流表中是否存在与其相冲突的大象流,并在存在冲突时使冲突的大象流中存活时间最长的大象流提前老化,以使新的大象流能够被学习到大象流流表中,从而提高大象流流表的利用率。

结合图1~图4所示,一种提高大象流流表利用率的方法,包括如下步骤:

步骤s100,接收数据包并判断所述数据包是否为大象流;

具体地,在数据中心网络中,大部分是老鼠流,其占用数据中心网络少量的带宽,而少量的大象流,其占用数据中心网络大量的带宽。实施时,可通过efd(elephantflowdetector,大象流检测器)判断接收到的数据包是否为大象流。efd可根据流所占带宽的比重等方法判断其是否为大象流,当然,也可以根据其他方式判断接收到的数据包是否为大象流,如大象流的种类(如五元组)相对老鼠流较少,据此可判断是否为大象流。

具体实施时,efd可基于软件实现大象流的检测,如基于server端的管理组件实现大象流的检测,也可基于硬件实现大象流的检测,如基于网络交换机中的交换芯片实现大象流的检测。本实施例中,efd优选基于硬件实现大象流的检测。

s200,在判断结果为大象流时,查找大象流流表;

具体地,大象流流表用于记录efd检测出的大象流。实施时,大象流流表可由存储在若干个物理存储器中的大象流流表组成,每个物理存储器中的大象流流表在横向上可存放若干个大象流条目,每个大象流条目用于记录大象流的信息,如五元组信息和统计信息,其中,五元组信息包括源ip地址、目的ip地址、四层源端口、四层目的端口和协议号,统计信息包括大象流驻留时间信息等。

结合图2和图3所示,本实施例中以大象流流表由存储在四块物理存储器(分别记为大象流流表l1、大象流流表l2、大象流流表l3和大象流流表l4)中的大象流流表组成,每个物理存储器中的大象流流表在横向上可存放两个大象流条目为例,对如何查找大象流流表进行详细的说明。

当判断结果为大象流时,首先,对接收到的数据包进行解析获取五元组信息;其次,根据五元组信息生成流表查找键值;最后,根据流表查找键值和本原多项式生成用于查找大象流流表的索引值,根据索引值查找大象流流表即可。本实施例中,由于使用4个物理存储器存储大象流流表,因此,使用4个本原多项式进行索引值的计算,每个索引值均对应一物理存储器。同理,当使用n个物理存储器存储大象流流表时,使用n个本原多项式进行计算索引值,n为大于或等于1的整数。通过选用本原多项式可降低哈希的冲突率。

具体地,对接收到的数据包解析后可获得五元组信息,即源ip地址、目的ip地址、四层源端口、四层目的端口和协议号;进一步根据五元组信息生成流表查找键值,根据流表查找键值及四个本原多项式计算获得四个索引值index1~index4,四个索引值分别对应四块物理存储器的索引,也即索引值index1用于索引大象流流表l1,索引值index2用于索引大象流流表l2,索引值index3用于索引大象流流表l3,索引值index4用于索引大象流流表l4。

进一步利用四个索引值进行查找,每个物理存储器中可获得两个大象流条目,即l1-0和l1-1,l2-0和l2-1,l3-0和l3-1,及l4-0和l4-1。

s300,根据查找结果判断当前大象流是否已存在大象流流表中;

具体地,判断当前大象流是否已存在大象流流表中时可通过如下方式进行判断:将当前大象流对应的流表查找键值与根据索引值查找大象流流表的查找结果进行匹配,也即将当前大象流对应的流表查找键值中的五元组信息与查找到的大象流条目中记录的五元组信息进行匹配,若匹配,则表明大象流已存在大象流流表中,否则,表明大象流不存在大象流流表中。实施时,可将流表查找键值与查找到的八个大象流条目中记录的大象流信息逐一进行匹配,从而确定大象流是否在大象流流表中。

若当前大象流已存在大象流流表中,则更新当前大象流在大象流流表中的状态信息,如大象流的驻留时间等。如大象流已被学习至大象流条目l1-0中,则更新状态信息至大象流条目l1-0中即可。

若当前大象流不存在大象流流表中,则进一步执行步骤s400。

步骤s400,在判断结果为不存在时,判断当前大象流是否与大象流流表中已存在的大象流冲突;

具体地,判断大象流是否与已存在的大象流冲突时,首先根据索引值查找大象流流表,若查找到大象流流表中的大象流条目为空,则表明大象流与大象流流表中已存在的大象流不冲突,如通过上述四个索引值分别索引四个物理存储器,共获得8个大象流条目,若8个大象流条目中存在一未存储大象流信息的大象流条目,则表明当前大象流与大象流流表中已存在的大象流不冲突,进一步将当前大象流学习到该空的大象流条目中,并记录当前大象流的状态信息,同时对当前大象流执行相应的转发策略。

若当前大象流与大象流流表中已存在的大象流冲突时,则执行步骤s500。

s500,在判断结果为冲突时,获取大象流流表中与当前大象流冲突的大象流的驻留时间,并将驻留时间最长的大象流进行提前老化处理,进一步将当前大象流学习至大象流流表中。

具体地,当存在冲突时表明通过索引值获得的大象流条目中均存储有已学习到的大象流,此时,则需进一步获取这些大象流条目中大象流的驻留时间,将驻留时间最长的大象流做提前老化处理,为当前大象流提供存储空间,使新的大象流可以被学习到条目中,充分利用表项资源。如通过索引值index1~index4查找到的八个大象流条目中均存储有已学习到的大象流,则进一步获取八个大象流条目中驻留时间最长的大象流使其提前老化,如l1-0中存储的大象流驻留时间最长,则将其提前老化处理。本实施例中,提前老化处理是指在一tcp(transmissioncontrolprotocol,传输控制协议)会话数据传输即将结束后尽快释放相应大象流条目,以供新的大象流被学习至该条目中。

进一步地,大象流的驻留时间从该大象流被学习到大象流流表中开始计算。实施时,大象流的驻留时间可通过如下步骤计算:

首先,在大象流被学习至大象流流表中时为其配置一用于记录驻留时间的时间字段rt,实施时,在大象流被学习到的大象流条目中配置所述时间字段,并且初始时时间字段的值为0;

最后,配置一周期性扫描大象流流表的计时器,若在扫描过程中发现大象流流表的一大象流条目中已学习到大象流,则将当前计时器的值加一后写入所述大象流条目的时间字段中。

如图5所示,本发明还揭示了一种提高大象流流表利用率的装置,包括

接收模块,用于接收数据包;

第一判断模块,用于判断所述数据包是否为大象流;

流表查询模块,用于在第一判断模块判断结果为大象流时,查找大象流流表;

第二判断模块,用于根据查找结果判断所述大象流是否已存在大象流流表中;

第三判断模块,用于在判断结果为不存在时,判断所述大象流是否与大象流表中已存在的大象流冲突;

老化处理模块,用于在判断结果为冲突时,获取大象流流表中与所述大象流冲突的大象流的驻留时间,并将驻留时间最大的大象流进行提前老化处理。

具体地,接收模块接收到数据包后通过第一判断模块判断数据包是否为大象流。第一判断模块可通过efd(elephantflowdetector,大象流检测器)检测接收到的数据包是否为大象流。efd可根据流所占带宽的比重等方法判断其是否为大象流,当然,也可以根据其他方式判断接收到的数据包是否为大象流,如大象流的种类(如五元组)相对老鼠流较少,据此可判断是否为大象流。具体实施时,efd检测大象流可基于软件实现,如基于server端的管理组件实现大象流的检测,也可基于硬件实现,如基于网络交换机中的交换芯片实现大象流的检测。本实施例中,efd优选基于硬件实现大象流的检测。

当第一判断模块判断数据包为大象流时,进一步通过流表查询模块查询大象流流表。大象流流表用于记录efd检测出的大象流。实施时,大象流流表可由存储在若干个物理存储器中的大象流流表组成,每个物理存储器中的大象流流表在横向上可存放若干个大象流条目,每个大象流条目用于记录大象流的信息,如五元组信息和统计信息,其中,五元组信息包括源ip地址、目的ip地址、四层源端口、四层目的端口和协议号,统计信息包括大象流驻留时间信息等。

如图5所示,流表查询模块包括数据包解析模块、查找键值模块、索引模块和,其中,数据包解析模块用于对接收到的数据包进行解析获取五元组信息;查找键值模块用于根据五元组信息生成流表查找键值;索引模块用于根据流表查找键值和本原多项式生成用于查找大象流流表的索引值,并根据索引值查找大象流流表。

具体地,数据包解析模块对接收到的数据包进行解析获得五元组信息,即获得源ip地址、目的ip地址、四层源端口、四层目的端口和协议号。进一步地,查找键值模块根据五元组信息生成流表查找键值;索引模块将流表查找键值与本原多项式进行计算获得索引值,并根据索引值查找大象流流表,如上所述,生成四个用于索引物理存储器的索引值index1~index4,四个索引值分别对应四块物理存储器的索引,进一步使用四个索引值分别索引四个物理存储器,每个物理存储器可获取两个大象流条目,即l1-0和l1-1,l2-0和l2-1,l3-0和l3-1,及l4-0和l4-1。

如图5所示,装置还包括转发模块,用于数据包的转发,实施时,若当前数据包不是大象流,则直接将其通过转发模块进行转发。

更进一步地,第二判断模块通过将当前大象流对应的流表查找键值与根据索引值查找大象流流表的查找结果进行匹配,也即将当前大象流对应的流表查找键值中的五元组信息与查找到的大象流条目中记录的五元组信息进行匹配,若匹配,则表明大象流已存在大象流流表中,否则,表明大象流不存在大象流流表中。实施时,可将流表查找键值与查找到的八个大象流条目中记录的大象流信息逐一进行匹配,从而确定大象流是否在大象流流表中。

进一步地,装置还包括信息更新模块,用于在第二判断模块判断大象流存在大象流流表中时,更新当前大象流在大象流流表中的状态信息,如大象流的驻留时间等。如大象流已被学习至大象流条目l1-0中,则更新状态信息至大象流条目l1-0中即可。

对于不存在大象流流表中的大象流,也即当前大象流为新的大象流,第三判断模块进一步判断当前大象流是否与大象流表中已存在的大象流冲突。实施时,第三判断模块在判断大象流是否与已存在的大象流冲突时,首先根据索引值查找大象流流表,若查找到大象流流表中的大象流条目为空,则表明大象流与大象流流表中已存在的大象流不冲突。

如图5所示,装置还包括学习模块,用于在第三判断模块判断当前大象流与大象流表中已存在的大象流不冲突时将当前大象流学习到相应的大象流条目中。如通过上述四个索引值分别索引四个物理存储器,共获得8个大象流条目,若8个大象流条目中存在一未存储大象流信息的大象流条目,则表明当前大象流与大象流流表中已存在的大象流不冲突,进一步通过学习模块将当前大象流学习到该空的大象流条目中,并记录当前大象流的状态信息,进一步通过转发模块对当前大象流执行相应的转发策略。

若当前大象流与大象流流表中已存在的大象流冲突时,表明通过索引值获得的大象流条目中均存储有已学习到的大象流,此时,则老化处理模块进一步获取这些条目中大象流的驻留时间,将驻留时间最长的大象流(已记录在流表中)做提前老化处理,使新的大象流可以被学习到条目中。驻留时间的计算已在上述详细说明,在此不一一赘述。

本发明的技术内容及技术特征已揭示如上,然而熟悉本领域的技术人员仍可能基于本发明的教示及揭示而作种种不背离本发明精神的替换及修饰,因此,本发明保护范围应不限于实施例所揭示的内容,而应包括各种不背离本发明的替换及修饰,并为本专利申请权利要求所涵盖。

当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1