使用字节分布的启发式网络流量分类.pdf

上传人:000****221 文档编号:4884242 上传时间:2018-11-21 格式:PDF 页数:28 大小:5.19MB
返回 下载 相关 举报
摘要
申请专利号:

CN201410201571.1

申请日:

2014.05.13

公开号:

CN104158750A

公开日:

2014.11.19

当前法律状态:

实审

有效性:

审中

法律详情:

实质审查的生效IPC(主分类):H04L 12/801申请日:20140513|||公开

IPC分类号:

H04L12/801(2013.01)I; H04L12/811(2013.01)I

主分类号:

H04L12/801

申请人:

马维尔国际贸易有限公司

发明人:

I·萨尼维斯基; T·卡尔达肖夫; A·普洛特尼科夫

地址:

巴巴多斯圣米加勒

优先权:

2013.05.13 US 61/822,777; 2014.05.12 US 14/275,332

专利代理机构:

北京市金杜律师事务所 11256

代理人:

酆迅

PDF下载: PDF下载
内容摘要

一种网络设备,具有计数器,这些计数器被配置为,针对数据分组的所指定部分中的多个字节位置,生成对指示与规则相对应的字节位置处所发现的值的对应关系的计数,从而在该多个字节位置中的预定字节值的出现可以被计数。分组分类器被配置为,从这些计数器接收与这些规则相对应的字节值的数量,并且基于该分析来对数据分组分组。

权利要求书

权利要求书1.  一种网络设备,包括:分组入口,被配置为接收在网络上所传输的数据分组;多个计数器,所述计数器中的多个被配置为,针对所述数据分组的所指定部分中的多个字节位置,生成对指示所述多个字节位置中的预定字节值的出现的计数;以及分组分类器,被配置为从所述计数器接收对所述字节值的出现的所述计数并且基于所述计数来对数据分组分类。2.  根据权利要求1所述的网络设备,其中所述分组分类器进一步被配置为,基于所述分类来将服务质量应用至所述数据分组。3.  根据权利要求1所述的网络设备,其中所述分组分类器进一步被配置为,基于所述分类来丢弃分组。4.  根据权利要求1所述的网络设备,其中所述分组分类器进一步被配置为,根据对所述数据分组是否与OSI模型层7应用相关联的确定,来对所述数据分组分类。5.  根据权利要求1所述的网络设备,其中分组分类器进一步被配置为,在连续且预定的位置处对所述数据分组分类。6.  根据权利要求1所述的网络设备,其中所述多个计数器中的每个计数器进一步被配置为,基于指定所述数据分组中的感兴趣部分的可重新配置的配置,在每个数据分组的相应不同的所指定的部分处对所述数据分组的字节值计数。7.  根据权利要求1所述的网络设备,其中所述多个计数器是被配置为对具有相应所述字节值的字节的出现准确地计数的硬件组件。8.  一种操作网络设备的方法,包括:在网络设备处,接收在网络上所传输的数据分组;利用一个或多个计数器,针对所述数据分组的所指定部分中的多个字节位置,生成对指示所述多个字节位置中的预定字节值的出现的计数;在分类器处,从所述计数器接收对所述字节值的出现的所述计数;以及基于所述计数对所述数据分组分类。9.  根据权利要求8所述的方法,进一步包括:在所述分类器处,基于所述分类来将服务质量应用至字节。10.  根据权利要求8所述的方法,进一步包括:在所述分类器处,基于所述分类来丢弃分组。11.  根据权利要求8所述的方法,其中所述分组分类器的所述分类确定所述数据分组是否与OSI模型层7应用相关联。12.  根据权利要求8所述的方法,其中所述预定字节位置由所述分类器设置,使得所述数据分组的所指定部分是连续的。13.  根据权利要求8所述的方法,进一步包括:由所述一个或多个计数器重新配置将在所述数据分组之中被计数的所指定部分的字节位置的范围。14.  根据权利要求8所述的方法,其中硬件组件执行对所述多个字节位置中的预定字节值的出现的所述计数。15.  一种网络设备,包括:计数器,被配置为生成指示数据分组内的字节值类型的出现的相应计数;以及分组分类器,被配置为基于所述计数来对所述数据分组分类。16.  根据权利要求15所述的网络设备,其中所述分组分类器进一步被配置为,基于所述分类丢弃所述分组。17.  根据权利要求15所述的网络设备,其中所述分组分类器的所述分类是确定所述数据分组是否与OSI模型层7应用相关联。18.  根据权利要求15所述的网络设备,其中所述分组分类器进一步被配置为,基于所述分类来将服务质量应用至所述数据分组。19.  根据权利要求15所述的网络设备,其中所述计数器是被配置为对具有相应所述字节值的字节的出现准确地计数的硬件组件。20.  根据权利要求15所述的网络设备,进一步包括:分组聚合 器,被配置为聚合包括所述数据分组的多个数据分组的所述字节值,其中所述计数器中的一个计数器进一步被配置为,针对聚合的所述字节值的所指定部分中的多个字节位置,生成对指示在所述聚合字节值的所指定部分中的所述多个字节位置中具有第一预定特性的字节值的出现的相应计数。

说明书

说明书使用字节分布的启发式网络流量分类
相关申请的交叉引用
本申请要求于2013年5月13日提交的美国临时专利申请No.61/822,777的优先权和权益,其公开内容通过引用以其整体并入本文。
技术领域
本公开内容涉及处理分组的网络设备。
背景技术
本文所提供的背景技术描述用于一般性地呈现本公开内容的背景的目的。当前署名的发明人的工作以其在背景技术部分中所描述的程度,以及在提交时在其他方面不够格作为现有技术的描述的方面,既不明确地也不隐含地被承认为对当前公开内容不利的现有技术。
网络流量分类常规地基于内容匹配,据此,来自比特流的字节的匹配模式与匹配比特流内容相关。然而,用于分类的常规方法通常需要复杂而昂贵的分类引擎,并且对于一些应用可能过于费时。
发明内容
本公开内容的一个或多个示例实施例一般性地涉及用于网络流量分类的系统和方法。分组入口被配置为从网络接收数据分组。该分组入口采用多个计数器。这些计数器中的各种计数器被配置为,针对这些数据分组的所指定部分中的多个字节位置,生成指示在该多个字节位置中预定字节值出现的计数。分组分类器被配置为从这些计数器接收对这些字节值的出现的计数,并且至少部分地基于所接收的计数来分类这些数据分组。
附图说明
图1示出了根据示例实施例的网络设备。
图2示出了根据示例实施例的数据解析单元,具有关于图1的数据的配置表格的配置单元,以及计数单元。
图3示出了根据示例性实施例的根据图2的配置表格而操作的计数单元。
图4示出了根据示例实施例的根据计数单元的结果而操作的分类单元。
图5示出了根据示例实施例的存储器。
图6是根据示例实施例的图1-5的流量分类设备的配置和计数操作的示例方法的流程图。
图7是根据示例实施例的图1-5的流量分类设备的分类操作的示例方法的流程图。
图8A是根据示例实施例的图1-5的流量分类设备的配置的示例方法的流程图。
图8B示出了根据示例实施例的网络设备聚合数据。
图9示出了根据示例实施例的网络设备和网络。
图10示出了根据示例实施例的网络设备。
图11是根据诸如图10中的网络设备的加载和配置的示例实施例的示例方法的流程图。
图12是根据诸如图10中的网络设备的加载和配置的示例实施例的示例方法的流程图。
图13示出了根据示例实施例的根据计数单元的结果而操作的分类单元。
图14示出了根据示例实施例的网络设备和输出单元。
图15示出了根据示例实施例的根据计数单元的结果而操作的分类单元。
图16示出了根据示例实施例的数据解析单元,具有关于图14的数据的配置表格的配置单元,以及计数单元。
具体实施方式
在下列讨论中,为了更加清楚和简明,省略了对公知的功能和构造的描述。
图1示出了网络100、网络流量101、以及流量分类设备1000。网络流量101包括数据110。流量分类设备1000是网络交换机、网桥、路由器等中的任何一种的示例,并且包括:数据解析单元200、配置单元300、计数单元400、分类单元500、处理器核心600、以及存储器700。在一个实施例中,计数单元400进一步包括表格401和表格402。流量分类设备1000的组件以示例实施例中的图1中所见的方式被布置。
在一个实施例中,数据解析单元200、配置单元300、计数单元400、分类单元500、以及存储器700中的每一个通信地耦合到处理器核心600。
根据一个示例实施例,网络流量101涉及单个网络会话,然而,根据另一个示例实施例,网络流量101涉及多个网络会话。
网络流量101的数据110包含第一字节位置111、第二字节位置112、中间字节位置113、以及末尾字节位置119。数据110的字节的位置和对应值由流量分类设备1000所分析以发现要使用正被分析的数据的应用的特性,因为流量分类设备1000是网络与一些应用之间的中介。
流量分类设备1000的数据解析单元200连接到来自网络100的网络流量101的流。数据解析单元200从网络100接收网络流量101的数据110。数据解析单元200解析数据110(其在一个示例实施例中是数据分组)以分析数据的性质,诸如分组内部的多个字节位置和数据的类型,并且将所解析的数据发送给配置单元300。
配置单元300沿着数据110设置字节位置的间隔,诸如第一间隔301、第二间隔302、和第三间隔303。每个间隔指的是数据100的一个区域内部的多个连续字节位置,通过其计数单元400将对数据100 分析和分类。配置单元300还针对每个区域指定各自的分析指令。该分析指令更新计数单元400,并指示计数单元400在字节位置的值匹配指令中所包含的说明时增加计数器。根据一个非限制性示例实施例,分析指令引起搜索匹配ASCII类型字符字节,并且计数单元400针对被确定与任意ASCII字符相对应的相应区域内的每一个字节位置增加计数器。在一个实施例中具体地实施为硬件组件或一组硬件组件的计数单元400做出这样的确定。配置单元300将具有设置间隔和分析指令的数据110发送给计数单元400。
虽然配置单元300在图1被描绘为设置仅三个间隔,但是这仅仅是一个示例实施例;这些间隔的图示定向也是一个示例实施例,并且根据示例实施例对数据之间的间隔的任意组合和顺序进行分析。在一个实施例中,配置单元300被配置为设置多于或少于三个与任意数据或多个数据分组有关的间隔。
计数单元400包含一个或多个表格,例如表格401和表格402,其分别包含与由配置单元300所设置的分析指令有关的信息。在一个实施例中,计数单元400针对每一个相应的间隔对具有与这些分析指令相对应的值的字节位置的出现而增加或计数。
在图1中所示出的示例实施例中的第一个字节的位置111位于第一间隔301之内,并且计数单元400当第一字节位置111的内容匹配针对间隔301的分析指令的特性时增加计数器。计数单元400针对(在一个示例实施例中)也存储在表格401和表格402中的相应分析指令来核对间隔301的每一个字节位置。计数单元400的操作导致一组会话属性,涉及由配置单元300所设置的分析指令。
根据一个示例实施例,计数单元400将计数的结果存储在存储器700中。根据一个示例实施例,这些结果由计数单元400传递给分类单元500,然而,根据另一个示例实施例,分类单元500从存储器700获取结果。
分类单元500基于由计数单元400所收集和所确定的数据属性来执行机器学习操作,以将至少一个网络会话分类。根据一个示例实施 例,这些数据属性被存储在存储器700中。经分类的网络会话(作为统计分析的结果被分类)基于分类被给予服务质量级别。根据一个示例实施例,当网络会话被确定为针对某些应用(诸如开放式系统互联(OSI)模型层7的非业务相关的媒体流应用)传输数据时,针对这样的会话的服务质量被设置为相比于被确定为针对业务相关应用(诸如股票经纪交易订单)的网络会话的服务质量更低。
图2示出了数据110、数据解析单元200、配置单元300、表格信息115和计数单元400。配置单元300图示了将数据110分布到第一间隔301、第二间隔302和第三间隔303中;这仅是一个示例实施例,并且根据其他示例实施例包括更多或更少的间隔。
根据一个非限制性示例实施例,数据110包含两百五十六个字节位置,由下标标为0、64、95、127、240、以及255。第一间隔301开始于数据110的第一字节位置(标为0),并结束于第九十六字节位置(标为95)。第二间隔302开始于数据110的第六十五字节位置(标为64),并结束于第一百二十八字节位置(标为127)。第三间隔303开始于数据110的第两百四十一字节位置(标为240),并结束于末尾字节位置(标为255)。根据示例实施例,这些间隔是可配置的,并且在数据110内的任何位置处的任何数量的字节或字节位置被分析。
配置单元300根据分析指令来填充表格401和表格402。表格401和表格402被图示在配置单元300中,但是这仅是一个示例实施例。表格401和表格402是由计数单元400所使用的配置设置,并且这些配置设置由数据信息115来传递。根据由图2所图示的示例实施例,表格401中包含与标记数据110的三个间隔分别相关的三个规则;然而规则的数量和类型是可配置的。在表格401中的每个规则由一个数字来表示,为了解释的简单性,并且因此该表格可被理解为包括规则1,规则1和规则3。每个规则与数据的字节位置的间隔有关,并且表格401由数字“1”图示了规则和区域之间的正关系。
配置单元300给出了用于针对匹配或对应于ASCII字符“a-z”和 “A-Z”(规则1)的任何字节的搜索第一间隔301的分析指令。配置单元300给出了用于针对匹配或对应于十六进制值“0x3F”到“0xFF”的二进制等效(规则2)的任何字节的搜索第二间隔302的分析指令。配置单元300给出了用于针对匹配或对应于特殊字符“;”、“/”、“*”、“+”和“&”(规则3)的任何字节的搜索第三间隔303的分析指令。上面的搜索是可配置的,并且不从定义各种其他分析指令来限制配置单元300。
配置单元300将表格信息115传递给计数单元400作为用于分析数据110的配置信息;然而,根据一个示例实施例,计数单元400包含通过其分析数据110的预定配置。
根据由图2所图示的示例实施例,表格402包含三个间隔301、302、和303的起始偏移和结束偏移。起始偏移和结束偏移对应于相应间隔的开始和结束字节。
根据一个示例实施例,配置单元300被配置为将填充表格401和表格402的数据存储在存储器中。
图3示出了包括数据110、表格401、和表格402的指示的计数单元400。由表格401和表格402所包含的配置设置被外部地接收,如关于图2的表格信息115所讨论的;然而,这仅是一个示例实施例,并且根据其他示例实施例,预先确定并预先设置计数单元400的配置设置。计数单元400还包括计数器410、计数器420、计数器430,结果表格415、结果表格425、以及结果表格435。计数器410对根据第一规则(规则1)具有对应于第一间隔301之内的ASCII字符“a-z”和“A-Z”的任何一个字符的值的字节或字节位置计数。计数器420对根据第二规则(规则2)具有对应于第二间隔302之内的十六进制值“0x3F”到“0xFF”的值的字节或字节位置计数。计数器430对根据第三规则(规则3)具有对应于第三间隔303之内的特殊字符“;”、“/”、“*”、“+”和“&”的值的字节或字节位置计数。虽然每个间隔对应于特定的规则,但是这仅是一个示例实施例,并且根据其他示例实施例一个或多个规则对应于多个间隔。根据一个示例实施例, 计数器410、420和430并行操作,并且为硬件组件。
结果表格415、425和435图示了相应的规则、每一个位置处的字节信息、增量、以及被发现对应于至少一个相应的规则的字节位置的增量的总计数。符号“α”指示该字节不对应于相应的规则或分析指令。结果表格415、425和435是图示操作的概念的示例实施例。为了图示的目的,这些结果表格还省略了间隔的中间位置,并且如此图示了与由相应的计数器在中间位置处计数的至少一个相应规则相对应的字节位置的总计数。
结果表格415指示了计数器410对其相应值与相应的规则或分析指令相对应的总共2字节的计数。计数器410在第一间隔301的位置1和95两处对类似字节计数,并且因此两个字节由计数器410计数,如结果表格415的总数“2”所图示。第一间隔301的剩余位置不包含与相应的规则或分析指令类似的字节。
结果表格425指示了计数器420对与相应的规则或分析指令类似的15字节的出现总数计数。计数器420在位置65和127处的类似字节,以及在中间位置处的十二个类似字节处计数。因此,十五字节由计数器420计数,如结果表格425的总数所图示。第二间隔302的剩余位置不包含与相应的规则或分析指令类似的字节。
结果表格435指示了计数器430对于相应的规则或分析指令类似的总共0字节的计数。计数器430在第三间隔303的任意位置处没有对类似字节计数。因此,零字节由计数器430计数,如结果表格435的总数所图示。
结果表格415、425和435仅是示例实施例,并根据其他示例性实施例各种其他结果被发现。包含在结果表格415、425和435中的数据被存储在存储器中并且对应于数据110的配置模式。
图4示出了分类单元500,分类单元500包括如图示并且从图3的计数单元400所接收的结果表格415、425和435。图4还图示了表格515、525和535,它们每一个分别与对结果表格415、425和435的数据所执行的统计分析有关。
表格515、525和535每一个图示了字节“#被计数的”的数量、间隔的总大小、和统计结果。既在间隔内又匹配至少一个规则的字节数量为相应的结果表格的总增量值。间隔的总大小为对应的结果表格的间隔横越其上的字节的总数量。统计结果为相比于间隔的总大小或字节的总数量而增加的字节数量的百分数。
表格515示出了在九十六字节的总间隔大小之上增加了两个字节。相应地,增加的字节数量的大小占据总间隔大小的大约2.08%。为了图示的目的,示出了近似值。
表格525示出了在六十四字节的总间隔大小之上增加了既在间隔内又匹配至少一个规则的字节的十五次出现。相应地,增加的字节数量的大小占据总间隔大小的大约23.44%。
表格535示出了在十六字节的总间隔大小之上增加了零个字节的出现。相应地,增加的字节数量的大小占据总间隔大小的0.00%。
表格515、525和535仅是示例实施例,并且根据其他示例实施例各种其他结果被发现。在表格515、525和535中所包含的数据被存储在存储器中,并且根据示例实施例,存储在存储器中的这一数据对应于配置模式。
图5示出了存储器700和存储在存储器700中的表格540。表格540包含数据时间戳、配置模式(“配置设置”)、计数器结果、和指示了在针对数据的字节的位置的间隔之内出现满足至少一个规则的字节的统计结果。表格540还包含数据行541、542、和543。根据一个示例实施例,数据时间戳对应于网络会话被发起时的时间。根据另一个示例实施例,数据时间戳对应于多个网络会话被发起时的时间。根据另一个示例实施例,表格540不包含数据时间戳。配置模式与配置单元的设置有关。
数据行541涉及关于图2-4所讨论的存储器中所存储的数据,以及网络会话被发起时的时间戳。
数据行542和543涉及针对附加数据110的附加结果,并且单纯地出于图示的目的被呈现。根据一个示例实施例,数据行542和543 涉及在相同时间处获取的相同网络会话,如由类似的数据时间戳所指示。行543的配置模式图示了相对于行542的配置模式的可替换配置模式,并且根据示例实施例,该可替换配置模式得出可替换的结果。该可替换配置模式指示了不同的分析指令被配置,通过这些不同的分析指令,相同的网络会话在不同的准则下被分析。根据一个示例实施例,表格540包含的行的数量、次数、配置设置以及结果比所示意的更多或更少。
图6是根据示例实施例当数据由流量分类设备所接收时的示例算法和方法的流程图。图6的示例方法应用至其中利用流量分类设备的多个示例实施例中。当流量分类设备从至少一个网络会话接收数据时,处理开始于连接符A、S600。处理在S601继续。
在S601处,流量分类设备解析数据。处理继续至S602。
在S602处,流量分类设备通过例如指定要被分析的数据的区域并且针对每一个数据的间隔而指定分析指令来设置配置模式。处理然后继续至S603。
在S603处,流量分类设备对在感兴趣的区域之内的字节位置处与规则相匹配的字节值的出现计数。处理经由连接符B、S700而继续至图7所示的步骤。
图7是根据示例实施例当数据由流量分类设备所接收时的示例算法和方法的流程图。图7的示例方法应用至对网络会话分类的多个示例实施例中。当流量分类设备从至少一个网络会话接收数据时,处理开始于连接符B、S700。处理在S701处继续。
在S701处,流量分类设备将结果计数数据存储在存储器中。处理继续至S702。
在S702处,流量分类设备基于结果计数数据计算统计结果。统计结果指示了匹配至少一个规则的间隔期间出现的字节的百分数。处理继续至S703。
在S703处,流量分类设备将结果统计结果存储在存储器中。处理经由连接符A、S600继续至图6所示出的步骤,并且接下来的数据 以相似的方式处理。
图8a是根据示例实施例当数据由流量分类设备所接收时的示例算法和方法的流程图。图8a的示例方法应用至其中利用流量分类设备的多个示例实施例中。当流量分类设备从至少一个网络会话接收数据时,处理开始于S800。处理在S801处继续。
在S801处,流量分类设备确定数据是否包括多个分组。
在S801处,如果数据不包括多个分组,则处理经由连接符A、S600而继续。
在S801处,如果分组包括多个分组,则处理继续至S802。
在S802处,流量分类设备将多个分组聚合到用于单个作业的数据中,借此多个分组的数据一起被分析。处理然后经由图6的连接符A、S600而继续以利用其他数据来重复循环。
图8B解释了与聚合数据有关的刚提到的示例实施例,并且示出了流量分类设备1000,流量分类设备1000与网络100对接,接收网络流量101,并且包括数据解析单元200、配置单元300、计数单元400、分类单元500、处理器核心600、和存储器700。流量分类设备1000的组件基本上与关于图1所讨论的相似,除了下面提到的部分。
图8B示出了包括网络流量101的多个分组102、103、109。为了图示,在分组103和分组109之间的中间分组被省略。
流量分类设备1000接收网络流量101的多个分组102、103、109。数据解析单元200将多个分组102、103、109聚合为聚合数据250。根据一个示例实施例,流量分类设备1000基本上以上面关于至少图1-5所讨论的方法类似的方法来处理聚合数据250。
图9示出了网络100、数据110、流量分类设备1000、结果120、数据库130、和其他网络140。根据一个示例实施例,数据库130连接到多个其他网络140。
流量分类设备1000被配置为以基本上类似于上面关于图1-5所讨论的方法来接收和处理网络100的数据。流量分类设备1000进一步被配置为,与数据库120并且随后与多个其他网络140共享其处理的 结果,诸如关于针对一个区域的分析指令的增量计数的总数量,以及随后的统计结果。根据这一示例实施例,流量分类设备1000通信地与多个其他网络140耦合。
图10示出了流量分类设备1000。流量分类设备1000经由网络接口控制器(NIC)1101与网络1100对接,并且包括分组缓冲器1102、分组解析器/聚合器1103、会话缓冲器1104、配置器1105、计数器描述符单元1106、作业队列1107、硬件计数器1108、结果队列1109、会话分析器1110、会话分类器1111、和深度分组检查(DPI)引擎1112。根据一个示例实施例,分组缓冲器1102、会话缓冲器1104、计数器描述符1106、作业队列1107、硬件计数器1108、和队列结果1109均实施为硬件组件。根据示例实施例,分组解析器/聚合器1103、配置器1105、会话分析器、会话分类器1111和DPI引擎1112均实施为可编程处理器中的软件组件。硬件组件共同地形成硬件元件1200,并且软件组件形成软件元件1300。
分组缓冲器1102被配置为保持将由分组解析器/聚合器1103来聚合的多个分组。会话缓冲器1104保持聚合数据1103b直至硬件计数器1108准备好基于作业队列1107和来自计数器描述符1106的计数器配置数据1106a两者来处理聚合数据1103。
网络1100将网络流量1100a发送给NIC1101。NIC1101将该网络流量或数据1101a发送给分组缓冲器1102。分组缓冲器1102将分组数据1102a发送给分组解析器1103。
分组解析器/聚合器1103被配置为基于从DPI引擎1112所发送的控制信号1112a来聚合分组数据1102a。
DPI引擎1112被配置为,基于如由会话分析器1110所确定的当前处理的状态,从会话分类器1111以及会话分析器1110两者接收控制信号。DPI引擎进一步被配置为将作业写入到作业队列,其由硬件计数器1108并行地实施。
分组解析器/聚合器1103向会话分析器1110发送会话元数据1103a,并且分组解析器/聚合器1103向会话缓冲器1104发送聚合分 组数据1103b。
配置器1105被配置为确定计数器配置并且将计数器配置控制信号1105a从软件发送至硬件的计数器描述符单元1106。配置器1105进一步被配置为向硬件计数器1108发送用于作业的存储器布局控制信号1105b以及将由硬件计数器1108执行的结果。
计数器描述符单元1106被配置为处理来自配置器1105的计数器配置控制信号1105a,并且向硬件计数器1108发送随后的计数器配置控制信号1106a。
硬件计数器1108被配置为,当存储器布局控制信号1105b、数据1104a、以及计数器配置控制信号1106a分别从配置器1105、会话缓冲器1104、以及计数器描述符1106接收时,处理来自作业队列1107的作业1107a。硬件计数器1108被配置为以基本上与上面关于图4所讨论的方法的并行化版本类似的方法来处理数据1104a,其中在图4中硬件计数器1108处理从作业队列1107分别去往来自网络1100的多个会话的多个作业1107a。根据一个示例实施例,该多个会话来自多个网络。
硬件计数器1108进一步被配置为将结果110Sa写至结果队列1109,所述结果队列1109然后将结果数据1109a发送给会话分析器1110。会话分析器1110以基本上与上面所标识的硬件计数器1108的并行化类似的方式来处理结果队列。会话分析器1110的关于数据1109a的结果涉及基本上与上面关于图4所讨论的那些结果类似的统计结果,然而,这仅是一个示例实施例,并且根据其他示例实施例,采用其他统计分析方法。
会话分析器1110的结果被发送给会话分类器1111用于分类以及DPI引擎1112的进一步控制。下面关于图11和12讨论用于使用图10的流量分类设备1000的非限制性示例算法和方法。
上面关于图10的对流量分类设备1000的描述仅是非限制性的示例实施例并且各种修改以及上面的公开内容的排列根据本公开内容的范围内的其他示例实施例而被执行。根据一个示例实施例,流量分 类设备1000仅包括硬件组件。
图11是根据一个示例实施例,当数据由流量分类设备接收时的示例算法和方法的流程图。图11的示例方法应用至多个示例实施例,其中流量分类设备被利用。当流量分类设备从至少一个网络会话接收数据时,处理在连接符C、S1100处开始。处理在S1101处继续。
在S1101处,用于分析的数据被加载到存储器中。该处理在S1102处继续。
在S1102处,软件将配置模式写入到该存储器中,由此设置用于硬件计数器的参数。该处理在S1103处继续。
在S1103处,软件通过专用寄存器激活硬件引擎,发起硬件处理。该处理在S1104处继续。
在S1104处,硬件从该存储器解析该配置模式。如由图12所示出的,处理经由连接符D,S1200而继续。
在图12中,当流量分类设备的硬件从至少一个网络会话接收数据时,处理在连接符D、S1200处开始。处理在S1201处继续。
在S1201处,硬件计数器根据从存储器所解析的配置模式来处理数据。处理在S1202处继续。
在S1202处,硬件将经处理的数据的结果、计数器结果写至存储器。处理在S1203处继续。
在S1203处,软件通过读取专用硬件引擎寄存器而从硬件请求该处理的状态。处理在S1204处继续。
在S1204处,软件确定硬件引擎寄存器指示硬件处理完成并且软件从存储器读取完整的结果。处理经由连接符C,在S1100处而继续到图11中所示出的步骤,并且接下来的数据以相似的方式被处理。
图13示出了分类单元500,其包括如所图示的并且从图3的计数单元400所接收的结果表格415、425、以及435。图4还图示了表格516、526、以及536,它们每个分别涉及对结果表格415、425、以及435的数据所执行的统计分析。
表格516、526、以及536每个图示了多个所增加的字节出现的数 量、间隔的总大小、统计结果、以及数据是否由于统计结果而被过滤的指示。所增加的字节的数量是相应结果表格的总增加值。间隔的总大小是在其上对应结果表格的间隔所横越的字节的总数量。在一个实施例中,统计结果是所增加的字节数量与间隔的总大小或字节总数量相比的百分数。过滤包括丢弃数据或者数据的一部分,或者以其他方式不将数据发送给过滤前(pre-filtered)的目的地中的任何一种。
表格516示出了在九十六个字节的总间隔大小之上增加了两个字节的出现。因此,所增加的字节出现的数量大小占据总间隔大小的大约2.08%。为了举例说明的目的示出了近似值。分类单元500确定该数据不应当基于统计结果而被过滤,根据一个示例实施例,2.08%低于预定的可配置的用于过滤部分数据的阈值。
表格526示出了在六十四个字节的总间隔大小之上增加了十五个字节的出现。因此,所增加的字节出现的数量大小占据总间隔大小的大约23.44%。分类单元500确定该数据应当被过滤。
表格536示出了在十六个字节的总间隔大小之上增加了零个字节的出现。因此,所增加的字节出现的数量大小占据总间隔大小的0.00%。分类单元500确定该数据不应当被过滤。
表格516、526、以及536仅是示例实施例,并且根据其他示例实施例,各种其他结果被发现。表格516、526、以及536中所包含的数据被存储在存储器中,并且根据一个示例实施例,被存储在存储器中的这一数据与配置模式相对应。
图14示出了网络100、网络流量101、流量分类设备1000、以及输出单元1400。网络流量101包括数据110。流量分类设备1000包括数据解析单元200、配置单元300、计数单元400、分类单元500、处理器核心600、以及存储器700。计数单元400进一步包括表格401和表格402。流量分类设备1000的元件的布置仅是一个示例实施例。
网络流量101的数据110包含第一字节111、第二字节112、中间字节113、以及末尾字节119。数据110的字节由流量分类设备1000来分析。
流量分类设备1000的数据解析单元200连接至来自网络100的网络流量101的流。数据解析单元200从网络100接收网络流量101的数据110。数据解析单元200解析数据110、数据分组以分析数据的性质(诸如该分组内的字节数量以及数据类型),并且将经解析的数据发送给配置单元300。
配置单元300沿着数据110设置字节的间隔,诸如第一间隔301、第二间隔302、以及第三间隔303。每个间隔指代数据110的一个区域内连续字节的数量,计数单元400将通过该区域来对数据110分析和分类。配置单元300还指定与每个区域各自的分析指令。这些分析指令更新计数单元400并且在字节匹配该指令的描述时指示计数单元400增加计数器。配置单元300将数据110与所设置的间隔和分析指令一起发送给计数单元400。
计数单元400包含表格401和表格402,它们分别包含与由配置单元300所设置的分析指令有关的信息。计数单元400对与针对每个相应间隔的分析指令相对应的字节的出现来增加或者计数。
根据一个示例实施例,计数单元400存储在存储器700中的计数结果。根据一个示例实施例,这些结果被计数单元400传递给分类单元500,然而,根据另一个示例实施例,分类单元500从存储器700获取这些结果。
分类单元500执行机器学习操作,该机器学习操作被用来基于由计数单元400所确定的所收集的数据属性来分类至少一个网络会话。根据一个示例实施例,这些数据属性被存储在存储器700中。作为分类的结果,对所分类的网络会话的至少一部分给出过滤和服务指令级别中的任何一种。根据一个示例实施例,在将数据发送给输出单元1400之前,由分类单元500从该数据过滤掉间隔302。
图15示出了分类单元500,其包括如所图示的并且从图3的计数单元400所接收的结果表格415、425、以及435。图4还图示了表格515、525、以及535,它们每个分别涉及对结果表格415、425、以及435的数据所执行的统计分析。
表格515、525、以及535的每一个图示了多个所增加的字节数量、间隔的总大小、统计结果、以及数据是否因为统计结果而具有被应用的服务质量的指示。所增加的字节的数量是相应结果表格的总增加值。间隔的总大小是在其上对应的结果表格的间隔所横越的字节的总数量。统计结果是所增加的字节数量与间隔的总大小或字节总数量相比的百分数。过滤是丢弃数据或者数据的一部分,或者以其他方式不将数据发送给过滤前的目的地中的任何一种。
表格515示出了在九十六个字节的总间隔大小上增加了两个字节。因此,所增加的字节的数量大小占据总间隔大小的大约2.08%。为了举例说明的目的示出了近似值。分类单元500确定该数据具有正常的服务质量级别。根据一个示例实施例,2.08%的统计结果不触发对服务质量级别的任何改变;然而,其他示例实施例包括将由2.08%的统计结果所触发并且将改变服务质量级别的预定可配置的阈值。
表格525示出了在六十四个字节的总间隔大小上增加了十五个字节的出现。因此,所增加的字节出现的数量大小占据总间隔大小的大约23.44%。分类单元500确定该数据具有高服务质量级别。根据一个示例实施例,23.44%的统计结果触发对服务质量级别的改变。
表格535示出了在十六个字节的总间隔大小上增加了零个字节的出现。因此,所增加的字节出现的数量大小占据总间隔大小的0.00%。分类单元500确定该数据具有低服务质量级别。根据一个示例实施例,0.00%的统计结果触发对服务质量级别的改变。
表格515、525、以及535仅是一个示例实施例,并且根据其他示例实施例,各种其他结果被发现。表格515、525、以及535中所包含的数据被存储在存储器中,并且根据一个示例实施例,被存储在存储器中的这一数据与配置模式相对应。上面所指示的服务质量级别是基于统计结果的服务质量的实施方式的非限制性示例。
图16示出了数据1600、数据解析单元200、配置单元300、表格信息1600和计数单元400。配置单元300图示了将数据1600分发到第一间隔1601、第二间隔1602、第三间隔1603、第四间隔1604、以 及第五间隔1605中。
根据一个非限制性的示例实施例,如由下标所标示的,数据1600包含两百五十六个字节。第一间隔1601以数据1600的第五字节(标为5)开始并且以第四十八字节(标为48)结束。第二间隔1602以数据1600的第三十一字节(标为31)开始并且以第七十九字节(标为79)结束。第三间隔1603以数据1600的第四十八字节(标为48)开始并且以第一百九十字节(标为190)结束。第四间隔1604完全与第三字节1603重叠并且以数据1600的第四十八字节(标为48)开始并且以第一百九十字节(标为190)结束。第五间隔1605以数据1600的第一百九十字节(标为190)开始并且以末尾字节(标为255)结束。这些间隔是可配置的,并且根据一个示例实施例来分析数据110内的任何位置处的任何数量的字节。
配置单元300根据分析质量来填充表格1650和表格1660。根据由图16所图示的示例实施例,表格1650包含三个规则:然而规则的数量和类型是可配置的。每个规则与由表格1660所示出的数据的字节的间隔或字节的位置有关,并且表格1650通过数字“1”图示了该规则与该区域之间的正关系。
配置单元300给出用于针对与特殊字符“;”、“/”、“\”、“*”、“+”、以及“&”相匹配或相对应的任何字节的分析指令,来搜索第一间隔1601、第四间隔1604、以及第五间隔1605。配置单元300给出用于针对与ASCII字符“a-z”和“A-Z”相匹配或相对应的任何字节的分析指令,来搜索第二间隔1602和第五间隔1605。配置单元300给出用于针对与二进制值“0x3F”至“0xFF”相匹配或相对应的任何字节的分析指令,来搜索第三间隔1603。上面的搜索是可配置的并且不限制配置单元300脱离定义各种其他的分析指令。
配置单元300将表格信息1610传递给计数单元400作为用于分析数据110的配置信息;然而,根据一个示例实施例,计数单元400包含预定配置,通过该预定配置来分析数据110。
根据由图16所图示的示例实施例,表格402包含三个间隔301、 302、以及303的起始偏移和结束偏移。起始偏移和结束偏移与相应间隔的开始和结束字节或字节位置相对应。
根据一个示例实施例,配置单元300被配置为将填充表格1650和表格1650的数据存储在存储器中。
计数单元400被配置为,根据之前所描述的示例实施例中的任何示例实施例来处理由至少该配置单元所指定的间隔。
尽管上面已经关于各种示例实施例描述了发明的概念,但是注意,不偏离将由所附权利要求书所限定的特征范围和技术思想,通过熟悉这一领域的技术人员,能够存在对所描述的特征的各种排列和修改。
进一步地,尽管本说明书包含许多特征,但是这些特征不应当被解释为对本公开内容或所附权利要求书的范围的限制。在分立实施例的上下文中所描述的某些特征也能够组合地被实施。相反地,在单个实施例的上下文中所描述的各种特征也能够分立地或者以任何合适的子组合地被实施在多个实施例中。
尽管附图以特定的顺序描述了操作和/或示出了组件的特定布置,但是人们不应当将这样的特定顺序和/或布置解释为限制性的,或者所有所执行的操作和所公开的组件被要求获取所期望的结果。相应地,其他的实施方式在下列权利要求书的范围内。

使用字节分布的启发式网络流量分类.pdf_第1页
第1页 / 共28页
使用字节分布的启发式网络流量分类.pdf_第2页
第2页 / 共28页
使用字节分布的启发式网络流量分类.pdf_第3页
第3页 / 共28页
点击查看更多>>
资源描述

《使用字节分布的启发式网络流量分类.pdf》由会员分享,可在线阅读,更多相关《使用字节分布的启发式网络流量分类.pdf(28页珍藏版)》请在专利查询网上搜索。

1、(10)申请公布号 CN 104158750 A (43)申请公布日 2014.11.19 CN 104158750 A (21)申请号 201410201571.1 (22)申请日 2014.05.13 61/822,777 2013.05.13 US 14/275,332 2014.05.12 US H04L 12/801(2013.01) H04L 12/811(2013.01) (71)申请人 马维尔国际贸易有限公司 地址 巴巴多斯圣米加勒 (72)发明人 I萨尼维斯基 T卡尔达肖夫 A普洛特尼科夫 (74)专利代理机构 北京市金杜律师事务所 11256 代理人 酆迅 (54) 发明名。

2、称 使用字节分布的启发式网络流量分类 (57) 摘要 一种网络设备, 具有计数器, 这些计数器被配 置为, 针对数据分组的所指定部分中的多个字节 位置, 生成对指示与规则相对应的字节位置处所 发现的值的对应关系的计数, 从而在该多个字节 位置中的预定字节值的出现可以被计数。分组分 类器被配置为, 从这些计数器接收与这些规则相 对应的字节值的数量, 并且基于该分析来对数据 分组分组。 (30)优先权数据 (51)Int.Cl. 权利要求书 2 页 说明书 11 页 附图 14 页 (19)中华人民共和国国家知识产权局 (12)发明专利申请 权利要求书2页 说明书11页 附图14页 (10)申请公。

3、布号 CN 104158750 A CN 104158750 A 1/2 页 2 1. 一种网络设备, 包括 : 分组入口, 被配置为接收在网络上所传输的数据分组 ; 多个计数器, 所述计数器中的多个被配置为, 针对所述数据分组的所指定部分中的多 个字节位置, 生成对指示所述多个字节位置中的预定字节值的出现的计数 ; 以及 分组分类器, 被配置为从所述计数器接收对所述字节值的出现的所述计数并且基于所 述计数来对数据分组分类。 2. 根据权利要求 1 所述的网络设备, 其中所述分组分类器进一步被配置为, 基于所述 分类来将服务质量应用至所述数据分组。 3. 根据权利要求 1 所述的网络设备, 其。

4、中所述分组分类器进一步被配置为, 基于所述 分类来丢弃分组。 4. 根据权利要求 1 所述的网络设备, 其中所述分组分类器进一步被配置为, 根据对所 述数据分组是否与 OSI 模型层 7 应用相关联的确定, 来对所述数据分组分类。 5. 根据权利要求 1 所述的网络设备, 其中分组分类器进一步被配置为, 在连续且预定 的位置处对所述数据分组分类。 6. 根据权利要求 1 所述的网络设备, 其中所述多个计数器中的每个计数器进一步被配 置为, 基于指定所述数据分组中的感兴趣部分的可重新配置的配置, 在每个数据分组的相 应不同的所指定的部分处对所述数据分组的字节值计数。 7. 根据权利要求 1 所述。

5、的网络设备, 其中所述多个计数器是被配置为对具有相应所述 字节值的字节的出现准确地计数的硬件组件。 8. 一种操作网络设备的方法, 包括 : 在网络设备处, 接收在网络上所传输的数据分组 ; 利用一个或多个计数器, 针对所述数据分组的所指定部分中的多个字节位置, 生成对 指示所述多个字节位置中的预定字节值的出现的计数 ; 在分类器处, 从所述计数器接收对所述字节值的出现的所述计数 ; 以及 基于所述计数对所述数据分组分类。 9. 根据权利要求 8 所述的方法, 进一步包括 : 在所述分类器处, 基于所述分类来将服务 质量应用至字节。 10. 根据权利要求 8 所述的方法, 进一步包括 : 在所。

6、述分类器处, 基于所述分类来丢弃 分组。 11. 根据权利要求 8 所述的方法, 其中所述分组分类器的所述分类确定所述数据分组 是否与 OSI 模型层 7 应用相关联。 12. 根据权利要求 8 所述的方法, 其中所述预定字节位置由所述分类器设置, 使得所述 数据分组的所指定部分是连续的。 13. 根据权利要求 8 所述的方法, 进一步包括 : 由所述一个或多个计数器重新配置将在 所述数据分组之中被计数的所指定部分的字节位置的范围。 14. 根据权利要求 8 所述的方法, 其中硬件组件执行对所述多个字节位置中的预定字 节值的出现的所述计数。 15. 一种网络设备, 包括 : 计数器, 被配置为。

7、生成指示数据分组内的字节值类型的出现的相应计数 ; 以及 权 利 要 求 书 CN 104158750 A 2 2/2 页 3 分组分类器, 被配置为基于所述计数来对所述数据分组分类。 16. 根据权利要求 15 所述的网络设备, 其中所述分组分类器进一步被配置为, 基于所 述分类丢弃所述分组。 17. 根据权利要求 15 所述的网络设备, 其中所述分组分类器的所述分类是确定所述数 据分组是否与 OSI 模型层 7 应用相关联。 18. 根据权利要求 15 所述的网络设备, 其中所述分组分类器进一步被配置为, 基于所 述分类来将服务质量应用至所述数据分组。 19. 根据权利要求 15 所述的网。

8、络设备, 其中所述计数器是被配置为对具有相应所述字 节值的字节的出现准确地计数的硬件组件。 20. 根据权利要求 15 所述的网络设备, 进一步包括 : 分组聚合器, 被配置为聚合包括所 述数据分组的多个数据分组的所述字节值, 其中所述计数器中的一个计数器进一步被配置 为, 针对聚合的所述字节值的所指定部分中的多个字节位置, 生成对指示在所述聚合字节 值的所指定部分中的所述多个字节位置中具有第一预定特性的字节值的出现的相应计数。 权 利 要 求 书 CN 104158750 A 3 1/11 页 4 使用字节分布的启发式网络流量分类 0001 相关申请的交叉引用 0002 本申请要求于 201。

9、3 年 5 月 13 日提交的美国临时专利申请 No.61/822,777 的优先 权和权益, 其公开内容通过引用以其整体并入本文。 技术领域 0003 本公开内容涉及处理分组的网络设备。 背景技术 0004 本文所提供的背景技术描述用于一般性地呈现本公开内容的背景的目的。 当前署 名的发明人的工作以其在背景技术部分中所描述的程度, 以及在提交时在其他方面不够格 作为现有技术的描述的方面, 既不明确地也不隐含地被承认为对当前公开内容不利的现有 技术。 0005 网络流量分类常规地基于内容匹配, 据此, 来自比特流的字节的匹配模式与匹配 比特流内容相关。 然而, 用于分类的常规方法通常需要复杂而。

10、昂贵的分类引擎, 并且对于一 些应用可能过于费时。 发明内容 0006 本公开内容的一个或多个示例实施例一般性地涉及用于网络流量分类的系统和 方法。分组入口被配置为从网络接收数据分组。该分组入口采用多个计数器。这些计数器 中的各种计数器被配置为, 针对这些数据分组的所指定部分中的多个字节位置, 生成指示 在该多个字节位置中预定字节值出现的计数。 分组分类器被配置为从这些计数器接收对这 些字节值的出现的计数, 并且至少部分地基于所接收的计数来分类这些数据分组。 附图说明 0007 图 1 示出了根据示例实施例的网络设备。 0008 图 2 示出了根据示例实施例的数据解析单元, 具有关于图 1 的。

11、数据的配置表格的 配置单元, 以及计数单元。 0009 图 3 示出了根据示例性实施例的根据图 2 的配置表格而操作的计数单元。 0010 图 4 示出了根据示例实施例的根据计数单元的结果而操作的分类单元。 0011 图 5 示出了根据示例实施例的存储器。 0012 图6是根据示例实施例的图1-5的流量分类设备的配置和计数操作的示例方法的 流程图。 0013 图 7 是根据示例实施例的图 1-5 的流量分类设备的分类操作的示例方法的流程 图。 0014 图 8A 是根据示例实施例的图 1-5 的流量分类设备的配置的示例方法的流程图。 0015 图 8B 示出了根据示例实施例的网络设备聚合数据。。

12、 说 明 书 CN 104158750 A 4 2/11 页 5 0016 图 9 示出了根据示例实施例的网络设备和网络。 0017 图 10 示出了根据示例实施例的网络设备。 0018 图11是根据诸如图10中的网络设备的加载和配置的示例实施例的示例方法的流 程图。 0019 图12是根据诸如图10中的网络设备的加载和配置的示例实施例的示例方法的流 程图。 0020 图 13 示出了根据示例实施例的根据计数单元的结果而操作的分类单元。 0021 图 14 示出了根据示例实施例的网络设备和输出单元。 0022 图 15 示出了根据示例实施例的根据计数单元的结果而操作的分类单元。 0023 图 。

13、16 示出了根据示例实施例的数据解析单元, 具有关于图 14 的数据的配置表格 的配置单元, 以及计数单元。 具体实施方式 0024 在下列讨论中, 为了更加清楚和简明, 省略了对公知的功能和构造的描述。 0025 图 1 示出了网络 100、 网络流量 101、 以及流量分类设备 1000。网络流量 101 包括 数据 110。流量分类设备 1000 是网络交换机、 网桥、 路由器等中的任何一种的示例, 并且包 括 : 数据解析单元 200、 配置单元 300、 计数单元 400、 分类单元 500、 处理器核心 600、 以及存 储器 700。在一个实施例中, 计数单元 400 进一步包括。

14、表格 401 和表格 402。流量分类设备 1000 的组件以示例实施例中的图 1 中所见的方式被布置。 0026 在一个实施例中, 数据解析单元 200、 配置单元 300、 计数单元 400、 分类单元 500、 以及存储器 700 中的每一个通信地耦合到处理器核心 600。 0027 根据一个示例实施例, 网络流量 101 涉及单个网络会话, 然而, 根据另一个示例实 施例, 网络流量 101 涉及多个网络会话。 0028 网络流量 101 的数据 110 包含第一字节位置 111、 第二字节位置 112、 中间字节位 置 113、 以及末尾字节位置 119。数据 110 的字节的位置和。

15、对应值由流量分类设备 1000 所 分析以发现要使用正被分析的数据的应用的特性, 因为流量分类设备 1000 是网络与一些 应用之间的中介。 0029 流量分类设备 1000 的数据解析单元 200 连接到来自网络 100 的网络流量 101 的 流。数据解析单元 200 从网络 100 接收网络流量 101 的数据 110。数据解析单元 200 解析 数据110(其在一个示例实施例中是数据分组)以分析数据的性质, 诸如分组内部的多个字 节位置和数据的类型, 并且将所解析的数据发送给配置单元 300。 0030 配置单元 300 沿着数据 110 设置字节位置的间隔, 诸如第一间隔 301、 。

16、第二间隔 302、 和第三间隔303。 每个间隔指的是数据100的一个区域内部的多个连续字节位置, 通过 其计数单元 400 将对数据 100 分析和分类。配置单元 300 还针对每个区域指定各自的分析 指令。 该分析指令更新计数单元400, 并指示计数单元400在字节位置的值匹配指令中所包 含的说明时增加计数器。根据一个非限制性示例实施例, 分析指令引起搜索匹配 ASCII 类 型字符字节, 并且计数单元 400 针对被确定与任意 ASCII 字符相对应的相应区域内的每一 个字节位置增加计数器。 在一个实施例中具体地实施为硬件组件或一组硬件组件的计数单 元 400 做出这样的确定。配置单元 。

17、300 将具有设置间隔和分析指令的数据 110 发送给计数 说 明 书 CN 104158750 A 5 3/11 页 6 单元 400。 0031 虽然配置单元 300 在图 1 被描绘为设置仅三个间隔, 但是这仅仅是一个示例实施 例 ; 这些间隔的图示定向也是一个示例实施例, 并且根据示例实施例对数据之间的间隔的 任意组合和顺序进行分析。在一个实施例中, 配置单元 300 被配置为设置多于或少于三个 与任意数据或多个数据分组有关的间隔。 0032 计数单元 400 包含一个或多个表格, 例如表格 401 和表格 402, 其分别包含与由配 置单元 300 所设置的分析指令有关的信息。在一个。

18、实施例中, 计数单元 400 针对每一个相 应的间隔对具有与这些分析指令相对应的值的字节位置的出现而增加或计数。 0033 在图 1 中所示出的示例实施例中的第一个字节的位置 111 位于第一间隔 301 之 内, 并且计数单元 400 当第一字节位置 111 的内容匹配针对间隔 301 的分析指令的特性时 增加计数器。计数单元 400 针对 ( 在一个示例实施例中 ) 也存储在表格 401 和表格 402 中 的相应分析指令来核对间隔 301 的每一个字节位置。计数单元 400 的操作导致一组会话属 性, 涉及由配置单元 300 所设置的分析指令。 0034 根据一个示例实施例, 计数单元 。

19、400 将计数的结果存储在存储器 700 中。根据一 个示例实施例, 这些结果由计数单元 400 传递给分类单元 500, 然而, 根据另一个示例实施 例, 分类单元 500 从存储器 700 获取结果。 0035 分类单元500基于由计数单元400所收集和所确定的数据属性来执行机器学习操 作, 以将至少一个网络会话分类。根据一个示例实施例, 这些数据属性被存储在存储器 700 中。经分类的网络会话 ( 作为统计分析的结果被分类 ) 基于分类被给予服务质量级别。根 据一个示例实施例, 当网络会话被确定为针对某些应用 ( 诸如开放式系统互联 (OSI) 模型 层 7 的非业务相关的媒体流应用 )。

20、 传输数据时, 针对这样的会话的服务质量被设置为相比 于被确定为针对业务相关应用 ( 诸如股票经纪交易订单 ) 的网络会话的服务质量更低。 0036 图 2 示出了数据 110、 数据解析单元 200、 配置单元 300、 表格信息 115 和计数单元 400。配置单元 300 图示了将数据 110 分布到第一间隔 301、 第二间隔 302 和第三间隔 303 中 ; 这仅是一个示例实施例, 并且根据其他示例实施例包括更多或更少的间隔。 0037 根据一个非限制性示例实施例, 数据 110 包含两百五十六个字节位置, 由下标标 为 0、 64、 95、 127、 240、 以及 255。第一。

21、间隔 301 开始于数据 110 的第一字节位置 ( 标为 0), 并结束于第九十六字节位置 ( 标为 95)。第二间隔 302 开始于数据 110 的第六十五字节位 置 ( 标为 64), 并结束于第一百二十八字节位置 ( 标为 127)。第三间隔 303 开始于数据 110 的第两百四十一字节位置 ( 标为 240), 并结束于末尾字节位置 ( 标为 255)。根据示例实施 例, 这些间隔是可配置的, 并且在数据 110 内的任何位置处的任何数量的字节或字节位置 被分析。 0038 配置单元 300 根据分析指令来填充表格 401 和表格 402。表格 401 和表格 402 被 图示在配。

22、置单元 300 中, 但是这仅是一个示例实施例。表格 401 和表格 402 是由计数单元 400所使用的配置设置, 并且这些配置设置由数据信息115来传递。 根据由图2所图示的示 例实施例, 表格401中包含与标记数据110的三个间隔分别相关的三个规则 ; 然而规则的数 量和类型是可配置的。在表格 401 中的每个规则由一个数字来表示, 为了解释的简单性, 并 且因此该表格可被理解为包括规则 1, 规则 1 和规则 3。每个规则与数据的字节位置的间隔 有关, 并且表格 401 由数字 “1” 图示了规则和区域之间的正关系。 说 明 书 CN 104158750 A 6 4/11 页 7 00。

23、39 配置单元 300 给出了用于针对匹配或对应于 ASCII 字符 “a-z” 和 “A-Z” ( 规则 1) 的任何字节的搜索第一间隔 301 的分析指令。配置单元 300 给出了用于针对匹配或对应 于十六进制值 “0x3F” 到 “0xFF” 的二进制等效 ( 规则 2) 的任何字节的搜索第二间隔 302 的分析指令。配置单元 300 给出了用于针对匹配或对应于特殊字符 “; ” 、“/” 、“*” 、“+” 和 “&” ( 规则 3) 的任何字节的搜索第三间隔 303 的分析指令。上面的搜索是可配置的, 并且 不从定义各种其他分析指令来限制配置单元 300。 0040 配置单元 300。

24、 将表格信息 115 传递给计数单元 400 作为用于分析数据 110 的配置 信息 ; 然而, 根据一个示例实施例, 计数单元 400 包含通过其分析数据 110 的预定配置。 0041 根据由图 2 所图示的示例实施例, 表格 402 包含三个间隔 301、 302、 和 303 的起始 偏移和结束偏移。起始偏移和结束偏移对应于相应间隔的开始和结束字节。 0042 根据一个示例实施例, 配置单元 300 被配置为将填充表格 401 和表格 402 的数据 存储在存储器中。 0043 图 3 示出了包括数据 110、 表格 401、 和表格 402 的指示的计数单元 400。由表格 401 。

25、和表格 402 所包含的配置设置被外部地接收, 如关于图 2 的表格信息 115 所讨论的 ; 然 而, 这仅是一个示例实施例, 并且根据其他示例实施例, 预先确定并预先设置计数单元 400 的配置设置。计数单元 400 还包括计数器 410、 计数器 420、 计数器 430, 结果表格 415、 结果 表格 425、 以及结果表格 435。计数器 410 对根据第一规则 ( 规则 1) 具有对应于第一间隔 301 之内的 ASCII 字符 “a-z” 和 “A-Z” 的任何一个字符的值的字节或字节位置计数。计数 器 420 对根据第二规则 ( 规则 2) 具有对应于第二间隔 302 之内的。

26、十六进制值 “0x3F” 到 “0xFF” 的值的字节或字节位置计数。计数器 430 对根据第三规则 ( 规则 3) 具有对应于第 三间隔 303 之内的特殊字符 “ ; ” 、“/” 、“*” 、“+” 和 “&” 的值的字节或字节位置计数。虽然 每个间隔对应于特定的规则, 但是这仅是一个示例实施例, 并且根据其他示例实施例一个 或多个规则对应于多个间隔。根据一个示例实施例, 计数器 410、 420 和 430 并行操作, 并且 为硬件组件。 0044 结果表格 415、 425 和 435 图示了相应的规则、 每一个位置处的字节信息、 增量、 以 及被发现对应于至少一个相应的规则的字节位。

27、置的增量的总计数。符号 “” 指示该字节 不对应于相应的规则或分析指令。结果表格 415、 425 和 435 是图示操作的概念的示例实施 例。 为了图示的目的, 这些结果表格还省略了间隔的中间位置, 并且如此图示了与由相应的 计数器在中间位置处计数的至少一个相应规则相对应的字节位置的总计数。 0045 结果表格415指示了计数器410对其相应值与相应的规则或分析指令相对应的总 共 2 字节的计数。计数器 410 在第一间隔 301 的位置 1 和 95 两处对类似字节计数, 并且因 此两个字节由计数器 410 计数, 如结果表格 415 的总数 “2” 所图示。第一间隔 301 的剩余 位置。

28、不包含与相应的规则或分析指令类似的字节。 0046 结果表格 425 指示了计数器 420 对与相应的规则或分析指令类似的 15 字节的出 现总数计数。计数器 420 在位置 65 和 127 处的类似字节, 以及在中间位置处的十二个类似 字节处计数。因此, 十五字节由计数器 420 计数, 如结果表格 425 的总数所图示。第二间隔 302 的剩余位置不包含与相应的规则或分析指令类似的字节。 0047 结果表格 435 指示了计数器 430 对于相应的规则或分析指令类似的总共 0 字节的 计数。计数器 430 在第三间隔 303 的任意位置处没有对类似字节计数。因此, 零字节由计 说 明 书。

29、 CN 104158750 A 7 5/11 页 8 数器 430 计数, 如结果表格 435 的总数所图示。 0048 结果表格 415、 425 和 435 仅是示例实施例, 并根据其他示例性实施例各种其他结 果被发现。包含在结果表格 415、 425 和 435 中的数据被存储在存储器中并且对应于数据 110 的配置模式。 0049 图4示出了分类单元500, 分类单元500包括如图示并且从图3的计数单元400所 接收的结果表格 415、 425 和 435。图 4 还图示了表格 515、 525 和 535, 它们每一个分别与对 结果表格 415、 425 和 435 的数据所执行的统。

30、计分析有关。 0050 表格 515、 525 和 535 每一个图示了字节 “# 被计数的” 的数量、 间隔的总大小、 和统 计结果。既在间隔内又匹配至少一个规则的字节数量为相应的结果表格的总增量值。间隔 的总大小为对应的结果表格的间隔横越其上的字节的总数量。 统计结果为相比于间隔的总 大小或字节的总数量而增加的字节数量的百分数。 0051 表格 515 示出了在九十六字节的总间隔大小之上增加了两个字节。相应地, 增加 的字节数量的大小占据总间隔大小的大约 2.08。为了图示的目的, 示出了近似值。 0052 表格 525 示出了在六十四字节的总间隔大小之上增加了既在间隔内又匹配至少 一个规。

31、则的字节的十五次出现。相应地, 增加的字节数量的大小占据总间隔大小的大约 23.44。 0053 表格 535 示出了在十六字节的总间隔大小之上增加了零个字节的出现。相应地, 增加的字节数量的大小占据总间隔大小的 0.00。 0054 表格 515、 525 和 535 仅是示例实施例, 并且根据其他示例实施例各种其他结果被 发现。在表格 515、 525 和 535 中所包含的数据被存储在存储器中, 并且根据示例实施例, 存 储在存储器中的这一数据对应于配置模式。 0055 图 5 示出了存储器 700 和存储在存储器 700 中的表格 540。表格 540 包含数据时 间戳、 配置模式 (。

32、“配置设置” )、 计数器结果、 和指示了在针对数据的字节的位置的间隔之 内出现满足至少一个规则的字节的统计结果。表格 540 还包含数据行 541、 542、 和 543。根 据一个示例实施例, 数据时间戳对应于网络会话被发起时的时间。 根据另一个示例实施例, 数据时间戳对应于多个网络会话被发起时的时间。根据另一个示例实施例, 表格 540 不包 含数据时间戳。配置模式与配置单元的设置有关。 0056 数据行 541 涉及关于图 2-4 所讨论的存储器中所存储的数据, 以及网络会话被发 起时的时间戳。 0057 数据行 542 和 543 涉及针对附加数据 110 的附加结果, 并且单纯地出。

33、于图示的目 的被呈现。根据一个示例实施例, 数据行 542 和 543 涉及在相同时间处获取的相同网络会 话, 如由类似的数据时间戳所指示。行 543 的配置模式图示了相对于行 542 的配置模式的 可替换配置模式, 并且根据示例实施例, 该可替换配置模式得出可替换的结果。 该可替换配 置模式指示了不同的分析指令被配置, 通过这些不同的分析指令, 相同的网络会话在不同 的准则下被分析。根据一个示例实施例, 表格 540 包含的行的数量、 次数、 配置设置以及结 果比所示意的更多或更少。 0058 图 6 是根据示例实施例当数据由流量分类设备所接收时的示例算法和方法的流 程图。图 6 的示例方法。

34、应用至其中利用流量分类设备的多个示例实施例中。当流量分类设 备从至少一个网络会话接收数据时, 处理开始于连接符 A、 S600。处理在 S601 继续。 说 明 书 CN 104158750 A 8 6/11 页 9 0059 在 S601 处, 流量分类设备解析数据。处理继续至 S602。 0060 在 S602 处, 流量分类设备通过例如指定要被分析的数据的区域并且针对每一个 数据的间隔而指定分析指令来设置配置模式。处理然后继续至 S603。 0061 在 S603 处, 流量分类设备对在感兴趣的区域之内的字节位置处与规则相匹配的 字节值的出现计数。处理经由连接符 B、 S700 而继续至。

35、图 7 所示的步骤。 0062 图 7 是根据示例实施例当数据由流量分类设备所接收时的示例算法和方法的流 程图。图 7 的示例方法应用至对网络会话分类的多个示例实施例中。当流量分类设备从至 少一个网络会话接收数据时, 处理开始于连接符 B、 S700。处理在 S701 处继续。 0063 在 S701 处, 流量分类设备将结果计数数据存储在存储器中。处理继续至 S702。 0064 在 S702 处, 流量分类设备基于结果计数数据计算统计结果。统计结果指示了匹配 至少一个规则的间隔期间出现的字节的百分数。处理继续至 S703。 0065 在 S703 处, 流量分类设备将结果统计结果存储在存储。

36、器中。处理经由连接符 A、 S600 继续至图 6 所示出的步骤, 并且接下来的数据以相似的方式处理。 0066 图 8a 是根据示例实施例当数据由流量分类设备所接收时的示例算法和方法的流 程图。图 8a 的示例方法应用至其中利用流量分类设备的多个示例实施例中。当流量分类 设备从至少一个网络会话接收数据时, 处理开始于 S800。处理在 S801 处继续。 0067 在 S801 处, 流量分类设备确定数据是否包括多个分组。 0068 在 S801 处, 如果数据不包括多个分组, 则处理经由连接符 A、 S600 而继续。 0069 在 S801 处, 如果分组包括多个分组, 则处理继续至 S。

37、802。 0070 在 S802 处, 流量分类设备将多个分组聚合到用于单个作业的数据中, 借此多个分 组的数据一起被分析。处理然后经由图 6 的连接符 A、 S600 而继续以利用其他数据来重复 循环。 0071 图 8B 解释了与聚合数据有关的刚提到的示例实施例, 并且示出了流量分类设备 1000, 流量分类设备 1000 与网络 100 对接, 接收网络流量 101, 并且包括数据解析单元 200、 配置单元 300、 计数单元 400、 分类单元 500、 处理器核心 600、 和存储器 700。流量分类设备 1000 的组件基本上与关于图 1 所讨论的相似, 除了下面提到的部分。 0。

38、072 图 8B 示出了包括网络流量 101 的多个分组 102、 103、 109。为了图示, 在分组 103 和分组 109 之间的中间分组被省略。 0073 流量分类设备 1000 接收网络流量 101 的多个分组 102、 103、 109。数据解析单元 200 将多个分组 102、 103、 109 聚合为聚合数据 250。根据一个示例实施例, 流量分类设备 1000 基本上以上面关于至少图 1-5 所讨论的方法类似的方法来处理聚合数据 250。 0074 图 9 示出了网络 100、 数据 110、 流量分类设备 1000、 结果 120、 数据库 130、 和其他 网络 140。。

39、根据一个示例实施例, 数据库 130 连接到多个其他网络 140。 0075 流量分类设备 1000 被配置为以基本上类似于上面关于图 1-5 所讨论的方法来接 收和处理网络 100 的数据。流量分类设备 1000 进一步被配置为, 与数据库 120 并且随后与 多个其他网络 140 共享其处理的结果, 诸如关于针对一个区域的分析指令的增量计数的总 数量, 以及随后的统计结果。根据这一示例实施例, 流量分类设备 1000 通信地与多个其他 网络 140 耦合。 0076 图 10 示出了流量分类设备 1000。流量分类设备 1000 经由网络接口控制器 说 明 书 CN 104158750 A。

40、 9 7/11 页 10 (NIC)1101与网络1100对接, 并且包括分组缓冲器1102、 分组解析器/聚合器1103、 会话缓 冲器 1104、 配置器 1105、 计数器描述符单元 1106、 作业队列 1107、 硬件计数器 1108、 结果队 列 1109、 会话分析器 1110、 会话分类器 1111、 和深度分组检查 (DPI) 引擎 1112。根据一个 示例实施例, 分组缓冲器 1102、 会话缓冲器 1104、 计数器描述符 1106、 作业队列 1107、 硬件 计数器 1108、 和队列结果 1109 均实施为硬件组件。根据示例实施例, 分组解析器 / 聚合器 1103。

41、、 配置器 1105、 会话分析器、 会话分类器 1111 和 DPI 引擎 1112 均实施为可编程处理器 中的软件组件。硬件组件共同地形成硬件元件 1200, 并且软件组件形成软件元件 1300。 0077 分组缓冲器 1102 被配置为保持将由分组解析器 / 聚合器 1103 来聚合的多个分 组。会话缓冲器 1104 保持聚合数据 1103b 直至硬件计数器 1108 准备好基于作业队列 1107 和来自计数器描述符 1106 的计数器配置数据 1106a 两者来处理聚合数据 1103。 0078 网络1100将网络流量1100a发送给NIC1101。 NIC1101将该网络流量或数据1。

42、101a 发送给分组缓冲器 1102。分组缓冲器 1102 将分组数据 1102a 发送给分组解析器 1103。 0079 分组解析器/聚合器1103被配置为基于从DPI引擎1112所发送的控制信号1112a 来聚合分组数据 1102a。 0080 DPI 引擎 1112 被配置为, 基于如由会话分析器 1110 所确定的当前处理的状态, 从 会话分类器 1111 以及会话分析器 1110 两者接收控制信号。DPI 引擎进一步被配置为将作 业写入到作业队列, 其由硬件计数器 1108 并行地实施。 0081 分组解析器/聚合器1103向会话分析器1110发送会话元数据1103a, 并且分组解 。

43、析器 / 聚合器 1103 向会话缓冲器 1104 发送聚合分组数据 1103b。 0082 配置器 1105 被配置为确定计数器配置并且将计数器配置控制信号 1105a 从软件 发送至硬件的计数器描述符单元1106。 配置器1105进一步被配置为向硬件计数器1108发 送用于作业的存储器布局控制信号 1105b 以及将由硬件计数器 1108 执行的结果。 0083 计数器描述符单元 1106 被配置为处理来自配置器 1105 的计数器配置控制信号 1105a, 并且向硬件计数器 1108 发送随后的计数器配置控制信号 1106a。 0084 硬件计数器 1108 被配置为, 当存储器布局控制。

44、信号 1105b、 数据 1104a、 以及计数 器配置控制信号 1106a 分别从配置器 1105、 会话缓冲器 1104、 以及计数器描述符 1106 接收 时, 处理来自作业队列1107的作业1107a。 硬件计数器1108被配置为以基本上与上面关于 图 4 所讨论的方法的并行化版本类似的方法来处理数据 1104a, 其中在图 4 中硬件计数器 1108 处理从作业队列 1107 分别去往来自网络 1100 的多个会话的多个作业 1107a。根据一 个示例实施例, 该多个会话来自多个网络。 0085 硬件计数器1108进一步被配置为将结果110Sa写至结果队列1109, 所述结果队列 1。

45、109 然后将结果数据 1109a 发送给会话分析器 1110。会话分析器 1110 以基本上与上面所 标识的硬件计数器 1108 的并行化类似的方式来处理结果队列。会话分析器 1110 的关于数 据1109a的结果涉及基本上与上面关于图4所讨论的那些结果类似的统计结果, 然而, 这仅 是一个示例实施例, 并且根据其他示例实施例, 采用其他统计分析方法。 0086 会话分析器 1110 的结果被发送给会话分类器 1111 用于分类以及 DPI 引擎 1112 的进一步控制。下面关于图 11 和 12 讨论用于使用图 10 的流量分类设备 1000 的非限制性 示例算法和方法。 0087 上面关。

46、于图10的对流量分类设备1000的描述仅是非限制性的示例实施例并且各 说 明 书 CN 104158750 A 10 8/11 页 11 种修改以及上面的公开内容的排列根据本公开内容的范围内的其他示例实施例而被执行。 根据一个示例实施例, 流量分类设备 1000 仅包括硬件组件。 0088 图 11 是根据一个示例实施例, 当数据由流量分类设备接收时的示例算法和方法 的流程图。图 11 的示例方法应用至多个示例实施例, 其中流量分类设备被利用。当流量分 类设备从至少一个网络会话接收数据时, 处理在连接符 C、 S1100 处开始。处理在 S1101 处 继续。 0089 在 S1101 处, 。

47、用于分析的数据被加载到存储器中。该处理在 S1102 处继续。 0090 在 S1102 处, 软件将配置模式写入到该存储器中, 由此设置用于硬件计数器的参 数。该处理在 S1103 处继续。 0091 在 S1103 处, 软件通过专用寄存器激活硬件引擎, 发起硬件处理。该处理在 S1104 处继续。 0092 在 S1104 处, 硬件从该存储器解析该配置模式。如由图 12 所示出的, 处理经由连 接符 D, S1200 而继续。 0093 在图 12 中, 当流量分类设备的硬件从至少一个网络会话接收数据时, 处理在连接 符 D、 S1200 处开始。处理在 S1201 处继续。 0094。

48、 在 S1201 处, 硬件计数器根据从存储器所解析的配置模式来处理数据。处理在 S1202 处继续。 0095 在 S1202 处, 硬件将经处理的数据的结果、 计数器结果写至存储器。处理在 S1203 处继续。 0096 在 S1203 处, 软件通过读取专用硬件引擎寄存器而从硬件请求该处理的状态。处 理在 S1204 处继续。 0097 在 S1204 处, 软件确定硬件引擎寄存器指示硬件处理完成并且软件从存储器读取 完整的结果。 处理经由连接符C, 在S1100处而继续到图11中所示出的步骤, 并且接下来的 数据以相似的方式被处理。 0098 图 13 示出了分类单元 500, 其包括。

49、如所图示的并且从图 3 的计数单元 400 所接收 的结果表格 415、 425、 以及 435。图 4 还图示了表格 516、 526、 以及 536, 它们每个分别涉及 对结果表格 415、 425、 以及 435 的数据所执行的统计分析。 0099 表格 516、 526、 以及 536 每个图示了多个所增加的字节出现的数量、 间隔的总大 小、 统计结果、 以及数据是否由于统计结果而被过滤的指示。所增加的字节的数量是相应 结果表格的总增加值。间隔的总大小是在其上对应结果表格的间隔所横越的字节的总数 量。在一个实施例中, 统计结果是所增加的字节数量与间隔的总大小或字节总数量相比的 百分数。过滤包括丢弃数据或者数据的一部分, 或者以其他方式不将数据发送给过滤前 (pre-fi ltered) 的目的地中的任何一种。 0100 表格 516 示出了在九十六个字节的总间隔大小之。

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 >


copyright@ 2017-2020 zhuanlichaxun.net网站版权所有
经营许可证编号:粤ICP备2021068784号-1