掌桥专利:专业的专利平台
掌桥专利
首页

一种数据流处理及分类方法、装置和系统

文献发布时间:2023-06-19 11:52:33


一种数据流处理及分类方法、装置和系统

技术领域

本发明涉及网络系统技术领域,特别地涉及一种数据流处理及分类方法、装置和系统。

背景技术

随着云计算和互联网的飞速发展,大数据处理的应用场景越来越多。目前在金融、移动数据、网络监控及物联网等领域中,经常会需要处理一些海量的、实时的、需要快速响应的数据流。因此,对网络中继设备的处理能力和处理速度提出了更高的要求。

系统软件和硬件均可以实现对来自发送端的所有的数据流量进行转发处理,但是由于硬件资源有限,并不足以支撑大数据量的处理,系统软件支持的数据流条目可以非常巨大,但其处理速度不如硬件,当需要处理的数据流量非常大,可能是千万,甚至是亿万级的数据需要转发处理时,还可能会出现拥堵和排队现象。

为了提高网络性能以及对网络数据流进行有效的管理,可以把一部分数据流分发到处理速度更快的硬件中实现快速处理。但是因为硬件存储资源有限,为了提高效率,只能将转发频率较高的数据流分配(offload)至硬件中,即,热点数据流分配至硬件中。因此,需要在海量的数据流中识别出热点数据流。

而且,由于数据流条目巨大,具体将哪些数据流分流到硬件中进行处理,则需要对所有数据流量进行统计,现有技术中对数据流量的统计更多的是基于单位时间的统计。比如常用的令牌桶等方式,是以单位时间内清除令牌桶个数来计数,从而感知单位时间流量的大小。但是这种方式,需要进行大量的除法计算,且无法直接进行数据流计数,不能分数据流进行统计,且额外地需要定时器支持。若需要分数据流进行统计,则需要针对每个数据流分别进行统计,数据统计量巨大,且需要对统计数据进行横向对比,以便确定热点数据流,这就会占用非常多的计算资源,会严重影响网络系统的性能。

且现有技术中也不能实现根据实际情况动态的调整分配到硬件中的数据流数量,因此,如何在占用较少数据资源的情况下,快速准确的识别出热点数据流并合理的分配到硬件中进行处理,成为亟待解决的技术问题。

发明内容

鉴于上述问题,提出了本发明以便提供一种克服上述问题或者至少部分地解决上述问题的一种数据流处理及分类方法、装置和系统。

作为本发明实施例的一个方面,涉及一种数据流处理方法,包括:

周期性统计转发数据流中指定数量的一组报文的持续时长;

根据每个数据流的所述持续时长、硬件的数据处理能力,确定符合设定条件的第一数据流;

将所述第一数据流分配给硬件进行转发处理。

在一个实施例中,所述周期性统计转发数据流中指定数量的一组报文的持续时长,包括:

针对每个数据流,以包含预设报文数量的报文包组为单位,周期性统计每个报文包组中的报文转发处理的起始时间和结束时间,得到所述报文包组的所述持续时长。

在一个实施例中,所述根据每个数据流的所述持续时长、硬件的数据处理能力,确定符合设定条件的第一数据流,包括:

根据硬件的数据处理能力,结合待处理的数据流数量,确定硬件的处理比例;

根据统计到的各数据流的所述持续时长的分布情况和所述硬件的处理比例,确定时长分界点;

将持续时长小于所述时长分界点的数据流确定为第一数据流。

在一个实施例中,所述根据统计到的各数据流的所述持续时长的分布情况和所述硬件的处理比例,确定时长分界点,将持续时长小于所述时长分界点的数据流确定为第一数据流,包括:

根据每个数据流的所述持续时长、预先建立的时间轴的起终点和预设的时长单位,确定每个数据流在时间轴上的落点位置;所述时间轴的起点小于等于统计得到的所述持续时长的最小值,终点大于等于统计得到的所述持续时长的最大值;

根据时间轴上各时长单位对应的时间轴长度内包含的落点个数和所述硬件的处理比例,确定时间轴上的时长分界点;

将落点位于时间轴起点到时长分界点之间的数据流确定为第一数据流。

在一个实施例中,所述根据每个数据流的所述持续时长、硬件的数据处理能力,确定符合设定条件的第一数据流,包括:

根据硬件的数据处理能力,结合待处理的数据流数量,确定硬件的处理比例;

根据数据流的所述持续时长和所述一组报文包含的报文数量,得到所述数据流的报文转发频率;

根据各数据流的报文转发频率的分布情况和所述硬件的处理比例,确定频率分界点;

将报文转发频率大于所述频率分界点的数据流确定为第一数据流。

在一个实施例中,所述根据各数据流的报文转发频率的分布情况和所述硬件的处理比例,确定频率分界点,将报文转发频率大于所述频率分界点的数据流确定为第一数据流,包括:

根据统计到的每个数据流的所述报文转发频率、预先建立的频率轴的起终点和预设的频率单位,确定每个数据流在频率轴上的落点位置;所述频率轴的起点小于统计得到的所述报文转发频率的最小值,终点大于统计得到的所述报文转发频率的最大值;

根据频率轴上各频率单位对应的频率轴长度内包含的落点个数和所述硬件的处理比例,确定频率轴上的频率分界点;

将落点位于频率分界点到频率轴终点之间的数据流确定为第一数据流。

在一个实施例中,将所述第一数据流分配给硬件进行转发处理,包括:

若属于所述第一数据流中的数据流正在软件中进行转发处理,将其转移到硬件中进行转发处理;

若不属于所述第一数据流中的数据流正在硬件中进行转发处理,将其转移到软件中进行转发处理;

若属于所述第一数据流中的数据流正在硬件中进行转发处理或不属于所述第一数据流中的数据流正在软件中进行转发处理,则保持不变。

在一个实施例中,所述周期性统计转发数据流中指定数量的一组报文的持续时长,包括:

对于在硬件和软件中进行转发处理的数据流均由软件统计数据流中指定数量的一组报文的持续时长,统计时将在硬件中进行转发处理的数据流转移到软件中进行一段时间的转发处理;或

对于在硬件中进行转发处理的数据流由硬件统计数据流中指定数量的一组报文的持续时长,对于在软件中进行转发处理的数据流由软件统计数据流中指定数量的一组报文的持续时长。

作为本发明实施例的一个方面,涉及一种数据流分类方法,包括:

周期性统计转发数据流中指定数量的一组报文的持续时长;

根据每个数据流的所述持续时长、硬件的数据处理能力,确定符合设定条件第一数据流。

在一个实施例中,所述根据每个数据流的所述持续时长、硬件的数据处理能力,确定符合设定条件的第一数据流,包括:

根据硬件的数据处理能力,结合待处理的数据流数量,确定硬件的处理比例;

根据统计到的各数据流的所述持续时长的分布情况和所述硬件的处理比例,确定时长分界点;

将持续时长小于所述时长分界点的数据流确定为第一数据流。

在一个实施例中,所述根据每个数据流的所述持续时长、硬件的数据处理能力,确定符合设定条件的第一数据流,包括:

根据硬件的数据处理能力,结合待处理的数据流数量,确定硬件的处理比例;

根据数据流的所述持续时长和所述一组报文包含的报文数量,得到所述数据流的报文转发频率;

根据各数据流的报文转发频率的分布情况和所述硬件的处理比例,确定频率分界点;

将报文转发频率大于所述频率分界点的数据流确定为第一数据流。

作为本发明实施例的一个方面,涉及一种数据流处理装置,包括:

统计模块,用于周期性统计数据流中转发指定数量的一组报文的持续时长;

确定模块,根据每个数据流的所述持续时长、硬件的数据处理能力,确定符合设定条件的第一数据流;

控制模块,用于将所述第一数据流分配给硬件进行转发处理。

作为本发明实施例的一个方面,涉及一种数据流分类装置,包括:

统计模块,用于周期性统计数据流中转发指定数量的一组报文的持续时长;

确定模块,根据每个数据流的所述持续时长、硬件的数据处理能力,确定符合设定条件的第一数据流。

作为本发明实施例的一个方面,涉及一种数据流处理系统,包括:数据发送设备、数据转发设备和数据接收设备;

数据转发设备,设置上述的数据流量控制装置,用于接收各数据发送设备发送的数据,根据数据的源地址、发送端口、目的地址、接收端口和所使用的数据协议,将接收到的数据分配到不同的数据流中,在所述装置的控制下通过硬件或软件将数据流转发至数据接收设备。

作为本发明实施例的再一个方面,涉及一种计算机可读存储介质,其上存储有计算机指令,该指令被处理器执行时实现上述的数据流处理方法和/或数据流分类方法。

作为本发明实施例的再一个方面,涉及一种计算机设备,包括存储器,处理器及存储在存储器上并可在处理器上运行的计算机程序,所述处理器执行所述程序时实现上述的数据流处理方法和/或数据流分类方法。

本发明实施例提供的上述技术方案的有益效果至少包括:

通过对数据流中指定数量的一组报文转发所持续时长的统计,作为对数据流的转发处理速度的统计结果,并用于热点数据流和非热点数据流的确定过程中,避免了对速度相关参数进行统计的大量运算,减少了系统处理的计算量,且通过部分报文的统计代替整个数据流的统计结果,减少了数据统计量,因此,大大降低了系统资源消耗,减少了内存使用量,且能够快速准确的识别出热点数据流,并结合硬件和软件的处理能力,确定分配给硬件处理的数据流数量,使数据流处理的分配比例更合理,且能根据实际情况调整分配到硬件中的数据流数量,充分发挥硬件和软件的处理优势,提高系统性能。

本发明对传统数据流PPS(Packages per Second)的统计转化为对数据流中报文持续时长t的落点统计,简化了统计方法,并优化了报文包组在时间轴落点的设计方法,保证了落点计算的有效性,提高了效率。

本发明的其它特征和优点将在随后的说明书中阐述,并且,部分地从说明书中变得显而易见,或者通过实施本发明而了解。本发明的目的和其他优点可通过在所写的说明书、权利要求书、以及附图中所特别指出的结构来实现和获得。

下面通过附图和实施例,对本发明的技术方案做进一步的详细描述。

附图说明

附图用来提供对本发明的进一步理解,并且构成说明书的一部分,与本发明的实施例一起用于解释本发明,并不构成对本发明的限制。在附图中:

图1为本发明实施例一中数据流分类方法的流程图;

图2为本发明实施例一中分包组进行持续时间统计的示意图;

图3为本发明实施例二中数据流处理方法的流程图;

图4为本发明实施例三中数据流分类方法的流程图;

图5为本发明实施例四中数据流处理方法的流程图;

图6为本发明实施例四中构建时间轴以及数据流报文包组在时间轴的落点位置的示意图;

图7为本发明实施例四中时间轴上的时长分界点的示意图;

图8为本发明实施例五中的数据流分类方法流程图;

图9为本发明实施例六中数据流处理方法的流程图;

图10为本发明实施例中一种数据流处理装置的结构框图;

图11为本发明实施例中另一种数据流处理装置的结构框图;

图12为本发明实施例中一种数据流处理系统的结构框图;

图13为本发明实施例中一种数据流处理方法的系统架构图。

具体实施方式

下面将参照附图更详细地描述本发明的示例性实施例。虽然附图中显示了本发明的示例性实施例,然而应当理解,可以以各种形式实现本发明而不应被这里阐述的实施例所限制。相反,提供这些实施例是为了能够更透彻地理解本发明,并且能够将本发明的范围完整的传达给本领域的技术人员。

为了解决现有技术中数据流量统计占用计算资源多,严重影响网络性能且不能根据实际情况动态调整分配到硬件中的数据流数量的问题,本发明提供了一种数据流处理方法和数据流量分类的方法,通过统计数据流中指定数量的一组报文的转发处理的持续时长,来实现热点数据流和非热点数据流的区分,占用系统资源少,且能结合硬件和软件的处理能力来进行合理分配,实现更合理的数据流量转发控制。

下面通过具体的实施例进行详细描述。

实施例一

本发明实施例一提供一种数据流分类方法,其流程如图1所示,包括如下步骤:

S11、周期性统计转发数据流中指定数量的一组报文的持续时长。

数据流是指具有同样五元组的所有报文的集合,其中,五元组是指:协议号、源IP、目的IP、源端口、目的端口。即,一个数据流是指源于相同IP地址和端口,具有相同的目的IP地址和端口,并且使用同样的通讯协议的一组在网络中传输的所有报文的集合。例如,一个APP与远程服务器之间创建的一个通信从连接的开始到结束的整个生命周期中所有报文是一个数据流。

由于一个数据流数据量大,且持续时间长,为了提高效率,预设报文包组,实现对数据流中的一组报文进行统计,可以根据实际需要预设包组中的报文数量。

预设报文包组后,可以分包组对报文的转发情况进行统计。针对每个数据流,以包含预设报文数量的报文包组为单位,周期性统计每个报文包组中的报文转发处理的起始时间和结束时间,得到报文包组的所述持续时长。举例来说,如图2所示,可以根据预设的统计周期针对每个数据流进行相应的统计,例如:数据流1中可以统计得到包组1的持续时长t

S12、根据每个数据流的持续时长、硬件的数据处理能力,确定符合设定条件的第一数据流。

可以根据系统硬件的数据处理能力和软件的数据处理能力的比例,来确定第一数据流,根据比例和每个数据流的持续时长确定将多少数据流确定为第一数据流。同时,还可以确定出不符合设定条件的第二数据流,例如将不属于第一数据流的其他数据流确定为第二数据流。

在实际应用中,可以定义第一数据流是热点数据流,第二数据流为非热点数据流;或定义第一数据流是非热点数据流,第二数据流为热点数据流;也可以进行其他性质的分类定义,具体的可以根据实际应用场景进行划分。在后续举例描述中,以第一数据流为热点数据流,第二数据流为非热点数据流为例进行描述。

举例来说,系统硬件和系统软件的数据处理能力的比例为1:4,同时根据当前统计周期内统计出的所有数据流报文转发的持续时长t的结果,将持续时长较短的占总数据流的20%数据流定义为热点数据流,其余的80%的数据流定义为非热点数据流。

当然,还可以考虑到数据流的总数量和系统硬件和系统软件的数据处理能力之间的关系,来确定热点数据流的数量或比例,比如:系统硬件和系统软性的数据处理能力的比例为1:4,但数据流的数量相对比较少,硬件有足够的处理能力处理超过20%的数据流,此时,也可以考虑将25%、30%或者更多的数据流确定为热点数据流,以便将更多的数据流放到硬件中进行处理。

上述步骤S11中,对于周期性统计转发数据流中指定数量的一组报文的持续时长,可以根据实际需要设定统计周期的长短。

一般情况下,由于硬件资源有限,会选择由软件来进行持续时长的统计,即对于在硬件和软件中进行转发处理的数据流均由软件统计数据流中指定数量的一组报文的持续时长,统计时需将在硬件中进行转发处理的数据流转移到软件中进行一段时间的转发处理,使得软件可以对数据流持续时长进行统计。这种方式可以更好地节约硬件资源,避免硬件资源消耗过多。

可以根据需要在一个统计周期内,依次转移所有在硬件中处理的数据流到软件中处理设定的时间长度,以便进行统计,也可以分批次进行转移统计,比如当前统计周期内转移一部分数据流实现统计,在下一个周期内再转移一部分数据流进行统计,具体分几个批次进行转移处理,根据实际需要设定。

为了避免对数据流进行统计时的转移操作,提高处理的实时性,还可以选择由软件和硬件分别对各自处理的数据流进行统计,也就是说,对于在硬件中进行转发处理的数据流由硬件统计数据流中指定数量的一组报文的持续时长,对于在软件中进行转发处理的数据流由软件统计数据流中指定数量的一组报文的持续时长,最后综合统计硬件和软件中数据流持续时长的结果。这种情况可以避免转移操作的,简化统计操作的处理过程。

本发明实施例一提供的上述方法,通过对数据流中指定数量的一组报文转发所持续时长的统计,作为对数据流的转发处理速度的统计结果,并用于第一数据流和第二数据流的确定过程中,避免了对速度相关参数进行统计的大量运算,减少了系统处理的计算量,且通过部分报文的统计代替整个数据流的统计结果,减少了数据统计量,因此,大大降低了系统资源消耗,减少了内存使用量,且能够快速准确的识别出第一数据流,并结合硬件和软件的处理能力,确定第一数据流以便分配给硬件处理,当用于热点数据流确定时,使热点数据流的确定和分配更合理。

实施例二

本发明实施例二提供一种数据流处理方法,其流程如图3所示,包括如下步骤:

S21、周期性统计转发数据流中指定数量的一组报文的持续时长。

参见上述实施例一中步骤S11的相关描述,此处不再赘述。

S22、根据每个数据流的所述持续时长、硬件的数据处理能力,确定符合设定条件的第一数据流。

参见上述实施例一中步骤S12的相关描述,此处不再赘述。

S23、将第一数据流分配给硬件进行转发处理。

在步骤S22确定出第一数据流和第二数据流后,进行数据流的分配操作,可以根据数据流原本是在软件中处理还是在硬件处理以及数据流被确定为第一数据流和第二数据流来进行调整,最终实现将确定出的第一数据流交由硬件处理,第二数据流交由软件处理。其中,第一数据流可以是热点数据流,第二数据流可以是非热点数据流。

具体的,若属于第一数据流中的数据流正在软件中进行转发处理,将其转移到硬件中进行转发处理;若不属于第一数据流中的数据流正在硬件中进行转发处理,将其转移到软件中进行转发处理;若属于第一数据流中的数据流正在硬件中进行转发处理或不属于第一数据流中的数据流正在软件中进行转发处理,则保持不变。

例如,对于热点数据流和非热点数据流,若确定出的热点数据流正在软件中进行转发处理,将其转移到硬件中进行转发处理;若确定出的非热点数据流正在硬件中进行转发处理,将其转移到软件中进行转发处理;若确定出的热点数据流正在硬件中进行转发处理或确定出的非热点数据流正在软件中进行转发处理,则保持不变。

本发明实施例的上述方法,在能够快速准确的识别出热点数据流基础上,结合硬件和软件的处理能力,确定分配给硬件处理的数据流数量,使数据流处理的分配比例更合理,且能根据实际情况调整分配到硬件中的数据流数量,充分发挥硬件和软件的处理优势,提高系统性能。

实施例三

本发明实施例三提供上述数据流分类方法的一种具体实现方式,基于数据流中指定数量的一组报文的转发的持续时长,来划分第一数据流和第二数据流,例如热点数据流和非热点数据流,其流程如图4所示,该方法包括如下步骤:

S31、周期性统计转发数据流中指定数量的一组报文的持续时长。

具体步骤参见步骤S11的描述,此处不再赘述。

S32、根据硬件的数据处理能力,结合待处理的数据流数量,确定硬件的处理比例。

在本步骤中,可以根据硬件的数据处理能力,结合待处理的数据流数量,确定硬件能够处理的比例;可选的,也可以硬件的数据处理能力,结合软件的处理能力和待处理的数据流数量,确定硬件和软件的处理比例。例如:硬件的数据处理能力是指根据硬件配置参数得到该硬件系统可以处理数据流的最大值,即为硬件系统可以处理数据流的数据处理能力。根据硬件的数据处理能力和软件的数据处理能力的比例,可以得出软硬系统能处理第一数据流和第二数据流的比例。

举例来说,硬件处理数据流最大能力为1000万条数据流/秒,软件处理数据流最大能力为4000万条数据流/秒,那么硬件与软件的处理数据流的能力比例为1:4。即,在一秒的周期内,可以分配给硬件系统1000万条数据流,可以分配给软件系统4000万条数据流。

此外,还可以需要结合待处理的数据流数量的实际情况处理。举例来说,如果此周期内待处理的数据流总数量小于硬件处理数据流最大能力,那么可以将全部数据流分配至硬件处理。

本步骤的基本原则是为了更合理地利用硬件资源来处理数据流,可以根据实际情况来确定硬件的处理比例,以取得更快的处理速度。

S33、根据统计到的各数据流的持续时长的分布情况和硬件的处理比例,确定时长分界点。

在本步骤中,结合所有数据流在该周期内所统计出的报文持续时长的分布情况和得到的硬件与软件的处理数据流能量比例,确定出第一数据流和第二数据流的时长分界点。举例来说,如果硬件与软件的处理数据流的能力比例为1:4,并将统计出的所有数据流持续时长从小到大排序,确定出能将所有排序后数据流持续时长按1:4比例进行划分的分界点,该分界点为即为第一数据流和第二数据流的时长分界点。

S34、将持续时长小于时长分界点的数据流确定为第一数据流。

将持续时长小于时长分界点的数据流确定为第一数据流,可选的,还可以将持续时长不小于时长分界点的数据流确定为第二数据流。

步骤S32-步骤S34实现了根据每个数据流的所述持续时长、硬件的数据处理能力,确定第一数据流和第二数据流。

本实施例是对数据流中指定数量的一组报文的持续时长进行统计,替代了对整个数据流的统计,并以该组报文的统计结果表示该数据流的统计结果。因此占用内存少,系统性能高,避免了统计规格巨大的数据流而导致的系统性能下降和大量内存占用,而且本发明不会随着系统支持数据流规格的增大而增大对内存的需求,同时也不会导致系统性能的降低。本实施例根据数据流持续时长并结合硬件和软件的处理能力,综合确定热点数据流作为第一数据流以便分配给硬件处理,当用于热点数据流确定时,使热点数据流的确定和分配更合理。

实施例四

本发明实施例四提供上述数据流处理方法的一种具体实现方式,基于数据流中指定数量的一组报文的转发的持续时长,来实现对数据流量进行控制,其流程如图5所示,该方法包括如下步骤:

S41、周期性统计转发数据流中指定数量的一组报文的持续时长。

具体步骤参见步骤S11的描述,此处不再赘述。

S42、根据硬件的数据处理能力,结合待处理的数据流数量,确定硬件的处理比例。

具体步骤参见步骤S32的描述,此处不再赘述。

S43、根据每个数据流的持续时长、预先建立的时间轴的起终点和预设的时长单位,确定每个数据流在时间轴上的落点位置;时间轴的起点小于等于统计得到的持续时长的最小值,终点大于等于统计得到的持续时长的最大值。

在此步骤中,预先定义一个时间轴,如图6所示,其中,时间轴的起点为t

预设的时长单位是可以根据实际数量流情况,或者经验值来定义,例如可以定义为1毫秒、2毫秒、或者1微秒等。优选的,本步骤可以将时长单位定义为2的幂次方,例如,1、2、4、8等。通过位移运算代替传统的除法的运算,从而避免因除法导致CPU性能的下降,从而极大地提高运算速度。

计算(数据流报文持续时长t-t

1.如果统计出的报文包组落点分布过于集中,则调整时间轴起点t

2.如果统计出的报文包组落点过于分散,覆盖了较大的时间范围使得时间轴过长,可以同时使用多个时间轴,此时需先定位落点所在的时间轴,再定位落点在该时间轴上的位置。

S44、根据时间轴上各时长单位对应的时间轴长度内包含的落点个数和硬件的处理比例,确定时间轴上的时长分界点。

如图7所示,根据统计得出的在该时间轴上每个时长单位中所包含的报文包组落点的个数C,确定第一数据流在时间轴的时长分界点C

S45、将落点位于时间轴起点到时长分界点之间的数据流确定为第一数据流。可选的,将落点位于时长分界点到时间轴终点之间的数据流确定为第二数据流。

根据确定出的时长分界点C

S46、将第一数据流分配给硬件进行转发处理。

同时,将确定出的第二数据流分配给软件进行转发处理。

具体步骤参见步骤S23的描述,此处不再赘述。

步骤S43-步骤S45,实现了根据统计到的各数据流的持续时长的分布情况和硬件与软件的处理比例,确定第一数据流和第二数据流的时长分界点,将持续时长小于时长分界点的数据流确定为第一点数据流,持续时长不小于时长分界点的数据流确定为第二数据流。

本实施例通过对对报文持续时长t在时间轴上落点的统计,作为对数据流的转发处理速度的统计结果,相对使用其它参数而言,减少了除法计算量,从而减少了数据统计处理量。因此,大大降低了系统资源消耗,减少了内存使用量。并且本实施例还利用移位运算计算数据流包组在时间轴的位置,取代了传统的除法运算,简化了统计方法,并且极大地提高了系统计算的性能。

实施例五

本实施例五提供上述数据流分类方法的一种具体实现方式,基于数据流中指定数量的一组报文的报文转发频率,来划分第一数据流和第二数据流,其流程如图8所示,该方法包括如下步骤:

S51、周期性统计转发数据流中指定数量的一组报文的持续时长。

具体步骤参见步骤S11的描述,此处不再赘述。

S52、根据硬件的数据处理能力,结合待处理的数据流数量,确定硬件的处理比例。

具体步骤参见步骤S32的描述,此处不再赘述。

S53、根据数据流的持续时长和一组报文包含的报文数量,得到数据流的报文转发频率。

计算数据流的报文转发频率:数据流的持续时长t/该报文包含的报文数量=数据流的报文转发频率PPS。

S54、根据各数据流的报文转发频率的分布情况和硬件的处理比例,确定频率分界点。

在本步骤中,结合所有数据流在该周期内所统计出的报文包组的报文转发频率分布情况和硬件与软件的处理数据流能量比例,确定出第一数据流和第二数据流的报文转发频率分界点。举例来说,如果硬件与软件的处理数据流的能力比例为1:4,并将统计出的所有数据流报文转发频率从小到大排序,确定出能将所有排序后数据流报文转发频率按4:1比例进行划分的分界点,该分界点为即为第一数据流和第二数据流的报文转发频率分界点。

S55、将报文转发频率大于频率分界点的数据流确定为第一数据流。

将报文转发频率大于频率分界点的数据流确定为第一数据流,可选的,将报文转发频率不大于频率分界点的数据流确定为第二数据流。

步骤S52-步骤S55,实现了根据每个数据流的持续时长、硬件的数据处理能力和软件的数据处理能力,确定第一数据流和第二数据流。

在本实施例中,根据实际应用还可以针对不同的数据流设置不同包组大小,使每个数据流的包组报文数可以不等。使得报文包组的定义更加灵活方便。

本实施例中把数据流的统计转化为对数据流中指定数量的一组报文包组的统计,使用该周期内的报文包组的转发速率,表示该周期内数据流的转发速率,从而使得对数据流的统计不再占用巨大的系统资源,提高了系统的处理数据流的速度。本实施例根据数据流转发速率并结合硬件和软件的处理能力,综合确定第一数据流以便分配给硬件处理,当用于热点数据流确定时,使热点数据流的确定和分配更合理。

实施例六

本实施例六提供上述数据流处理方法的一种具体实现方式,基于数据流中指定数量的一组报文的报文转发频率,来实现对数据流量进行控制,其流程如图9所示,包括如下步骤:

S61、周期性统计转发数据流中指定数量的一组报文的持续时长。

具体步骤参见步骤S11的描述,此处不再赘述。

S62、根据硬件的数据处理能力,结合待处理的数据流数量,确定硬件的处理比例。

具体步骤参见步骤S32的描述,此处不再赘述。

S63、根据数据流的持续时长和一组报文包含的报文数量,得到数据流的报文转发频率。

具体步骤参见步骤S53的描述,此处不再赘述。

S64、根据统计到的每个数据流的报文转发频率、预先建立的频率轴的起终点和预设的频率单位,确定每个数据流在频率轴上的落点位置;频率轴的起点小于统计得到的报文转发频率的最小值,终点大于统计得到的报文转发频率的最大值。

在本步骤中,预先定义一个频率轴,频率轴上的点包括PPS

预设的频率单位是可以根据实际数量流情况,或者经验值来定义,例如可以定义为1024PPS、2048PPS等。优选的,可以将频率单位定义为2的幂次方,如2

计算(数据流的报文转发频率PPS-PPS

优选的,本步骤还可以根据实际情况对频率轴进行调整。

1.如果统计出的报文包组落点分布过于集中,则调整频率轴起点PPS

2.如果统计出的报文包组落点过于分散,覆盖了较大的频率范围使得频率轴过长,可以同时使用多个频率轴,此时需先定位落点所在的频率轴,再定位落点在该频率轴上的位置。

S65、根据频率轴上各频率单位对应的频率轴长度内包含的落点个数和硬件的处理比例,确定频率轴上的频率分界点。

根据统计得出的在该频率轴上每个频率单位中所包含的报文包组落点的个数C,确定第一数据流在频率轴的频率分界点C

S66、将落点位于频率分界点到频率轴终点之间的数据流确定为第一数据流。可选的,将落点位于频率轴起点到频率分界点之间的数据流确定为第二数据流。

根据确定出的频率分界点C

S67、将第一数据流分配给硬件进行转发处理。

具体步骤参见步骤S13的描述,此处不再赘述。

步骤S64-步骤S66,实现了根据各数据流的报文转发频率的分布情况和硬件与软件的处理比例,确定第一数据流和第二数据流的频率分界点,将报文转发频率大于频率分界点的数据流确定为第一数据流,报文转发频率不大于频率分界点的数据流确定为第二数据流。

本实施例通过对对报文转发频率PPS在频率轴上落点的统计,作为对数据流的转发处理速度的统计结果,减少了数据统计量。因此,大大降低了系统资源消耗,减少了内存使用量。并且本实施例还利用移位运算数据流计算包组在频率轴的落点位置,从而取代了传统的除法运算,简化了统计方法,并且极大地提高了系统计算的性能。

由于数据流可以通过多个维度来表示数据流的转发速度,常用的有PPS(Packagesper Second)、BPS(Bytes per Second)或者数据流报文转发的持续时长t等多维度表示。上述实施例通过举例说明如何利用数据流报文转发的持续时长t,以及PPS来判断第一数据流。显而易见地,本发明还可以应用到其他各种表征数据流的参数的统计中,如BPS等,以判断第一数据流和第二数据流,本发明不做具体的限定。

基于同一发明构思,本发明实施例还提供了一种数据流处理装置,可以设置在如图10所示的网络中继设备或网络转发设备中,该装置的结构如图10,包括统计模块71、确定模块72、以及控制模块73。

统计模块71,用于周期性统计数据流中转发指定数量的一组报文的持续时长。

确定模块72,用于根据每个数据流的持续时长、硬件的数据处理能力,确定符合设定条件的第一数据流。

控制模块73,用于将所述第一数据流分配给硬件进行转发处理。

在一个可选的实施例中,统计模块71,用于周期性统计转发数据流中指定数量的一组报文的持续时长,包括:针对每个数据流,以包含预设报文数量的报文包组为单位,周期性统计每个报文包组中的报文转发处理的起始时间和结束时间,得到报文包组的所述持续时长。

在一个可选的实施例中,统计模块71,用于周期性统计转发数据流中指定数量的一组报文的持续时长,包括:

对于在硬件和软件中进行转发处理的数据流均由软件统计数据流中指定数量的一组报文的持续时长,统计时将在硬件中进行转发处理的数据流转移到软件中进行一段时间的转发处理;或

对于在硬件中进行转发处理的数据流由硬件统计数据流中指定数量的一组报文的持续时长,对于在软件中进行转发处理的数据流由软件统计数据流中指定数量的一组报文的持续时长。

在一个可选的实施例中,确定模块72,用于根据每个数据流的持续时长、硬件的数据处理能力,确定符合设定条件的第一数据流,包括:

根据硬件的数据处理能力,结合待处理的数据流数量,确定硬件的处理比例;

根据统计到的各数据流的所述持续时长的分布情况和硬件的处理比例,确定时长分界点;

将持续时长小于所述时长分界点的数据流确定为第一数据流。

其中,确定模块72,具体用于根据每个数据流的持续时长、预先建立的时间轴的起终点和预设的时长单位,确定每个数据流在时间轴上的落点位置;时间轴的起点小于等于统计得到的持续时长的最小值,终点大于等于统计得到的持续时长的最大值;根据时间轴上各时长单位对应的时间轴长度内包含的落点个数和硬件的处理比例,确定时间轴上的时长分界点;将落点位于时间轴起点到时长分界点之间的数据流确定为第一数据流,将落点位于时长分界点到时间轴终点之间的数据流确定为第二数据流。

在一个可选的实施例中,确定模块72,用于根据每个数据流的持续时长、硬件的数据处理能力,确定符合设定条件的第一数据流,包括:

根据硬件的数据处理能力,结合待处理的数据流数量,确定硬件的处理比例;根据数据流的持续时长和一组报文包含的报文数量,得到数据流的报文转发频率;

根据各数据流的报文转发频率的分布情况和硬件处理比例,确定频率分界点;

将报文转发频率大于频率分界点的数据流确定为第一数据流。

其中,确定模块72,具体用于根据统计到的每个数据流的报文转发频率、预先建立的频率轴的起终点和预设的频率单位,确定每个数据流在频率轴上的落点位置;频率轴的起点小于统计得到的所述报文转发频率的最小值,终点大于统计得到的所述报文转发频率的最大值;根据频率轴上各频率单位对应的频率轴长度内包含的落点个数和硬件的处理比例,确定频率轴上的频率分界点;将落点位于频率分界点到频率轴终点之间的数据流确定为第一数据流,将落点位于频率轴起点到频率分界点之间的数据流确定为第二数据流。

在一个可选的实施例中,控制模块73,用于将所述第一数据流分配给硬件进行转发处理,包括:

若属于所述第一数据流中的数据流正在软件中进行转发处理,将其转移到硬件中进行转发处理;

若不属于所述第一数据流中的数据流正在硬件中进行转发处理,将其转移到软件中进行转发处理;

若属于所述第一数据流中的数据流正在硬件中进行转发处理或不属于所述第一数据流中的数据流正在软件中进行转发处理,则保持不变。

本发明实施例还提供了另一种数据流分类装置,可以设置在数据流量控制设备中,该装置的结构如图11,包括统计模块81和确定模块82。

统计模块81,用于用于周期性统计数据流中转发指定数量的一组报文的持续时长。具体功能实现参考图10中相关功能模块。

确定模块82,用于根据每个数据流的持续时长、硬件的数据处理能力,确定符合设定条件的第一数据流。具体功能实现参考图10中相关功能模块。

基于同一发明构思,本发明实施例还提供了一种数据流处理系统,其结构图如12,包括:数据发送设备91、数据转发设备92和数据接收设备93。

数据发送设备91和数据接收设备93,可以是移动终端、个人计算机或者处理不同业务的服务器,用于发送或者接收数据。

数据转发设备92,设置上述数据流量控制装置,用于接收各数据发送设备发送的数据,根据数据的源地址、发送端口、目的地址、接收端口和所使用的数据协议,将接收到的数据分配到不同的数据流中,在数据流量控制装置的控制下通过硬件或软件将数据流转发至数据接收设备。

实现本发明实施例提供的上述数据流处理方法的一种系统架构,可以如图13所示,通过负载均衡和传输节点102处理网络101和网络服务器103之间传输的数据流。其中,负载均衡和传输节点102作为数据转发设备实现数据流的中转处理,可以处理网络101的用户设备作为数据发送设备发送到作为数据接收设备的网络服务器103的数据,比如网络服务器1、网络服务器2、……、网络服务器N等;或者处理网络服务器103作为数据发送设备发送到作为数据接收设备的网络101的用户设备的数据。

在该系统中,来自网络101的用户设备的海量网络数据流,会发送到负载均衡和传输节点102进行转发处理,对海量数据流进行分析,确定其中的第一数据流和第二数据流,将确定出的第一数据流分配给硬件,由硬件将需要发送的数据流1、数据流2、……、数据流N,转发至相应的网络服务器1、网络服务器2、……、网络服务器N进行处理;将确定出的第二数据流分配给软件,由软件将需要发送数据流1、数据流2、……、数据流N,转发至相应的网络服务器1、网络服务器2、……、网络服务器N进行处理。网络服务器103处理完毕的数据,会返回负载均衡和传输节点102,由负载均衡和传输节点102进行上述类似的分配和转发处理,将数据返回给网络101中不同的用户设备,用户通过用户设备接收到各自的数据。

本发明实施例还提供一种计算机可读存储介质,其上存储有计算机指令,该指令被处理器执行时实现上述的数据流处理方法和/或数据流分类方法。

本发明实施例还提供一种计算机设备,包括存储器,处理器及存储在存储器上并可在处理器上运行的计算机程序,所述处理器执行所述程序时实现上述的数据流处理方法和/或数据流分类方法。

由于上述数据流处理装置、系统、计算机可读存储介质和计算机设备等所解决问题的原理与前述方法相似,因此其具体实现过程可以参见前述方法的实施,重复之处不再赘述。

本领域内的技术人员应明白,本发明的实施例可提供为方法、装置、设备、或存储介质和计算机设备。因此,本发明可采用完全硬件实施例、完全软件实施例、或结合软件和硬件方面的实施例的形式。而且,本发明可采用在一个或多个其中包含有计算机可用程序代码的计算机可用存储介质(包括但不限于磁盘存储器和光学存储器等)上实施的计算机程序产品的形式。

本发明是参照根据本发明实施例的方法、设备(系统)、和计算机程序产品的流程图和/或方框图来描述的。应理解可由计算机程序指令实现流程图和/或方框图中的每一流程和/或方框、以及流程图和/或方框图中的流程和/或方框的结合。可提供这些计算机程序指令到通用计算机、专用计算机、嵌入式处理机或其他可编程数据处理设备的处理器以产生一个机器,使得通过计算机或其他可编程数据处理设备的处理器执行的指令产生用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的装置。

这些计算机程序指令也可存储在能引导计算机或其他可编程数据处理设备以特定方式工作的计算机可读存储器中,使得存储在该计算机可读存储器中的指令产生包括指令装置的制造品,该指令装置实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能。

这些计算机程序指令也可装载到计算机或其他可编程数据处理设备上,使得在计算机或其他可编程设备上执行一系列操作步骤以产生计算机实现的处理,从而在计算机或其他可编程设备上执行的指令提供用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的步骤。

显然,本领域的技术人员可以对本发明进行各种改动和变型而不脱离本发明的精神和范围。这样,倘若本发明的这些修改和变型属于本发明权利要求及其等同技术的范围之内,则本发明也意图包含这些改动和变型在内。

相关技术
  • 一种数据流处理及分类方法、装置和系统
  • 一种GPU上数据流处理系统及其数据流处理方法
技术分类

06120113079239