CN115988574A - 基于流表的数据处理方法、系统、设备和存储介质 - Google Patents
基于流表的数据处理方法、系统、设备和存储介质 Download PDFInfo
- Publication number
- CN115988574A CN115988574A CN202310277919.4A CN202310277919A CN115988574A CN 115988574 A CN115988574 A CN 115988574A CN 202310277919 A CN202310277919 A CN 202310277919A CN 115988574 A CN115988574 A CN 115988574A
- Authority
- CN
- China
- Prior art keywords
- data
- flow
- flow table
- statistical period
- type
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Granted
Links
- 238000003860 storage Methods 0.000 title claims abstract description 42
- 238000003672 processing method Methods 0.000 title claims abstract description 19
- 238000012545 processing Methods 0.000 claims abstract description 170
- 238000000034 method Methods 0.000 claims abstract description 88
- 238000004364 calculation method Methods 0.000 claims description 41
- 230000006870 function Effects 0.000 claims description 26
- 230000009471 action Effects 0.000 claims description 10
- 238000013507 mapping Methods 0.000 claims description 9
- 230000008569 process Effects 0.000 abstract description 53
- 238000004891 communication Methods 0.000 description 19
- 241000406668 Loxodonta cyclotis Species 0.000 description 14
- 238000010586 diagram Methods 0.000 description 9
- 230000000694 effects Effects 0.000 description 6
- 238000013459 approach Methods 0.000 description 5
- 230000004044 response Effects 0.000 description 5
- 241000699666 Mus <mouse, genus> Species 0.000 description 2
- 238000005516 engineering process Methods 0.000 description 2
- 241000699670 Mus sp. Species 0.000 description 1
- 240000007594 Oryza sativa Species 0.000 description 1
- 235000007164 Oryza sativa Nutrition 0.000 description 1
- 230000008859 change Effects 0.000 description 1
- 230000006835 compression Effects 0.000 description 1
- 238000007906 compression Methods 0.000 description 1
- 238000012217 deletion Methods 0.000 description 1
- 230000037430 deletion Effects 0.000 description 1
- 238000013461 design Methods 0.000 description 1
- 238000011161 development Methods 0.000 description 1
- 238000005111 flow chemistry technique Methods 0.000 description 1
- 230000003993 interaction Effects 0.000 description 1
- 238000004519 manufacturing process Methods 0.000 description 1
- 238000013508 migration Methods 0.000 description 1
- 230000005012 migration Effects 0.000 description 1
- 238000010295 mobile communication Methods 0.000 description 1
- 238000012986 modification Methods 0.000 description 1
- 230000004048 modification Effects 0.000 description 1
- 235000009566 rice Nutrition 0.000 description 1
- 230000003068 static effect Effects 0.000 description 1
- 238000007619 statistical method Methods 0.000 description 1
- 238000006467 substitution reaction Methods 0.000 description 1
- 238000012795 verification Methods 0.000 description 1
Images
Landscapes
- Data Exchanges In Wide-Area Networks (AREA)
Abstract
本发明实施例提供一种基于流表的数据处理方法、系统、设备和存储介质,该方法包括:数据处理系统可以根据历史第一类数据流确定当前统计周期内第二类数据流的数据包数量。然后,根据数据包数量确定出第二类数据流中存在的新增第一类数据流。即数据处理系统可以按照上述过程对数据流的类型进行动态的分类。数据处理系统还可以根据分类结果动态地将第一类数据流的流表更新到第一设备中。到达下一统计周期时,数据处理系统可以利用第一设备更新后的流表处理数据包处理本统计周期内属于第一类数据流的数据包。也即是通过第一设备内流表的更新,能够准确地将实现一统计周期内属于不同类型数据流的数据包分流给不同设备,使不同设备之间实现负载均衡。
Description
技术领域
本发明涉及通信技术领域,尤其涉及一种基于流表的数据处理方法、系统、设备和存储介质。
背景技术
随着第五代移动通信技术(5th Generation Mobile CommunicationTechnology,简称5G)的不断发展,5G通信网络可以在满足低时延、高吞吐、高并发等要求的前提下应用到多种场景从而为用户提供多种服务。比如直播服务、扩展现实(ExtendedReality,简称XR)服务、自动驾驶服务、对工业流水线上智能制造装备的控制服务等等。
用户设备(User Equipment,简称UE)在正常使用上述各种服务的过程中,以及服务提供方在保证服务高可用性而执行各种策略的过程中,都可以产生数量众多、流量大小不一的数据流,数据流可以由多个数据包组成。
对于数量众多的数据流,5G通信网络通常采用负载均衡的方式进行处理,因此,如何实现数据流处理的负载均衡就成为一个亟待解决的问题。
发明内容
有鉴于此,本发明实施例提供一种基于流表的数据处理方法、系统、设备和存储介质,用以保证数据流处理的负载均衡。
第一方面,本发明实施例提供一种基于流表的数据处理方法,应用于第二设备,包括:
在当前统计周期内,根据历史第一类数据流确定所述当前统计周期内的第二类数据流的数据包数量;
若根据所述数据包数量确定出所述当前统计周期内的第二类数据流中存在新增第一类数据流,则将所述新增第一类数据流对应的新增流表由所述数据处理系统的第二设备更新到所述数据处理系统的第一设备中;
在下一统计周期内,根据所述新增流表处理属于所述新增第一类数据流的数据包;
其中,数据流的类型与任一统计周期内属于所述数据流的数据包的数量对应。
第二方面,本发明实施例提供一种基于流表的数据处理系统,包括:第一设备和第二设备,所述第一设备包括第一统计模块、存储模块和处理模块;
所述第一统计模块,用于在当前统计周期内,根据历史第一类数据流,确定所述当前统计周期内的第二类数据流的数据包数量;
若根据所述数据包数量确定出所述当前统计周期内的第二类数据流中存在新增第一类数据流,则将所述新增第一类数据流对应的新增流表由所述第二设备更新到所述存储模块中;
所述处理模块,用于在下一统计周期内,根据所述新增流表处理属于所述新增第一类数据流的数据包;
其中,数据流的类型与任一统计周期内所述数据流的数据包数量对应。
第三方面,本发明实施例提供一种基于流表的数据处理装置,包括:
确定模块,用于在当前统计周期内,根据历史第一类数据流确定所述当前统计周期内的第二类数据流的数据包数量;
获取模块,用于若根据所述数据包数量确定出所述当前统计周期内的第二类数据流中存在新增第一类数据流,则将所述新增第一类数据流对应的新增流表由所述数据处理系统的第二设备更新到所述数据处理系统的第一设备中;
数据包处理模块,用于在下一统计周期内,根据所述新增流表处理属于所述新增第一类数据流的数据包;
其中,数据流的类型与任一统计周期内属于所述数据流的数据包的数量对应。
第四方面,本发明实施例提供一种电子设备,包括处理器和存储器,所述存储器用于存储一条或多条计算机指令,其中,所述一条或多条计算机指令被所述处理器执行时实现上述第一方面中的基于流表的数据处理方法。该电子设备还可以包括通信接口,用于与其他设备或通信系统通信。
第五方面,本发明实施例提供了一种非暂时性机器可读存储介质,所述非暂时性机器可读存储介质上存储有可执行代码,当所述可执行代码被电子设备的处理器执行时,使所述处理器至少可以实现如上述第一方面中的基于流表的数据处理方法。
本发明实施例提供的基于流表的数据处理方法,数据处理系统可以根据历史第一类数据流确定当前统计周期内的第二类数据流的数据包数量。若根据此数据包数量确定出上述的第二类数据流中存在新增第一类数据流,则将此新增第一类数据流对应的新增流表由数据处理系统的第二设备更新到第一设备中。也即是当前统计周期内的至少一个第二类数据流会在本统计周期内确定为新增第一类数据流,并在下一统计周期内作为第一类数据流进行处理。当到达下一统计周期后,数据处理系统可以用上述的新增流表处理属于新增第一类数据流的数据包。数据流的类型与一统计周期内属于该数据流的数据包的数量对应。
在实际中,数据流的类型是动态变化的,而在上述过程中,在任一统计周期内,数据处理系统可以利用历史第一数据流确定该周期内的第二类数据流的数据包数量,并根据此数量实现数据流的动态分类,也即是参考历史第一类数据流的历史分类结果确定在未来不同时间内形成的第一类数据流,保证分类结果的准确。
另外,数据处理系统还可以根据分类结果动态地将第一类数据流的流表更新到第一设备中。到达下一统计周期时,数据处理系统可以利用第一设备更新后的流表处理数据包处理本统计周期内属于第一类数据流的数据包。也即是通过第一设备内流表的更新,能够准确地将实现一统计周期内属于不同类型数据流的数据包分流给不同设备,使不同设备之间实现负载均衡。
附图说明
为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作一简单地介绍,显而易见地,下面描述中的附图是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
图1为本发明实施例提供的一种基于流表的数据处理方法的流程图;
图2为本发明实施例提供的一种第二类数据流的数据包数量的统计方式的流程图;
图3为本发明实施例提供的一种新增第一类数据流判断方式的流程图;
图4为本发明实施例提供的另一种基于流表的数据处理方法的流程图;
图5为本发明实施例提供的另一种第二类数据流的数据包数量的统计方式的流程图;
图6为本发明实施例提供的一种数据处理系统的结构示意图;
图7为本发明实施例提供的另一种数据处理系统的结构示意图;
图8为本发明实施例提供的一种部署在5G通信网络中的数据处理系统的结构示意图;
图9为将本发明实施例提供的方法和系统应用到5G通信网络中的示意图;
图10为本发明实施例提供的一种基于流表的数据处理装置的结构示意图;
图11为本发明实施例提供的一种电子设备的结构示意图。
具体实施方式
为使本发明实施例的目的、技术方案和优点更加清楚,下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有作出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
在本发明实施例中使用的术语是仅仅出于描述特定实施例的目的,而非旨在限制本发明。在本发明实施例和所附权利要求书中所使用的单数形式的“一种”、“所述”和“该”也旨在包括多数形式,除非上下文清楚地表示其他含义,“多种”一般包含至少两种,但是不排除包含至少一种的情况。
应当理解,本文中使用的术语“和/或”仅仅是一种描述关联对象的关联关系,表示可以存在三种关系,例如,A和/或B,可以表示:单独存在A,同时存在A和B,单独存在B这三种情况。另外,本文中字符“/”,一般表示前后关联对象是一种“或”的关系。
取决于语境,如在此所使用的词语“如果”、“若”可以被解释成为“在……时”或“当……时”或“响应于确定”或“响应于识别”。类似地,取决于语境,短语“如果确定”或“如果识别(陈述的条件或事件)”可以被解释成为“当确定时”或“响应于确定”或“当识别(陈述的条件或事件)时”或“响应于识别(陈述的条件或事件)”。
还需要说明的是,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的商品或者系统不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种商品或者系统所固有的要素。在没有更多限制的情况下,由语句“包括一个……”限定的要素,并不排除在包括所述要素的商品或者系统中还存在另外的相同要素。
下面可以结合附图对本发明的一些实施方式作详细说明。在各实施例之间不冲突的情况下,下述的实施例及实施例中的特征可以相互组合。另外,下述各方法实施例中的步骤时序仅为一种举例,而非严格限定。
在对本发明下述各实施例进行详细描述之前,可以先对本发明下述各实施例涉及到的相关概念进行解释:
大象流(Elephant Flow):在网络中大量、持续产生的数据包所构成的数据流。可选地,数据包可以是支持OpenFlow协议的数据包。可选地。在进行虚拟机的数据迁移、利用MapReduce等编程模型进行大规模计算的过程中产生的数据流通常为大象流。
老鼠流(Mice Flow):与大象流相对的,网络中少量、间断产生的数据包所构成的数据流。也即是除了大象流之外的数据流均可以认为是老鼠流。可选地,在发邮件、看网页、使用即时通信软件过程中产生的数据流通常为老鼠流。
流表:数据包的处理规则和转发规则的集合。
流表项:流表中记录的一条规则。一个流表项具体又包括包头和动作。其中,包头可以包括数据包的源地址、目的地址、源端口号、目的端口号、协议类型等至少一种属性信息。动作可以包括数据包的处理方式,处理方式具体可以包括转发(forward)、丢弃(drop)、修改数据包内容(modify-field)、将数据包加入缓存队列(enqueue)等等。
承接背景技术中的描述,用户在借助UE使用不同服务的过程中,以及服务提供方在保证服务高可靠而执行某些策略的过程中都可以产生数量众多、流量大小不一的数据流。这些数据流中的数据包可以被本发明下述各实施例中提及的数据处理系统接收并进行处理。数据处理系统接收到的大量的数据流可以是不同类型的,并且同一数据流的类型还可以是动态变化的。
其中,数据流的类型与该数据流中包含的数据包的数量对应。可选地,一数据流中包含的数据包的数量较大时,该数据流可以为第一类数据流,反之为第二类数据流。在实际中,第一类数据流通常可以认为是大象流,第二类数据流通常可以认为是老鼠流。
本发明下述各实施例提供的基于流表的数据处理系统以及方法对数据包的处理过程概括来说可以是:在当前时间,数据处理系统在接收数据包的同时,还可以根据在历史时间确定出的数据流类型,周期性地对当前时间接收到的数据包所属的数据流进行动态分类,并根据分类结果选择从存储于不同设备的流表中查询得到该数据包对应的流表项,并按照查询到的流表项中的动作进行数据包的处理,以实现数据包处理的负载均衡。
基于上述描述,下面可以借助以下各实施例分别从流程和系统角度详细介绍数据包的处理过程。
图1为本发明实施例提供的一种基于流表的数据处理方法的流程图。本发明实施例提供的该方法可以由数据处理系统执行,该系统可以包括第一设备和第二设备。如图1所示,该方法可以包括如下步骤:
S101,在当前统计周期内,根据历史第一类数据流确定当前统计周期内的第二类数据流的数据包数量。
在当前统计周期内,数据处理系统在接收数据包的同时还可以对接收到的数据包进行计数,以得到属于第二类数据流的数据包的数量。可选地,统计周期的长度T可以在数据处理系统部署时预先设置,比如2秒。
对于数据包的具体统计过程,对于在当前统计周期内接收到任一数据包,一种可选地方式,数据处理系统可以根据该数据包的标识信息确定该数据包归属的数据流。然后,将该数据包的标识信息与系统内存储的历史第一类数据流的标识信息进行比对即可知晓该数据包是否属于历史第一类数据流。可选地,数据包的标识信息可以包含于数据包的包头中。其中,历史第一类数据流可以是在当前统计周期之前的任一统计周期内确定出的第一类数据流,并且历史第一数据流的确定方式可以与下述新增第一类数据流的确定方式相同。
另一种可选地方式,数据处理系统可以根据该数据包的标识信息确定该数据包归属的数据流。然后,将该数据包的标识与系统内存储的历史第一类数据流对应的历史流表的标识信息进行比对以确定该数据包是否属于历史第一类数据流。
若按照上述任一方式确定出该数据包归属的数据流不是历史第一类数据流,表明该数据包归属的数据流为第二类数据流,则该数据包归属的第二类数据流的数据包数量加一。可选地,在当前统计周期内,第二类数据流可以是至少一个,则按照上述方式,数据处理系统能够统计出当前统计周期内不同第二类数据流各自的数据包数量。
S102,若根据数据包数量确定出当前统计周期内的第二类数据流中存在新增第一类数据流,则将新增第一类数据流对应的新增流表由数据处理系统的第二设备更新至数据处理系统的第一设备中。
之后,数据处理系统还可以根据步骤S101中统计出的数据包数量确定前统计周期内是否存在新增第一类数据流。若存在,则可以获取该新增第一类数据流对应的新增流表并将该新增流表存储于第一设备中。其中,数据处理系统的第二设备可以存储有数据处理系统处理过的各数据流对应的流表,也即是第二设备中可以存储有历史第一类数据流对应的历史流表、新增流表以及剩余流表,则可以从第二设备中获取新增流表并存储于第一设备中。实际中,数据处理系统所处理的数据流的数量可以是千万数量级的。
其中,可选地,第一设备可以部署有可编程专用集成电路(Application SpecificIntegrated Circuit,简称ASIC)。可编程ASIC具体可以集成有多种可编程逻辑器件(Programmable Logic Device,简称PLD)。可编程ASIC还可以集成有静态随机存取存储器(Static Random-Access Memory,简称SRAM)。可选地,第二设备可以是具有存储功能服务器。
可选地,两设备之间可以建立有通信连接,二者可以以分布部署的方式部署在通信网络的网络边缘。可选地,根据数据处理系统处理的数据流的数量多少,还可以动态调整第二设备的数量。
对于新增第一类数据流的判断过程,一种可选地方式,数据处理系统在按照步骤S101所示方式统计第二类数据流的数据包数量的同时,还可以对当前统计周期内整个数据处理系统接收到的数据包总量进行统计。若任一第二类数据流的数据包数量与数据包总量的比值大于预设比例阈值p-thre,表明在当前统计周期内,属于此任一第二类数据流的数据包数量较多,则可以将此任一第二类数据流确定为新增第一类数据流。该任一数据流在到达下一统计周期时,数据处理系统可以将其作为第一类数据流进行处理。
可见,在不同的统计周期内,根据一数据流中数据包的多少,该数据流可以由第一类数据流变化为第二类数据流,也可以由第二类数据流变化为第一类数据流。
S103,在下一统计周期内,根据新增流表处理属于新增第一类数据流的数据包。
数据处理系统通过上述统计能够在当前周期确定出新增第一数据流,则在达到下一统计周期后,在下一统计周期内,数据处理系统可以对接收到一数据包进行处理:
此数据包可以属于新增第一类数据流(即下一统计周期内的第一类数据流),则数据处理系统可以从第一设备中读取该数据流对应的新增流表,并从新增流表中查询与该数据包对应的流表项,以按照此流表项包含的动作处理此数据包。其中,数据包以及查询到的、与数据包对应的流表项具有相同的包头。
本实施例中,数据处理系统可以根据历史第一类数据流确定当前统计周期内的第二类数据流的数据包数量。若根据此数据包数量确定出上述的第二类数据流中存在新增第一类数据流,则将此新增第一类数据流对应的新增流表由数据处理系统的第二设备更新到第一设备中。也即是当前统计周期内的至少一个第二类数据流会在本统计周期内确定为新增第一类数据流,并在下一统计周期内作为第一类数据流进行处理。当到达下一统计周期后,数据处理系统可以用上述的新增流表处理属于新增第一类数据流的数据包。数据流的类型与一统计周期内属于该数据流的数据包的数量对应。
在实际中,数据流的类型是动态变化的,而在上述过程中,在任一统计周期内,数据处理系统可以利用历史第一数据流确定该周期内的第二类数据流的数据包数量,并根据此数量实现数据流的动态分类,也即是参考历史第一类数据流的历史分类结果确定在未来不同时间内形成的第一类数据流,保证分类结果的准确。
另外,数据处理系统还可以根据分类结果动态地将第一类数据流的流表更新到第一设备中。到达下一统计周期时,数据处理系统可以利用第一设备更新后的流表处理数据包处理本统计周期内属于第一类数据流的数据包。也即是通过第一设备内流表的更新,能够准确地将实现一统计周期内属于不同类型数据流的数据包分流给不同设备,使不同设备之间实现负载均衡。
基于上述实施例中的描述,在下一统计周期内,可选地,数据处理系统接收到的一数据包还可以属于历史第一类数据流,则数据处理系统同样可以从第一设备中读取该数据流对应的历史流表,并根据从中查询到的流表项处理此数据包。
可选地,数据处理系统接收到的一数据包还可以属于下一统计周期内的第二类数据流,则数据处理系统可以从第二设备中读取剩余流表,并从剩余流表中查询到此数据包对应的流表项,以按照此流表项进行数据包的处理。其中,剩余流表可以为第二设备中存储的除历史流表和新增流表之外的流表。可选地,不同数据流对应的流表可以预先生成并存储到第二设备中。
需要说明的有,上述实施例中的各步骤具体可以由数据处理系统的第一设备执行。更具体来说,各步骤可以由第一设备中不同的功能模块执行,即步骤101和步骤S102可以由第一设备中的第一统计模块执行,历史流表和新增流表可以存储于第一设备的存储模块中。步骤S103可以由第一设备中的处理模块执行。可选地,上述各模块可以集成到第一设备的可编程ASIC上。此部分也可以结合下述图6~图8所示数据处理系统理解。
在图1所示实施例中公开了根据标识信息对当前统计周期内第二类数据流的数据包数量进行统计的基础上,另一种可选地统计方式还可以如图2所示。图2为本发明实施例提供的一种第二类数据流的数据包数量统计方式的流程图。如图2所示,该方式可以包括以下步骤:
S1011,获取第一数据包以及历史第一类数据流对应的历史流表,第一数据包为当前统计周期内产生的任一数据包,历史流表存储于第一设备中。
S1012,若历史流表中不存在第一目标流表项,则确定第一数据包属于当前统计周期内的第二类数据流,第一目标流表项和数据包具有相同的包头。
S1013,将当前统计周期内的第二类数据流的数据包数量加一。
在当前统计周期内,数据处理系统可以接收到在该统计周期内产生的任一数据包即第一数据包,同时还可以从第一设备中读取历史第一类数据流对应的历史流表。然后,可以根据第一数据包的包头在历史流表中进行查询。一种情况,若在历史流表中未查询到与第一数据包具有相同包头的第一目标流表项,则确定此第一数据包属于当前统计周期内的第二类数据流。此时,数据处理系统可以从第二设备中读取相应的流表以进一步完成该数据包处理。
另一种情况,若在历史流表中查询到与第一数据包具有相同包头的第一目标流表项,则确定此第一数据包属于历史第一类数据流,则数据处理系统可以直接利用此第一目标流表项中的动作处理此数据包。
需要说明的有,本实施例中的各步骤具体可以由第一设备中的第一统计模块执行。
本实施例中,在当前统计周期内,数据处理系统可以通过查询流表项的方式确定数据包归属的数据流是历史第一类数据流,还是该统计周期内的第二类数据流。根据判断结果在实现数据包数量统计的同时,还可以直接获取到属于历史第一类数据流的数据包的处理方式,从而能够提高历史第一数据流中数据包的处理效率。
在图1所示实施例中提供的新增第一类数据流判断方式的基础上,另一种可选地判断方式还可以如图3所示。图3为本发明实施例提供的一种新增第一类数据流的判断方式的流程图。如图3所示,该方式可以包括以下步骤:
S1021,在到达当前统计周期时,获取根据预设比例阈值和在上一统计周期内产生的数据包的总量确定出的判断阈值,判断阈值适用于当前统计周期。
S1022, 比较判断阈值与当前统计周期内的第二类数据流的数据包数量,以确定当前统计周期内的第二类数据流中是否存在新增第一类数据流。
S1023,若当前统计周期内的第二类数据流的数据包数量大于适用于当前统计周期的判断阈值,则确定当前统计周期内存在新增第一数据流。
在到达当前统计周期时,数据处理系统可以根据预设比例阈值p-thre以及上一统计周期内产生的数据包的总量r确定适用于当前统计周期的判断阈值j-thre。可选地,上述各参数之间的关系可以表示为:p-thre*r=j-thre。其中,预设比例阈值p-thre可以在数据处理系统部署之前预先设置,r可以认为是数据处理系统在上一统计周期内的总负载或者总吞吐。
举例来说,预设比例阈值p-thre=0.001,数据处理系统处理的数据流的数量可以是千万数量级的,则在一个统计周期内产生的的数据包总量r也可以是千万数量级的,比如r=5000万,则判断阈值j-thre=50万。
然后,通过比较判断阈值j-thre与当前统计周期内第二类数据流的数据包数量,确定是否存在新增第一类数据流。
一种情况,若当前统计周期内的第二类数据流的数据包数量≥判断阈值j-thre,则确定存在当前统计周期的第二类数据流中存在新增第一数据流,并且当前统计周期内的新增第一类数据流会在下一统计周期内被当前第一类数据流进行处理。另一种情况,若数据包数量<判断阈值j-thre,则确定当前统计周期内不存在新增第一类数据流,也即是当前统计周期内的第二类数据流在下一统计周期内依旧被当做第二类数据流进行处理。其中,当前统计周期内第二类数据流的数据包数量可以参照图1或图2所示实施例中提供的方式确定。
需要说明的有,本实施例中的各步骤可以由第一设备中的第一统计模块执行。并且对于执行上述步骤中使用到的“上一统计周期的接收到的数据包的总量r”,其可以由第一设备中的第二统计模块进行统计,可选地,该第二统计模块可以借助计数器(counter)实现统计。对于执行上述步骤中使用到的“预设比例阈值p-thre”,其可以存储于第二设备的阈值管理模块中。
上述的判断阈值j-thre的计算可以由第一统计模块执行,也可以由阈值管理模块执行。当判断阈值j-thre的计算由第一统计模块执行时,预设比例阈值p-thre可以在数据处理系统部署时预先发送至第一统计模块。当判断阈值j-thre的计算由阈值管理模块执行时,该模块还可以在每个统计周期开始之前将适用于该统计周期的判断阈值j-thre预先下发至第一统计模块。
本实施例中,在当前统计周期内,数据处理系统可以根据预设比例阈值p-thre和数据包总量r计算判断阈值j-thre,以由利用此判断阈值j-thre确定当前统计周期内是否存在新增第一类数据流。使用这种判断方法时,使用的是“比较”这种计算方式,从而能够减轻数据处理系统的计算压力,更具体来说是减轻第一设备中第一统计模块的计算压力。
可见,上述图1和图3所示实施例给出的数据流类型判断的思路为:将一第二类数据流在一统计周期内的数据包数量占该统计周期内各数据流的数据包总量的实际比例是否超过预设比例阈值p-thre,也即是任一第二类数据流在该统计周期内的数据包数量是否超过适用于该统计周期内数据的判断阈值j-thre。由于同一数据流在不同统计周期内的实际比例可能是不同的(或者是适用于不同统计周期的判断阈值j-thre可以是不同的),因此,同一数据流可以在不同统计周期内被确定为第一类数据流或者第二类数据流,因此,数据流类型的判断可以按照统计周期定时进行。
则为了更准确地判断数据流类型,在当前统计周期内,数据处理系统可以进行数据包数量的统计,并在到达下一统计周期时将在当前统计周期内统计出的第二类数据流的数据包数量清零。同时,在到达下一统计周期时,也可以利用适用于下一统计周期的判断阈值j-thre更新适用于当前统计周期的判断阈值j-thre。
其中,上述数据清零以及阈值更新的过程也即是在达到下一统计周期时,将第一设备在上一统计周期中得到的数据进行更新的过程。而清零和更新过程具体可以由数据处理系统中的第三设备控制执行。可选地,第三设备可以分别与第一设备和第二设备之间建立通信连接。可选地,第三设备可以以集中部署的方式部署在通信网络的网络中心。
在按照上述各实施例提供的方法可以实现不同类型的数据流在第一设备和第二设备之间的负载均衡。可选地,数据处理系统中的第二设备为K个,其中,K大于1。可选地,第二设备的数量可以在部署数据处理系统之前预先确定。并且数据处理系统接收到的不同数据流各自对应的流表可以分布式地存储于这K个第二设备中。
基于此,数据处理系统还可以实现相同类型的数据流在不同第二设备之间的负载均衡。其中,设备的负载大小可以认为是利用从该设备存储的流表中查询到流表项进行处理的数据包的数量。则实现K个第二设备之间的负载均衡也即是归属某一统计周期内的第二类数据流的数据包能够较为平均分配给K个第二设备。并且与数据处理系统的总负载r类似的,第二设备的负载也可以称为第二设备的吞吐。
下面可以具体说明多个第二设备之间实现负载均衡的过程。图4为本发明实施例提供的另一种基于流表的数据处理方法的流程图。如图4所示,该方法可以包括如下步骤:
S201,在当前统计周期内,根据历史第一类数据流确定当前统计周期内的第二类数据流的数据包数量。
S202,若根据数据包数量确定出当前统计周期内的第二类数据流中存在新增第一类数据流,则将新增第一类数据流对应的新增流表由数据处理系统中的第二设备更新至数据处理系统的第一设备中。
上述步骤S201~步骤S202的具体实现过程可以参见图1~图3所示实施例中相关步骤的具体描述,在此不再赘述。其中,执行步骤S202所需的预设比例阈值p-thre可以设置为足够小,比如p-thre<<1/KlogK,K为数据处理系统中第二设备的数量。
S203,在下一统计周期内,根据新增流表处理属于新增第一类数据流的数据包。
S204,在下一统计周期内,对第二数据包的包头进行哈希计算,第二数据包为属于下一统计周期内的第二类数据流的任一数据包。
S205,将哈希计算结果作为地址向除历史流表和新增流表之外的剩余流表映射,以在剩余流表中确定与第二数据包具有相同包头的第二目标流表项,哈希计算结果为小于预设数量的正整数,剩余流表分布式存储于数据处理系统包含的预设数量的第二设备中。
S206,按照第二目标流表项包含的动作处理第二数据包。
在下一统计周期内,当数据处理系统可以根据接收到的数据包的标识信息判断该数据包属于新增第一类数据流还是属于第二类数据流。根据判断结果数,处理系统可以通过查询第一设备中的新增流表处理属于新增第一类数据流的数据包。
为了描述清晰,可以将属于下一统计周期内的第二类数据流的任一数据包称为第二数据包。此时,若数据处理系统判断出接收到的是第二数据包,则可以利用预设哈希函数对第二数据包的包头进行哈希计算,并将哈希计算结果作为地址向除历史流表和新增流表之外的剩余流表进行映射,并根据映射得到的第二目标流表项包含的动作处理第二数据包。其中,地址映射过程可以为:将哈希结果作为地址在第二设备中存储的剩余流表中进行匹配,以得到与第二数据包具有相同包头的第二目标流表项。
另外,本实施例中使用到的预设哈希函数可以是任一种哈希函数,并且该哈希函数需要满足以下条件:
1、对任意key1,key2,如果key1=key2,那么Hash(key1)=Hash(key2)
2、对任意key,有1≤Hash(key)≤K
3、对任意key1,key2,如果key1和key2不同,那么Hash(key1)=Hash(key2)的概率趋近于1/K
其中,key表示数据包的包头, Hash(key)表示包头的哈希计算结果,K表示使用哈希函数计算后所能得到的最大哈希计算结果,即哈希函数的哈希取值范围为[1~K]。
另外,在数据处理系统部署时设置的预设比例阈值p-thre还可以满足p-thre<<1/KlogK。
则在同时满足上述条件时,发明人通过验证发现,对于数据处理系统接收到的大量的数据流,K个第二设备的负载都大概率(with high probablity)的满足以下公式:
。
其中,分别为K个第二设备各自的负载大小。
满足上述公式也即是表明K个第二设备的最大负载接近于r/K,再去除由第一设备处理的、属于第一类数据流的数据包,则在一统计周期内,K个第二设备可以平均地处理属于该统计周期内的第二类数据流的数据包,也即是在一统计周期内,第二类数据流可以在K个第二设备之间实现负载均衡。
需要说明的有,本实施例中的各步骤可以由第一设备执行,此时,第一设备可以借助与第二设备之间的通信连接从第二设备中读取剩余流表,从而实现步骤S205中的地址映射。
本实施例中,数据处理系统可以根据预设比例阈值p-thre和哈希取值范围为[1~K]的哈希函数,可以实现相同类型的数据流在不同第二设备之间的负载均衡。另外,本实施例中未详细描述的内容以及所能达到的技术效果可以参见上述实施例中的描述,在此不再赘述。
在实际中,数据流类型的变化速度不同且规律性不强,则可选地,可以根据需求设置不同长度的统计周期从而按照上述各实施例提供的方式灵活及时地确定数据流的类型,从而最终实现第一设备和第二设备之间的负载均衡,也可以实现多个第二设备之间的负载均衡。
在上述各实施例提供的方法中,在实现不同设备以及相同设备之间的负载均衡都会使用到当前统计周期内第二类数据流的数据包数量。可选地,数据包数量的统计具体可以由数据处理系统中设置的预设数量的寄存器实现。
则图5为本发明实施例提供的另一种第二类数据流的数据包数量统计方式的流程图。如图5所示,该方式可以包括以下步骤:
S301,获取第三数据包,第三数据包为属于当前统计周期内的第二类数据流的任一数据包。
S302,利用预设数量的哈希函数,分别对第三数据包的包头进行哈希计算。
S303,将哈希计算结果作为地址分别映射到预设数量的寄存器包含的目标触发器中,以使目标触发器中的计数值加一。
在数据处理系统获取到当前统计周期内第二类数据流中的任一数据包即第三数据包后,数据处理系统可以利用预设数量的哈希函数分别对第三数据包的包头进行哈希计算,以得到预设数量的哈希计算结果。其中,判断接收到的数据包是否是第三数据包的过程可以参见图1或图2所示实施例中的相关描述,在此不再赘述。其中,寄存器可以是m个并且各寄存器长度为b,即各寄存器可以包括b个触发器构成,触发器可以作为计数器使用。哈希函数可以是m个。m,b可以在系统部署时预先设置。
然后,将m个哈希计算结果作为地址分别向m个寄存器各自包含的b个触发器进行映射,以得到映射成功的m个目标触发器,此时,此m个目标触发器各自的计数值加一。其中,m个目标触发器的地址与m个哈希计算结果相同。
与图4所示实施例中使用的哈希函数不同,本实施例中使用到的哈希函数可以是任一种函数,但使用的哈希函数需要满足以下条件:
1、对任意key1,key2,如果key1=key2,那么Hash(key1)=Hash(key2)
2、对任意key,有1≤Hash(key)≤b
3、对任意key1,key2,如果key1和key2不同,那么Hash(key1)=Hash(key2)的概率趋近于1/b
其中,key表示数据包的包头, Hash(key)表示包头的哈希计算结果,b表示使用哈希函数计算后所能得到的最大哈希计算结果,即哈希函数的哈希取值范围为[1~b]。其中,b和第二设备的数量K之间没有必然的大小关系。
需要说明的有,本实施例中的各步骤也可以由第一设备执行,具体来说可以由第一设备中的第一统计模块执行,m个寄存器可以设置在第一统计模块中。
在一个统计周期内,数据处理系统需要处理的第二类数据流可以是大量的,因此,在该统计周期内可以分别统计各第二类数据流的数据包数量以确定各第二类数据流在该统计周期内是第二类数据流还是新增第一类数据流。相比于第二数据流的数量与触发器一一对应,本实施例中,利用哈希函数的压缩映射特性,借助m个长度为b的寄存器即m*b个触发器即可实现大量第二类数据流的数据包数量的统计,从而节省数据处理系统中的寄存器资源。
基于图5所示的利用寄存器实现数据包统计的方式,在当前统计周期结束时,若m个目标触发器中的最小计数值大于适用于当前统计周期的判断阈值j-thre,则确定当前统计周期内的第二类数据流中存在新增第一类数据流。
而在实际中,为了保证数据流分类的准确性,还可以设置不同的判断阈值j-thre。
一种情况,若当前统计周期不是数据处理系统第一个接收到数据包的统计周期,也即是即在上一统计周期内产生了数据包,则当到达当前统计周期时,数据处理系统可以根据预设比例阈值p-thre和在上一统计周期内产生的数据包的总量确定适用于当前统计周期的判断阈值j-thre。具体确定过程可以参见图3所示实施例中的相关描述。此种情况下,考虑到第二类数据流的数据包数量是周期性统计的,因此,当到达当前统计周期时,数据处理系统还可以将上一统计周期内统计出的第二类数据流的数据包数量清零,也即是将用于统计的寄存器各自包含的触发器中的计数值清零。
需要说明的有,在本实施例中,判断阈值j-thre也可以由数据处理系统中的第三设备执行,具体是由该设备中的阈值管理模块执行。当到达任一统计周期时,阈值管理模块可以将适用于本统计周期的判断阈值下发至第一设备中的第一统计模块。
本实施例中,通过数量的清零和判断阈值的更新能够保证上一统计周期的统计结果对当前统计周期产生影响,提高当前统计周期内数据流类型判断的准确性,从而最终实现不同类型数据流在第一设备和第二设备之间的负载均,实现相同类型数据流在多个第二设备之间的负载均衡。
另一种情况,若当前统计周期是数据处理系统第一个接收到数据包的统计周期,即在上一统计周期未产生数据包,则在到达当前统计周期时,数据处理系统可以将m个寄存器各自包含的触发器的计数上限值确定为适用于当前统计周期的判断阈值j-thre。由于该计数上限值是在统计周期内未产生数据包时使用的,因此,该计数上限值可以认为是对触发器设置的初始值。此种情况下,为了进一步提高第二类数据流的数据包数量统计的准确性,可以将寄存器各自包含的触发器中的计数值清零。
需要说明的有,在本实施例中,第三设备中的阈值管理模块可以将触发器的计数上限值确定为判断阈值j-thre并下发至第一设备中的第一统计模块。
在当前统计周期为数据处理系统第一个接收到数据包的统计周期时,若按照图3所示方式,则确定出的判断阈值j-thre为零,此时,在当前统计周期内接收到的各数据包所属的数据流都可以被认定为新增第一类数据流。而在当前统计周期内获取到的数据流并显然不一定都是第一类数据流,会影响后续真正的第一类数据流的处理,从而无法实现上述各实施例提及的负载均衡的效果。而在本实施例中将触发器的计数上限值作为判断阈值j-thre进行数据流的分类,可以改善上述将当前统计周期内获取到的数据流都认定为第一类数据流的问题。
可选地,在按照上述方式确定出新增第一类数据流后,第一设备可以获取该数据流的新增流表。其中,上述获取过程具体可以借助数据处理系统的第三设备实现:当第一设备中的第一统计模块确定出当前统计周期内存在新增第一类数据流时,第一统计模块可以将属于该新增第一类数据流的数据包的包头作为数据流的标识作为上报给第三设备,以由第三设备从第二中读取该新增第一类数据流的新增流表并将新增流表存储于第一设备的存储模块中。其中,控制新增流表的写入具体可以由第三设备中的流表管理模块执行。
在当前统计周期是数据处理系统第一个接收到数据包的统计周期时,通过将计数上限值设置为判断阈值,能够减少数据流标识的上报次数,从而节省数据处理系统的上报通道的带宽。
可选地,第三设备还可以包括流表生成模块,该模块可以响应于UE生成的控制指令,以生成各数据流对应的流表并控制这些流表存储于第二设备中。
另外,本发明上述各实施例提供的方法还可以达到以下效果:
1、适用于基于P4(programming protocol-independent packet processors)语言开发的可编程ASIC。
具体地,对于上述各实施例中提及的第一设备~第三设备,根据图1所示实施例中的描述可知,可选地,第一设备可以部署有可编程ASIC,即第一设备中的第一统计模块可以集成在可编程ASIC上,此时,由于在图1~图5所示的实施例中,第一设备在进行数据包数量统计、数据流类型判断过程中使用的是加、减、哈希计算以及比较这几种简单的计算方式,不涉及乘除、巡回等复杂的计算方式,可编程ASIC的计算方式较为简单,计算压力较小,尤其适用于支持计算方式较少的P4语言开发的可编程ASIC。
2、数据处理系统可以部署在5G通信网络中。
具体地,系统中的第一设备和第二可以共同用于提供5G核心网的用户面功能,即二者可以共同构成用户面设备。该用户面设备可以认为是5G核心网中表现为硬件形式的用户面功能网元(User Plane Function,简称UPF)。系统中的第三设备可以用于提供5G核心网的控制面功能也即是控制面设备。该控制面设备可以认为是5G核心网中表现为硬件形式的、与UPF网元有数据交互的任一控制面功能网元,比如接入和移动管理功能(Access andMobility Management Function,简称AMF)网元、会话管理功能(Session ManagementFunction,简称SMF)网元等等。可选地,第三设备和第一设备可以是一一对应或多对一的关系。可选地,5G通信网络具体可以是专用网络或者公用网络,专用网络具体又可以表现为云网络或者是本地化网络,公用网络也可以具体表现为云网络或者是本地化网络。
3、第一设备无状态。
具体地,第二设备中可以存储有数据处理系统处理的各数据流对应的流表,第三设备中存储有每个统计周期所使用的预设比例阈值p-thre或者预设判断阈值j-thre。第一设备可以从第二设备和第三设备获取处理数据包所需的参数和流表,从而实现设备之间的负载均衡。由于第一设备处理数据包的过程中所用的参数和流表都是其他设备获取的,因此,能够实现第一设备的无状态,也即是当第一设备发生故障时,在重启第一设备或者直接更换新的第一设备后,第三设备中的阈值管理模块可以自动下发相关参数,第二设备中的历史流表也可以随着数据系统的运行不断写入第一设备的存储模块中。
综合上述各实施例可知,第二设备中存储有数据处理系统处理过的各数据流对应的流表,而在不同统计周期内确定出的第一类数据流对应的流表可以存储在第一设备中,在不同统计周期内确定出的第二数据流对应的流表可以存储在第二设备中,以分别由不同设备处理不同类型的数据流,从而实现第一设备和第二设备之间的负载均衡,也可以实现多个第二设备之间的负载均衡。
容易理解的,第一设备中会存储越来越多的流表,又考虑到第一设备的存储空间有限即存储模块的存储空间有限,则当确定出当前统计周期存在新增第一类数据流,并且历史流表已经写满第一设备的存储空间时,数据处理系统可以根据多张历史流表写入第一设备时间确定待删除的目标历史流表,并控制第一设备将目标历史流表从存储模块中删除,之后再控制将新增第一类数据流对应的新增流表写入存储模块。可选地,可以优先将最早写入存储模块的历史流表确定为目标历史流表。
其中,上述流表的删除和写入过程可以由数据处理系统中的第三设备控制,更具体来说是第三设备中的流表管理模块控制。可选地,流表管管理模块可以创建一个集合(set)以记录历史第一类数据流的标识,再创建一个队列(queue)以记录历史第一类数据流的产生顺序。
可选地,存储模块提供的存储空间size的大小可以根据第一统计模块中寄存器的数量m和长度b确定。可选地,可以按照以下公式确定:。
其中,,其中,X为一个统计周期内确定出的新增第一类数据流的数量,p-thre为预设比例阈值,M为当前统计周期内全部数据流的数量,m为寄存器的数量,b为寄存器的长度,和e为中间参数。
在实际中,可以先确定p-thre、m和b,在基于上述公式确定和e。并且当p-thre<<1/KlogK时,m、b与具有负相关关系,因此,在设置存储空间size的大小时,可以选择合适的存储空间大小,以达到寄存器数量与存储空间之间的平衡。当存储模块集成在可编程ASIC上时,合理的存储空间大小在实现设备之间负载均衡的同时还可以节省芯片上的存储资源。
在实际中,一种可选地设置方式
在上述各方法实施例的基础上,下面还可以从系统的角度说明数据的处理过程。则图6为本发明实施例提供的一种流表处理系统的结构示意图。如图6所示,该系统可以包括第一设备和第二设备,其中第一设备具体可以包括第一统计模块、存储模块和处理模块。
其中,第一统计模块用于在当前统计周期内,根据历史第一类数据流,确定当前统计周期内的第二类数据流的数据包数量。若根据数据包数量确定出当前统计周期内的第二类数据流中存在新增第一类数据流,则将新增第一类数据流对应的新增流表由第二设备更新至第一设备的存储模块中。该模块的具体工作过程可以参见上述图1~图5中的相关描述,在此不再赘述。
处理模块,用于在下一统计周期内,根据新增流表处理属于新增第一类数据流的数据包,根据剩余流表处理属于下一统计周期内的第二类数据流的数据包。
其中,数据流的类型与任一统计周期内数据流的数据包数量对应,剩余流表存储于第二设备中。
本实施例中各模块的具体工作过程以及所能达到的技术效果均可以参见上述相关实施例中的相关描述,在此不再赘述。
可选地,图7为本发明实施例提供的另一种流表处理系统的结构示意图。如图7所示,在图6所示系统的基础上,该系统可以包括还可以包括:第三设备,第三设备中包括阈值管理模块,第一设备中还包括第一统计模块。
第二统计模块,用于统计在上一统计周期内产生的数据包的总量。该模块统计出的总量用于使阈值管理模块在到达当前统计周期时,根据上述总量确定适用于当前统计周期的判断阈值j-thre。
第一统计模块,用于接收判断阈值j-thre;比较判断阈值j-thre与当前统计周期内的第二类数据流的数据包数量,以确定当前统计周期内的第二类数据流中是否存在新增第一类数据流。
可选地,第三设备中还可以包括流表管理模块,则第一统计模块还可以向流表管理模块上报确定出的新增第一类数据流,则当历史流表未写满存储模块时,流表管理模块可以用于从第二设备中获取该新增第一类数据流对应的新增流表并将其写入存储模块中。当历史流表写满存储模块时,流表管理模块可以历史流表的写入时间确定待删除的目标历史流表。并在删除所述目标历史流表后,控制新增流表写入存储模块。可选地,目标历史流表可以是最早写入的流表。
可选地,第三设备中还可以包括流表生成模块,该模块可以响应于UE生成的控制指令,以生成各数据流对应的流表并控制这些流表存储于第二设备中。
本实施例中各模块的具体工作过程以及所能达到的技术效果均可以参见上述相关所示实施例中的相关描述,在此不再赘述。
可选地,当数据处理系统具体部署在5G通信网络时,图7所示的数据处理系统还可以表示为图8所示。
则下面可以以部署在5G通信网络中的数据处理系统为例,对上述各实施例提供的方法和系统的具体实现过程进行描述。下述过程也可以结合图9理解。
部署在5G通信网络中的数据处理系统可以如图9所示,该系统中第一设备具体可以表现为支持P4语言的可编程ASIC,第二设备可以为外部服务器(后续简称服务器),上述两设备可以构成硬件形式的UPF网元,第三设备可以认为是硬件形式的控制面功能网元,比如AMF网元或者SMF网元。
并且系统中第一设备包含的第一统计模块可以设置有m个b长度为寄存器,第一设备中存储模块的存储空间大小为size,第三设备的阈值管理模块计算判断阈值j-thre时使用的预设比例阈值p-thre以及该系统的统计周期T都可以在系统部署时预先设置。一种可选地设置方式,m=5,b=20000, p-thre=0.001,T=2,size=4200。
并且为了保证数据流类型确定的准确性以及减小第一统计模块上报新增第一类数据流的次数,可以将m个寄存器各自包含的触发器的计数值上限确定为初始的判断阈值j-thre。
基于此,数据处理系统的工作过程可以为:
在初始阶段统计周期不会产生数据包。随着时间的增长,系统在统计周期1首次接收到了数据包,第一统计模块可以确定统计周期1的数据包总量r,并基于预设比例阈值p-thre计算出适用于统计周期2的判断阈值j-thre。则在统计周期2完成后,第一统计模块即可根据判断阈值j-thre确定统计周期2内是否存在新增大象流,若存在则将此大象流的标识信息上报给流表管理模块,以由该模块从服务器中读取新增大象流对应的新增流表,并将此新增流表写入存储模块中。新增大象流的判断过程可以参见上述各实施例中的相关描述。其中,服务器中存储有系统之前处理过程的各数据流对应的流表,该流表可以利用系统中的流表生成模块生成。
在到达统计周期3时,数据包依次输入第二统计模块、存储模块。若在存储模块中存储的流表中查询到数据包对应的流表项,表明此数据包为在统计周期3内产生的、属于新增大象流或者历史大象流的数据包,处理模块可以利用中查询到的流表项中的动作处理数据包。
若未在存储模块中存储的流表中查询到数据包对应的流表项,表明此数据包为在统计周期3内产生的、属于非大象流的数据包,则处理模块可以通过对数据包的包头进行哈希计算,并将哈希计算结果作为地址映射到某一个服务器中,以从该服务器存储的流表中查询到数据包对应的流表项并处理。
而存储模块中流表的写入和删除过程可以参见上述各实施例中的相关描述,在此不再赘述。
以下将详细描述本发明的一个或多个实施例的基于流表的数据处理装置。本领域技术人员可以理解,这些数据处理装置均可使用市售的硬件组件通过本方案所教导的步骤进行配置来构成。
图10为本发明实施例提供的一种基于流表的数据处理装置的结构示意图,如图10所示,该装置包括:
数量确定模块11,用于在当前统计周期内,根据历史第一类数据流确定所述当前统计周期内的第二类数据流的数据包数量。
获取模块12,用于若根据所述数据包数量确定出所述当前统计周期内的第二类数据流中存在新增第一类数据流,则将所述新增第一类数据流对应的新增流表由数据处理系统的第二设备更新至所述数据处理系统的第一设备中。
数据包处理模块13,用于在下一统计周期内,根据所述新增流表处理属于所述新增第一类数据流的数据包;其中,数据流的类型与任一统计周期内属于所述数据流的数据包的数量对应。
可选地,数据包处理模块13,用于在所述下一统计周期内,根据所述第二设备中的剩余流表处理属于所述下一统计周期内的第二类数据流的数据包。
可选地,所述数量确定模块11,具体用于获取第一数据包以及所述历史第一类数据流对应的历史流表,所述第一数据包为所述当前统计周期内产生的任一数据包,所述历史流表存储于所述第一设备中;若所述历史流表中不存在第一目标流表项,则确定所述第一数据包属于所述当前统计周期内的第二类数据流,所述第一目标流表项和所述数据包具有相同的包头;将所述当前统计周期内的第二类数据流的数据包数量加一。
其中,所述第一设备和所述第二设备用于提供核心网的用户面功能,所述核心网部署于专用网络,所述专用网络表现为云网络或本地化网络。
可选地,所述装置还包括:阈值确定模块和比较模块。
所述阈值确定模块,用于在到达所述当前统计周期时,获取根据所述预设比例阈值和在上一统计周期内产生的数据包的总量,确定出的判断阈值,所述判断阈值适用于所述当前统计周期。
所述比较模块,用于比较所述判断阈值与所述当前统计周期内的第二类数据流的数据包数量,以确定所述当前统计周期内的第二类数据流中是否存在所述新增第一类数据流。
可选地,所述数据包处理模块13,用于对第二数据包的包头进行哈希计算,所述第二数据包为属于所述下一统计周期内的第二类数据流的任一数据包;将所述哈希计算结果作为地址向除历史流表和新增流表之外的所述剩余流表映射,以在所述剩余流表中确定与所述第二数据包具有相同包头的第二目标流表项,所述哈希计算结果为小于所述预设数量的正整数;按照所述第二目标流表项包含的动作处理所述第二数据包。
其中,所述剩余流表分布式存储于所述数据处理系统包含的预设数量的第二设备中。
可选地,所述数据处理系统中设置有预设数量的寄存器;
所述数量确定模块11,具体用于获取第三数据包,所述第三数据包为属于所述当前统计周期内的第二类数据流的任一数据包;利用所述预设数量的哈希函数,分别对所述第三数据包的包头进行哈希计算;将所述哈希计算结果作为地址分别映射到所述预设数量的寄存器包含的目标触发器中,以使所述目标触发器中的计数值加一;
所述比较模块,用于若所述目标触发器中的最小计数值大于适用于所述当前统计周期的判断阈值,则确定所述当前统计周期内的第二类数据流中存在所述新增第一类数据流。
可选地,所述装置还包括数据更新模块,用于若所述上一统计周期未产生数据包,则在到达所述当前统计周期时,将所述预设数量的寄存器各自包含的触发器的计数上限值确定为适用于所述当前统计周期的判断阈值;将所述预设数量的寄存器各自包含的触发器的计数值清零。
可选地,所述数据更新模块,还用于在到达所述下一统计周期时,将确定出的所述当前统计周期内第二类数据流的数据包数量清零; 用适用于所述下一统计周期的判断阈值更新适用于所述当前统计周期的判断阈值。
可选地,所述装置还包括:流表处理模块,用于若所述历史流表写满所述第一设备的存储空间,则根据所述历史流表写入所述第一设备的时间确定待删除的目标历史流表;在删除所述目标历史流表后,写入所述新增流表。
其中,所述历史流表包括多张历史第一类数据流各自对应的流表。
可选地,所述装置还包括:设置模块,用于根据所述预设数量、所述预设长度确定所述存储空间的大小,所述预设数量、所述预设阈值和所述存储空间的大小之间具有负相关关系。
其中,所述第一设备包括支持专用编程语言的可编程专用集成电路;所述第一设备包含预设数量的寄存器,所述寄存器的长度为预设长度;
图10所示装置可以执行图1至图5所示实施例的方法,本实施例未详细描述的部分,可参考对图1至图5所示实施例的相关说明。该技术方案的执行过程和技术效果参见图1至图5所示实施例中的描述,在此不再赘述。
在一个可能的设计中,上述各实施例提供的基于流表的数据处理方法可以应用在一电子设备中,如图11所示,该电子设备可以包括:处理器21和存储器22。其中,存储器22用于存储支持该电子设备执行上述图1~图5所示实施例中提供的基于流表的数据处理方法的程序,处理器21被配置为用于执行存储器22中存储的程序。
程序包括一条或多条计算机指令,其中,一条或多条计算机指令被处理器21执行时能够实现如下步骤:
在当前统计周期内,根据历史第一类数据流确定所述当前统计周期内的第二类数据流的数据包数量;
若根据所述数据包数量确定出所述当前统计周期内的第二类数据流中存在新增第一类数据流,则将所述新增第一类数据流对应的新增流表由所述数据处理系统的第二设备更新至所述数据处理系统的第一设备中;
在下一统计周期内,根据所述新增流表处理属于所述新增第一类数据流的数据包;
其中,数据流的类型与任一统计周期内属于所述数据流的数据包的数量对应。
可选地,处理器21还用于执行前述图1~图5所示实施例中的全部或部分步骤。
其中,电子设备的结构中还可以包括通信接口23,用于该电子设备与其他设备或通信系统通信。
另外,本发明实施例提供了一种计算机存储介质,用于储存上述电子设备所用的计算机软件指令,其包含用于执行上述图1~图5所示的基于流表的数据处理方法所涉及的程序。
最后应说明的是:以上实施例仅用以说明本发明的技术方案,而非对其限制;尽管参照前述实施例对本发明进行了详细的说明,本领域的普通技术人员应当理解:其依然可以对前述各实施例所记载的技术方案进行修改,或者对其中部分技术特征进行等同替换;而这些修改或者替换,并不使相应技术方案的本质脱离本发明各实施例技术方案的精神和范围。
Claims (14)
1.一种基于流表的数据处理方法,其特征在于,应用于数据处理系统,包括:
在当前统计周期内,根据历史第一类数据流确定所述当前统计周期内的第二类数据流的数据包数量;
若根据所述数据包数量确定出所述当前统计周期内的第二类数据流中存在新增第一类数据流,则将所述新增第一类数据流对应的新增流表由所述数据处理系统的第二设备更新到所述数据处理系统的第一设备中;
在下一统计周期内,根据所述新增流表处理属于所述新增第一类数据流的数据包;
其中,数据流的类型与任一统计周期内属于所述数据流的数据包的数量对应。
2.根据权利要求1所述的方法,其特征在于,所述方法还包括;
在所述下一统计周期内,根据所述第二设备中的剩余流表处理属于所述下一统计周期内的第二类数据流的数据包。
3.根据权利要求1或2所述的方法,其特征在于,所述第一设备和所述第二设备用于提供核心网的用户面功能,所述核心网部署于专用网络,所述专用网络表现为云网络或者本地化网络。
4.根据权利要求1所述的方法,其特征在于,所述根据历史第一类数据流,确定所述当前统计周期内的第二类数据流的数据包数量,包括:
获取第一数据包以及所述历史第一类数据流对应的历史流表,所述第一数据包为所述当前统计周期内产生的任一数据包,所述历史流表存储于所述第一设备中;
若所述历史流表中不存在第一目标流表项,则确定所述第一数据包属于所述当前统计周期内的第二类数据流,所述第一目标流表项和所述数据包具有相同的包头;
将所述当前统计周期内的第二类数据流的数据包数量加一。
5.根据权利要求2所述的方法,其特征在于,所述方法还包括:
在到达所述当前统计周期时,获取根据预设比例阈值和在上一统计周期内产生的数据包的总量,确定出的判断阈值,所述判断阈值适用于所述当前统计周期;
比较所述判断阈值与所述当前统计周期内的第二类数据流的数据包数量,以确定所述当前统计周期内的第二类数据流中是否存在所述新增第一类数据流。
6.根据权利要求5所述的方法,其特征在于,所述剩余流表分布式存储于所述数据处理系统包含的预设数量的第二设备中;
所述根据剩余流表处理属于所述下一统计周期内的第二类数据流的数据包,包括:
对第二数据包的包头进行哈希计算,所述第二数据包为属于所述下一统计周期内的第二类数据流的任一数据包;
将所述哈希计算结果作为地址向除历史流表和新增流表之外的所述剩余流表映射,以在所述剩余流表中确定与所述第二数据包具有相同包头的第二目标流表项,所述哈希计算结果为小于所述预设数量的正整数;
按照所述第二目标流表项包含的动作处理所述第二数据包。
7.根据权利要求5所述的方法,其特征在于,所述数据处理系统中设置有预设数量的寄存器;所述方法还包括:
获取第三数据包,所述第三数据包为属于所述当前统计周期内的第二类数据流的任一数据包;
利用所述预设数量的哈希函数,分别对所述第三数据包的包头进行哈希计算;
将所述哈希计算结果作为地址分别映射到所述预设数量的寄存器包含的目标触发器中,以使所述目标触发器中的计数值加一;
所述比较所述判断阈值与所述当前统计周期内的第二类数据流的数据包数量,以确定所述当前统计周期内的第二类数据流中是否存在所述新增第一类数据流,包括:
若所述目标触发器中的最小计数值大于适用于所述当前统计周期的判断阈值,则确定所述当前统计周期内的第二类数据流中存在所述新增第一类数据流。
8.根据权利要求7所述的方法,其特征在于,所述数据处理系统中设置有预设数量的寄存器;所述方法还包括:
若所述上一统计周期未产生数据包,则在到达所述当前统计周期时,将所述预设数量的寄存器各自包含的触发器的计数上限值确定为适用于所述当前统计周期的判断阈值;
将所述预设数量的寄存器各自包含的触发器的计数值清零。
9.根据权利要求5所述的方法,其特征在于,所述方法还包括:
在到达所述下一统计周期时,将确定出的所述当前统计周期内第二类数据流的数据包数量清零;
用适用于所述下一统计周期的判断阈值更新适用于所述当前统计周期的判断阈值。
10.根据权利要求4所述的方法,其特征在于,所述历史流表包括多张历史第一类数据流各自对应的流表;所述方法还包括:
若所述历史流表写满所述第一设备的存储空间,则根据所述历史流表写入所述第一设备的时间确定待删除的目标历史流表;
在删除所述目标历史流表后,写入所述新增流表。
11.一种基于流表的数据处理系统,其特征在于,包括:第一设备和第二设备,所述第一设备包括第一统计模块、存储模块和处理模块;
所述第一统计模块,用于在当前统计周期内,根据历史第一类数据流,确定所述当前统计周期内的第二类数据流的数据包数量;
若根据所述数据包数量确定出所述当前统计周期内的第二类数据流中存在新增第一类数据流,则将所述新增第一类数据流对应的新增流表由所述第二设备更新到所述存储模块中;
所述处理模块,用于在下一统计周期内,根据所述新增流表处理属于所述新增第一类数据流的数据包;
其中,数据流的类型与任一统计周期内所述数据流的数据包数量对应。
12.根据权利要求11所述的系统,其特征在于,所述系统还包括:第三设备中的阈值管理模块和所述第一设备中的第二统计模块;
所述第二统计模块,用于统计在上一统计周期内产生的数据包的总量;
所述阈值管理模块,用于从所述第二统计模块获取所述总量;在到达所述当前统计周期时,根据所述总量确定适用于所述当前统计周期的判断阈值;
所述第一统计模块,用于接收所述判断阈值;比较所述判断阈值与所述当前统计周期内的第二类数据流的数据包数量,以确定所述当前统计周期内的第二类数据流中是否存在所述新增第一类数据流。
13.一种电子设备,其特征在于,包括:存储器、处理器;其中,所述存储器上存储有可执行代码,当所述可执行代码被所述处理器执行时,使所述处理器执行如权利要求1~10中任一项所述的基于流表的数据处理方法。
14.一种非暂时性机器可读存储介质,其特征在于,所述非暂时性机器可读存储介质上存储有可执行代码,当所述可执行代码被电子设备的处理器执行时,使所述处理器执行如权利要求1~10中任一项所述的基于流表的数据处理方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202310277919.4A CN115988574B (zh) | 2023-03-15 | 2023-03-15 | 基于流表的数据处理方法、系统、设备和存储介质 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202310277919.4A CN115988574B (zh) | 2023-03-15 | 2023-03-15 | 基于流表的数据处理方法、系统、设备和存储介质 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN115988574A true CN115988574A (zh) | 2023-04-18 |
CN115988574B CN115988574B (zh) | 2023-08-04 |
Family
ID=85960002
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202310277919.4A Active CN115988574B (zh) | 2023-03-15 | 2023-03-15 | 基于流表的数据处理方法、系统、设备和存储介质 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN115988574B (zh) |
Citations (14)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20140233421A1 (en) * | 2013-02-19 | 2014-08-21 | Broadcom Corporation | Application Aware Elephant Flow Identification |
WO2016107180A1 (zh) * | 2015-01-04 | 2016-07-07 | 华为技术有限公司 | 网络数据流类型检测方法及装置 |
US20180152386A1 (en) * | 2015-08-22 | 2018-05-31 | Huawei Technologies Co.,Ltd. | Data transmission method, and switch and network control system using the method |
CN110287229A (zh) * | 2019-05-30 | 2019-09-27 | 阿里巴巴集团控股有限公司 | 一种数据统计处理方法及装置 |
CN110417924A (zh) * | 2018-04-28 | 2019-11-05 | 华为技术有限公司 | 分布式设备中的报文处理方法和分布式设备 |
CN110730138A (zh) * | 2019-10-21 | 2020-01-24 | 中国科学院空间应用工程与技术中心 | 天基云雾计算架构的动态资源配置方法、系统和存储介质 |
CN111277467A (zh) * | 2020-01-23 | 2020-06-12 | 华为技术有限公司 | 一种通信装置、数据流识别方法及相关设备 |
CN111526064A (zh) * | 2020-04-03 | 2020-08-11 | 北京星网锐捷网络技术有限公司 | 一种数据流处理方法、装置、电子设备及存储介质 |
WO2021169308A1 (zh) * | 2020-02-28 | 2021-09-02 | 华为技术有限公司 | 一种数据流类型识别模型更新方法及相关设备 |
CN114244752A (zh) * | 2021-12-16 | 2022-03-25 | 锐捷网络股份有限公司 | 流量统计方法、装置和设备 |
WO2022100707A1 (zh) * | 2020-11-13 | 2022-05-19 | 华为技术有限公司 | 一种确定数据流信息的方法、装置及系统 |
WO2022111329A1 (zh) * | 2020-11-25 | 2022-06-02 | 华为技术有限公司 | 报文处理方法及设备 |
WO2022247308A1 (zh) * | 2021-05-25 | 2022-12-01 | 华为云计算技术有限公司 | 流量测量方法、装置及相关设备 |
US20220393974A1 (en) * | 2020-02-20 | 2022-12-08 | Huawei Cloud Computing Technologies Co., Ltd. | Packet Processing System and Method, Machine-Readable Storage Medium, and Program Product |
-
2023
- 2023-03-15 CN CN202310277919.4A patent/CN115988574B/zh active Active
Patent Citations (15)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20140233421A1 (en) * | 2013-02-19 | 2014-08-21 | Broadcom Corporation | Application Aware Elephant Flow Identification |
WO2016107180A1 (zh) * | 2015-01-04 | 2016-07-07 | 华为技术有限公司 | 网络数据流类型检测方法及装置 |
CN105827472A (zh) * | 2015-01-04 | 2016-08-03 | 华为技术有限公司 | 网络数据流类型检测方法及装置 |
US20180152386A1 (en) * | 2015-08-22 | 2018-05-31 | Huawei Technologies Co.,Ltd. | Data transmission method, and switch and network control system using the method |
CN110417924A (zh) * | 2018-04-28 | 2019-11-05 | 华为技术有限公司 | 分布式设备中的报文处理方法和分布式设备 |
CN110287229A (zh) * | 2019-05-30 | 2019-09-27 | 阿里巴巴集团控股有限公司 | 一种数据统计处理方法及装置 |
CN110730138A (zh) * | 2019-10-21 | 2020-01-24 | 中国科学院空间应用工程与技术中心 | 天基云雾计算架构的动态资源配置方法、系统和存储介质 |
CN111277467A (zh) * | 2020-01-23 | 2020-06-12 | 华为技术有限公司 | 一种通信装置、数据流识别方法及相关设备 |
US20220393974A1 (en) * | 2020-02-20 | 2022-12-08 | Huawei Cloud Computing Technologies Co., Ltd. | Packet Processing System and Method, Machine-Readable Storage Medium, and Program Product |
WO2021169308A1 (zh) * | 2020-02-28 | 2021-09-02 | 华为技术有限公司 | 一种数据流类型识别模型更新方法及相关设备 |
CN111526064A (zh) * | 2020-04-03 | 2020-08-11 | 北京星网锐捷网络技术有限公司 | 一种数据流处理方法、装置、电子设备及存储介质 |
WO2022100707A1 (zh) * | 2020-11-13 | 2022-05-19 | 华为技术有限公司 | 一种确定数据流信息的方法、装置及系统 |
WO2022111329A1 (zh) * | 2020-11-25 | 2022-06-02 | 华为技术有限公司 | 报文处理方法及设备 |
WO2022247308A1 (zh) * | 2021-05-25 | 2022-12-01 | 华为云计算技术有限公司 | 流量测量方法、装置及相关设备 |
CN114244752A (zh) * | 2021-12-16 | 2022-03-25 | 锐捷网络股份有限公司 | 流量统计方法、装置和设备 |
Non-Patent Citations (2)
Title |
---|
付琼霄;孙恩昌;王倩雯;李萌;张延华;: "一种高效的数据中心流表与链路联合均衡算法", 高技术通讯, no. 06 * |
姜立立;曾国荪;丁春玲;: "数据流特征感知的交换机流表智能更新方法", 计算机应用, no. 07 * |
Also Published As
Publication number | Publication date |
---|---|
CN115988574B (zh) | 2023-08-04 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
JP7039685B2 (ja) | トラフィック測定方法、デバイス、およびシステム | |
CN108776934B (zh) | 分布式数据计算方法、装置、计算机设备及可读存储介质 | |
CN103765839B (zh) | 用于网络设备内的分组处理的基于变量的转发路径结构 | |
US20240259327A1 (en) | Software load balancer to maximize utilization | |
CN106462389B (zh) | 消息通讯行为的上下文感知策略选择 | |
CN111770028A (zh) | 用于计算机网络的方法和网络设备 | |
US11467922B2 (en) | Intelligent snapshot generation and recovery in a distributed system | |
CN108476177A (zh) | 用于处理功能可扩展性的数据平面 | |
US8937945B2 (en) | Method and apparatus for optimizing usage of ternary content addressable memory (TCAM) | |
CN106972985B (zh) | 加速dpi设备数据处理与转发的方法和dpi设备 | |
KR102177574B1 (ko) | 컴퓨팅 디바이스에서 패킷 수명을 예측하기 위한 큐잉 시스템 | |
US20210029052A1 (en) | Methods and apparatuses for packet scheduling for software- defined networking in edge computing environment | |
CN110022227A (zh) | 业务处理方法、装置、设备及存储介质 | |
WO2023125380A1 (zh) | 一种数据管理的方法及相应装置 | |
CN113765812A (zh) | 一种标记报文的方法和装置 | |
Nallusamy et al. | Decision Tree‐Based Entries Reduction scheme using multi‐match attributes to prevent flow table overflow in SDN environment | |
CN111404839A (zh) | 报文处理方法和装置 | |
CN113422699B (zh) | 数据流处理方法、装置、计算机可读存储介质及电子设备 | |
EP3461083B1 (en) | Data processing method and device | |
CN116723154B (zh) | 一种基于负载均衡的路由分发方法及系统 | |
US20240022507A1 (en) | Information flow recognition method, network chip, and network device | |
CN106656870B (zh) | 一种基于储存端口的二层交换机储存方法 | |
CN114884893B (zh) | 一种转发和控制可定义的协同流量调度方法与系统 | |
CN115988574B (zh) | 基于流表的数据处理方法、系统、设备和存储介质 | |
CN114827159B (zh) | 网络请求路径优化方法、装置、设备和存储介质 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
GR01 | Patent grant | ||
GR01 | Patent grant |