使用字节分布的启发式网络流量分类的制作方法

文档序号:7803708阅读:175来源:国知局
使用字节分布的启发式网络流量分类的制作方法
【专利摘要】一种网络设备,具有计数器,这些计数器被配置为,针对数据分组的所指定部分中的多个字节位置,生成对指示与规则相对应的字节位置处所发现的值的对应关系的计数,从而在该多个字节位置中的预定字节值的出现可以被计数。分组分类器被配置为,从这些计数器接收与这些规则相对应的字节值的数量,并且基于该分析来对数据分组分组。
【专利说明】使用字节分布的启发式网络流量分类
[0001] 相关申请的夺叉引用
[0002] 本申请要求于2013年5月13日提交的美国临时专利申请No. 61/822, 777的优先 权和权益,其公开内容通过引用以其整体并入本文。

【技术领域】
[0003] 本公开内容涉及处理分组的网络设备。

【背景技术】
[0004] 本文所提供的【背景技术】描述用于一般性地呈现本公开内容的背景的目的。当前署 名的发明人的工作以其在【背景技术】部分中所描述的程度,以及在提交时在其他方面不够格 作为现有技术的描述的方面,既不明确地也不隐含地被承认为对当前公开内容不利的现有 技术。
[0005] 网络流量分类常规地基于内容匹配,据此,来自比特流的字节的匹配模式与匹配 比特流内容相关。然而,用于分类的常规方法通常需要复杂而昂贵的分类引擎,并且对于一 些应用可能过于费时。


【发明内容】

[0006] 本公开内容的一个或多个示例实施例一般性地涉及用于网络流量分类的系统和 方法。分组入口被配置为从网络接收数据分组。该分组入口采用多个计数器。这些计数器 中的各种计数器被配置为,针对这些数据分组的所指定部分中的多个字节位置,生成指示 在该多个字节位置中预定字节值出现的计数。分组分类器被配置为从这些计数器接收对这 些字节值的出现的计数,并且至少部分地基于所接收的计数来分类这些数据分组。

【专利附图】

【附图说明】
[0007] 图1示出了根据示例实施例的网络设备。
[0008] 图2示出了根据示例实施例的数据解析单元,具有关于图1的数据的配置表格的 配置单元,以及计数单元。
[0009] 图3示出了根据示例性实施例的根据图2的配置表格而操作的计数单元。
[0010] 图4示出了根据示例实施例的根据计数单元的结果而操作的分类单元。
[0011] 图5示出了根据示例实施例的存储器。
[0012] 图6是根据示例实施例的图1-5的流量分类设备的配置和计数操作的示例方法的 流程图。
[0013] 图7是根据示例实施例的图1-5的流量分类设备的分类操作的示例方法的流程 图。
[0014] 图8A是根据示例实施例的图1-5的流量分类设备的配置的示例方法的流程图。
[0015] 图8B示出了根据示例实施例的网络设备聚合数据。
[0016] 图9不出了根据不例实施例的网络设备和网络。
[0017] 图10示出了根据示例实施例的网络设备。
[0018] 图11是根据诸如图10中的网络设备的加载和配置的示例实施例的示例方法的流 程图。
[0019] 图12是根据诸如图10中的网络设备的加载和配置的示例实施例的示例方法的流 程图。
[0020] 图13示出了根据示例实施例的根据计数单元的结果而操作的分类单元。
[0021] 图14不出了根据不例实施例的网络设备和输出单兀。
[0022] 图15示出了根据示例实施例的根据计数单元的结果而操作的分类单元。
[0023] 图16示出了根据示例实施例的数据解析单元,具有关于图14的数据的配置表格 的配置单元,以及计数单元。

【具体实施方式】
[0024] 在下列讨论中,为了更加清楚和简明,省略了对公知的功能和构造的描述。
[0025] 图1示出了网络100、网络流量101、以及流量分类设备1000。网络流量101包括 数据110。流量分类设备1000是网络交换机、网桥、路由器等中的任何一种的示例,并且包 括:数据解析单元200、配置单元300、计数单元400、分类单元500、处理器核心600、以及存 储器700。在一个实施例中,计数单元400进一步包括表格401和表格402。流量分类设备 1000的组件以示例实施例中的图1中所见的方式被布置。
[0026] 在一个实施例中,数据解析单元200、配置单元300、计数单元400、分类单元500、 以及存储器700中的每一个通信地耦合到处理器核心600。
[0027] 根据一个示例实施例,网络流量101涉及单个网络会话,然而,根据另一个示例实 施例,网络流量101涉及多个网络会话。
[0028] 网络流量101的数据110包含第一字节位置111、第二字节位置112、中间字节位 置113、以及末尾字节位置119。数据110的字节的位置和对应值由流量分类设备1000所 分析以发现要使用正被分析的数据的应用的特性,因为流量分类设备1000是网络与一些 应用之间的中介。
[0029] 流量分类设备1000的数据解析单元200连接到来自网络100的网络流量101的 流。数据解析单元200从网络100接收网络流量101的数据110。数据解析单元200解析 数据11〇(其在一个示例实施例中是数据分组)以分析数据的性质,诸如分组内部的多个字 节位置和数据的类型,并且将所解析的数据发送给配置单元300。
[0030] 配置单元300沿着数据110设置字节位置的间隔,诸如第一间隔301、第二间隔 302、和第三间隔303。每个间隔指的是数据100的一个区域内部的多个连续字节位置,通过 其计数单元400将对数据100分析和分类。配置单元300还针对每个区域指定各自的分析 指令。该分析指令更新计数单元400,并指示计数单元400在字节位置的值匹配指令中所包 含的说明时增加计数器。根据一个非限制性示例实施例,分析指令引起搜索匹配ASCII类 型字符字节,并且计数单元400针对被确定与任意ASCII字符相对应的相应区域内的每一 个字节位置增加计数器。在一个实施例中具体地实施为硬件组件或一组硬件组件的计数单 元400做出这样的确定。配置单元300将具有设置间隔和分析指令的数据110发送给计数 单元400。
[0031] 虽然配置单元300在图1被描绘为设置仅三个间隔,但是这仅仅是一个示例实施 例;这些间隔的图示定向也是一个示例实施例,并且根据示例实施例对数据之间的间隔的 任意组合和顺序进行分析。在一个实施例中,配置单元300被配置为设置多于或少于三个 与任意数据或多个数据分组有关的间隔。
[0032] 计数单元400包含一个或多个表格,例如表格401和表格402,其分别包含与由配 置单元300所设置的分析指令有关的信息。在一个实施例中,计数单元400针对每一个相 应的间隔对具有与这些分析指令相对应的值的字节位置的出现而增加或计数。
[0033] 在图1中所示出的示例实施例中的第一个字节的位置111位于第一间隔301之 内,并且计数单元400当第一字节位置111的内容匹配针对间隔301的分析指令的特性时 增加计数器。计数单元400针对(在一个示例实施例中)也存储在表格401和表格402中 的相应分析指令来核对间隔301的每一个字节位置。计数单元400的操作导致一组会话属 性,涉及由配置单元300所设置的分析指令。
[0034] 根据一个示例实施例,计数单元400将计数的结果存储在存储器700中。根据一 个示例实施例,这些结果由计数单元400传递给分类单元500,然而,根据另一个示例实施 例,分类单元500从存储器700获取结果。
[0035] 分类单元500基于由计数单元400所收集和所确定的数据属性来执行机器学习操 作,以将至少一个网络会话分类。根据一个示例实施例,这些数据属性被存储在存储器700 中。经分类的网络会话(作为统计分析的结果被分类)基于分类被给予服务质量级别。根 据一个示例实施例,当网络会话被确定为针对某些应用(诸如开放式系统互联(0SI)模型 层7的非业务相关的媒体流应用)传输数据时,针对这样的会话的服务质量被设置为相比 于被确定为针对业务相关应用(诸如股票经纪交易订单)的网络会话的服务质量更低。
[0036] 图2示出了数据110、数据解析单元200、配置单元300、表格信息115和计数单元 400。配置单元300图示了将数据110分布到第一间隔301、第二间隔302和第三间隔303 中;这仅是一个示例实施例,并且根据其他示例实施例包括更多或更少的间隔。
[0037] 根据一个非限制性示例实施例,数据110包含两百五十六个字节位置,由下标标 为0、64、95、127、240、以及255。第一间隔301开始于数据110的第一字节位置(标为0), 并结束于第九十六字节位置(标为95)。第二间隔302开始于数据110的第六十五字节位 置(标为64),并结束于第一百二十八字节位置(标为127)。第三间隔303开始于数据110 的第两百四十一字节位置(标为240),并结束于末尾字节位置(标为255)。根据示例实施 例,这些间隔是可配置的,并且在数据110内的任何位置处的任何数量的字节或字节位置 被分析。
[0038] 配置单元300根据分析指令来填充表格401和表格402。表格401和表格402被 图示在配置单元300中,但是这仅是一个示例实施例。表格401和表格402是由计数单元 400所使用的配置设置,并且这些配置设置由数据信息115来传递。根据由图2所图示的示 例实施例,表格401中包含与标记数据110的三个间隔分别相关的三个规则;然而规则的数 量和类型是可配置的。在表格401中的每个规则由一个数字来表示,为了解释的简单性,并 且因此该表格可被理解为包括规则1,规则1和规则3。每个规则与数据的字节位置的间隔 有关,并且表格401由数字"1"图示了规则和区域之间的正关系。
[0039] 配置单元300给出了用于针对匹配或对应于ASCII字符"a-z"和"A-Z"(规则1) 的任何字节的搜索第一间隔301的分析指令。配置单元300给出了用于针对匹配或对应 于十六进制值"0x3F"到"OxFF"的二进制等效(规则2)的任何字节的搜索第二间隔302 的分析指令。配置单元300给出了用于针对匹配或对应于特殊字符";"、"/"、"*"、" + "和 "&"(规则3)的任何字节的搜索第三间隔303的分析指令。上面的搜索是可配置的,并且 不从定义各种其他分析指令来限制配置单元300。
[0040] 配置单元300将表格信息115传递给计数单元400作为用于分析数据110的配置 信息;然而,根据一个示例实施例,计数单元400包含通过其分析数据110的预定配置。
[0041] 根据由图2所图示的示例实施例,表格402包含三个间隔301、302、和303的起始 偏移和结束偏移。起始偏移和结束偏移对应于相应间隔的开始和结束字节。
[0042] 根据一个示例实施例,配置单元300被配置为将填充表格401和表格402的数据 存储在存储器中。
[0043] 图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"到 "OxFF"的值的字节或字节位置计数。计数器430对根据第三规则(规则3)具有对应于第 三间隔303之内的特殊字符";"、"/"、"*"、" + "和"&"的值的字节或字节位置计数。虽然 每个间隔对应于特定的规则,但是这仅是一个示例实施例,并且根据其他示例实施例一个 或多个规则对应于多个间隔。根据一个示例实施例,计数器410、420和430并行操作,并且 为硬件组件。
[0044] 结果表格415、425和435图示了相应的规则、每一个位置处的字节信息、增量、以 及被发现对应于至少一个相应的规则的字节位置的增量的总计数。符号"α "指示该字节 不对应于相应的规则或分析指令。结果表格415、425和435是图示操作的概念的示例实施 例。为了图示的目的,这些结果表格还省略了间隔的中间位置,并且如此图示了与由相应的 计数器在中间位置处计数的至少一个相应规则相对应的字节位置的总计数。
[0045] 结果表格415指示了计数器410对其相应值与相应的规则或分析指令相对应的总 共2字节的计数。计数器410在第一间隔301的位置1和95两处对类似字节计数,并且因 此两个字节由计数器410计数,如结果表格415的总数"2"所图示。第一间隔301的剩余 位置不包含与相应的规则或分析指令类似的字节。
[0046] 结果表格425指示了计数器420对与相应的规则或分析指令类似的15字节的出 现总数计数。计数器420在位置65和127处的类似字节,以及在中间位置处的十二个类似 字节处计数。因此,十五字节由计数器420计数,如结果表格425的总数所图示。第二间隔 302的剩余位置不包含与相应的规则或分析指令类似的字节。
[0047] 结果表格435指示了计数器430对于相应的规则或分析指令类似的总共0字节的 计数。计数器430在第三间隔303的任意位置处没有对类似字节计数。因此,零字节由计 数器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的数据所执行的统计分析有关。
[0050] 表格515、525和535每一个图示了字节"#被计数的"的数量、间隔的总大小、和统 计结果。既在间隔内又匹配至少一个规则的字节数量为相应的结果表格的总增量值。间隔 的总大小为对应的结果表格的间隔横越其上的字节的总数量。统计结果为相比于间隔的总 大小或字节的总数量而增加的字节数量的百分数。
[0051] 表格515示出了在九十六字节的总间隔大小之上增加了两个字节。相应地,增加 的字节数量的大小占据总间隔大小的大约2. 08%。为了图示的目的,示出了近似值。
[0052] 表格525示出了在六十四字节的总间隔大小之上增加了既在间隔内又匹配至少 一个规则的字节的十五次出现。相应地,增加的字节数量的大小占据总间隔大小的大约 23. 44%。
[0053] 表格535示出了在十六字节的总间隔大小之上增加了零个字节的出现。相应地, 增加的字节数量的大小占据总间隔大小的〇. 〇〇%。
[0054] 表格515、525和535仅是示例实施例,并且根据其他示例实施例各种其他结果被 发现。在表格515、525和535中所包含的数据被存储在存储器中,并且根据示例实施例,存 储在存储器中的这一数据对应于配置模式。
[0055] 图5示出了存储器700和存储在存储器700中的表格540。表格540包含数据时 间戳、配置模式("配置设置")、计数器结果、和指示了在针对数据的字节的位置的间隔之 内出现满足至少一个规则的字节的统计结果。表格540还包含数据行541、542、和543。根 据一个示例实施例,数据时间戳对应于网络会话被发起时的时间。根据另一个示例实施例, 数据时间戳对应于多个网络会话被发起时的时间。根据另一个示例实施例,表格540不包 含数据时间戳。配置模式与配置单元的设置有关。
[0056] 数据行541涉及关于图2-4所讨论的存储器中所存储的数据,以及网络会话被发 起时的时间戳。
[0057] 数据行542和543涉及针对附加数据110的附加结果,并且单纯地出于图示的目 的被呈现。根据一个示例实施例,数据行542和543涉及在相同时间处获取的相同网络会 话,如由类似的数据时间戳所指示。行543的配置模式图示了相对于行542的配置模式的 可替换配置模式,并且根据示例实施例,该可替换配置模式得出可替换的结果。该可替换配 置模式指示了不同的分析指令被配置,通过这些不同的分析指令,相同的网络会话在不同 的准则下被分析。根据一个示例实施例,表格540包含的行的数量、次数、配置设置以及结 果比所示意的更多或更少。
[0058] 图6是根据示例实施例当数据由流量分类设备所接收时的示例算法和方法的流 程图。图6的示例方法应用至其中利用流量分类设备的多个示例实施例中。当流量分类设 备从至少一个网络会话接收数据时,处理开始于连接符A、S600。处理在S601继续。
[0059] 在S601处,流量分类设备解析数据。处理继续至S602。
[0060] 在S602处,流量分类设备通过例如指定要被分析的数据的区域并且针对每一个 数据的间隔而指定分析指令来设置配置模式。处理然后继续至S603。
[0061] 在S603处,流量分类设备对在感兴趣的区域之内的字节位置处与规则相匹配的 字节值的出现计数。处理经由连接符B、S700而继续至图7所示的步骤。
[0062] 图7是根据示例实施例当数据由流量分类设备所接收时的示例算法和方法的流 程图。图7的示例方法应用至对网络会话分类的多个示例实施例中。当流量分类设备从至 少一个网络会话接收数据时,处理开始于连接符B、S700。处理在S701处继续。
[0063] 在S701处,流量分类设备将结果计数数据存储在存储器中。处理继续至S702。
[0064] 在S702处,流量分类设备基于结果计数数据计算统计结果。统计结果指示了匹配 至少一个规则的间隔期间出现的字节的百分数。处理继续至S703。
[0065] 在S703处,流量分类设备将结果统计结果存储在存储器中。处理经由连接符A、 S600继续至图6所示出的步骤,并且接下来的数据以相似的方式处理。
[0066] 图8a是根据示例实施例当数据由流量分类设备所接收时的示例算法和方法的流 程图。图8a的示例方法应用至其中利用流量分类设备的多个示例实施例中。当流量分类 设备从至少一个网络会话接收数据时,处理开始于S800。处理在S801处继续。
[0067] 在S801处,流量分类设备确定数据是否包括多个分组。
[0068] 在S801处,如果数据不包括多个分组,则处理经由连接符A、S600而继续。
[0069] 在S801处,如果分组包括多个分组,则处理继续至S802。
[0070] 在S802处,流量分类设备将多个分组聚合到用于单个作业的数据中,借此多个分 组的数据一起被分析。处理然后经由图6的连接符A、S600而继续以利用其他数据来重复 循环。
[0071] 图8B解释了与聚合数据有关的刚提到的示例实施例,并且示出了流量分类设备 1000,流量分类设备1000与网络100对接,接收网络流量101,并且包括数据解析单元200、 配置单元300、计数单元400、分类单元500、处理器核心600、和存储器700。流量分类设备 1000的组件基本上与关于图1所讨论的相似,除了下面提到的部分。
[0072] 图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。根据一个示例实施例,数据库130连接到多个其他网络140。
[0075] 流量分类设备1000被配置为以基本上类似于上面关于图1-5所讨论的方法来接 收和处理网络100的数据。流量分类设备1000进一步被配置为,与数据库120并且随后与 多个其他网络140共享其处理的结果,诸如关于针对一个区域的分析指令的增量计数的总 数量,以及随后的统计结果。根据这一示例实施例,流量分类设备1000通信地与多个其他 网络140耦合。
[0076] 图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。
[0077] 分组缓冲器1102被配置为保持将由分组解析器/聚合器1103来聚合的多个分 组。会话缓冲器1104保持聚合数据1103b直至硬件计数器1108准备好基于作业队列1107 和来自计数器描述符1106的计数器配置数据1106a两者来处理聚合数据1103。
[0078] 网络1100将网络流量1100a发送给NIC1101。NIC1101将该网络流量或数据110la 发送给分组缓冲器1102。分组缓冲器1102将分组数据1102a发送给分组解析器1103。
[0079] 分组解析器/聚合器1103被配置为基于从DPI引擎1112所发送的控制信号1112a 来聚合分组数据1102a。
[0080] DPI引擎1112被配置为,基于如由会话分析器1110所确定的当前处理的状态,从 会话分类器1111以及会话分析器1110两者接收控制信号。DPI引擎进一步被配置为将作 业写入到作业队列,其由硬件计数器1108并行地实施。
[0081] 分组解析器/聚合器1103向会话分析器1110发送会话元数据1103a,并且分组解 析器/聚合器1103向会话缓冲器1104发送聚合分组数据1103b。
[0082] 配置器1105被配置为确定计数器配置并且将计数器配置控制信号1105a从软件 发送至硬件的计数器描述符单元1106。配置器1105进一步被配置为向硬件计数器1108发 送用于作业的存储器布局控制信号1105b以及将由硬件计数器1108执行的结果。
[0083] 计数器描述符单元1106被配置为处理来自配置器1105的计数器配置控制信号 1105a,并且向硬件计数器1108发送随后的计数器配置控制信号1106a。
[0084] 硬件计数器1108被配置为,当存储器布局控制信号1105b、数据1104a、以及计数 器配置控制信号1106a分别从配置器1105、会话缓冲器1104、以及计数器描述符1106接收 时,处理来自作业队列1107的作业1107a。硬件计数器1108被配置为以基本上与上面关于 图4所讨论的方法的并行化版本类似的方法来处理数据1104a,其中在图4中硬件计数器 1108处理从作业队列1107分别去往来自网络1100的多个会话的多个作业1107a。根据一 个示例实施例,该多个会话来自多个网络。
[0085] 硬件计数器1108进一步被配置为将结果llOSa写至结果队列1109,所述结果队列 1109然后将结果数据1109a发送给会话分析器1110。会话分析器1110以基本上与上面所 标识的硬件计数器1108的并行化类似的方式来处理结果队列。会话分析器1110的关于数 据1109a的结果涉及基本上与上面关于图4所讨论的那些结果类似的统计结果,然而,这仅 是一个示例实施例,并且根据其他示例实施例,采用其他统计分析方法。
[0086] 会话分析器1110的结果被发送给会话分类器1111用于分类以及DPI引擎1112 的进一步控制。下面关于图11和12讨论用于使用图10的流量分类设备1000的非限制性 不例算法和方法。
[0087] 上面关于图10的对流量分类设备1000的描述仅是非限制性的示例实施例并且各 种修改以及上面的公开内容的排列根据本公开内容的范围内的其他示例实施例而被执行。 根据一个示例实施例,流量分类设备1000仅包括硬件组件。
[0088] 图11是根据一个示例实施例,当数据由流量分类设备接收时的示例算法和方法 的流程图。图11的示例方法应用至多个示例实施例,其中流量分类设备被利用。当流量分 类设备从至少一个网络会话接收数据时,处理在连接符C、S1100处开始。处理在S1101处 继续。
[0089] 在S1101处,用于分析的数据被加载到存储器中。该处理在S1102处继续。
[0090] 在S1102处,软件将配置模式写入到该存储器中,由此设置用于硬件计数器的参 数。该处理在S1103处继续。
[0091] 在S1103处,软件通过专用寄存器激活硬件引擎,发起硬件处理。该处理在S1104 处继续。
[0092] 在S1104处,硬件从该存储器解析该配置模式。如由图12所示出的,处理经由连 接符D,S1200而继续。
[0093] 在图12中,当流量分类设备的硬件从至少一个网络会话接收数据时,处理在连接 符D、S1200处开始。处理在S1201处继续。
[0094] 在S1201处,硬件计数器根据从存储器所解析的配置模式来处理数据。处理在 S1202处继续。
[0095] 在S1202处,硬件将经处理的数据的结果、计数器结果写至存储器。处理在S1203 处继续。
[0096] 在S1203处,软件通过读取专用硬件引擎寄存器而从硬件请求该处理的状态。处 理在S1204处继续。
[0097] 在S1204处,软件确定硬件引擎寄存器指示硬件处理完成并且软件从存储器读取 完整的结果。处理经由连接符C,在S1100处而继续到图11中所示出的步骤,并且接下来的 数据以相似的方式被处理。
[0098] 图13示出了分类单元500,其包括如所图示的并且从图3的计数单元400所接收 的结果表格415、425、以及435。图4还图示了表格516、526、以及536,它们每个分别涉及 对结果表格415、425、以及435的数据所执行的统计分析。
[0099] 表格516、526、以及536每个图示了多个所增加的字节出现的数量、间隔的总大 小、统计结果、以及数据是否由于统计结果而被过滤的指示。所增加的字节的数量是相应 结果表格的总增加值。间隔的总大小是在其上对应结果表格的间隔所横越的字节的总数 量。在一个实施例中,统计结果是所增加的字节数量与间隔的总大小或字节总数量相比的 百分数。过滤包括丢弃数据或者数据的一部分,或者以其他方式不将数据发送给过滤前 (pre-filtered)的目的地中的任何一种。
[0100] 表格516示出了在九十六个字节的总间隔大小之上增加了两个字节的出现。因 此,所增加的字节出现的数量大小占据总间隔大小的大约2. 08%。为了举例说明的目的示 出了近似值。分类单元500确定该数据不应当基于统计结果而被过滤,根据一个示例实施 例,2. 08%低于预定的可配置的用于过滤部分数据的阈值。
[0101] 表格526示出了在六十四个字节的总间隔大小之上增加了十五个字节的出现。因 此,所增加的字节出现的数量大小占据总间隔大小的大约23. 44%。分类单元500确定该数 据应当被过滤。
[0102] 表格536示出了在十六个字节的总间隔大小之上增加了零个字节的出现。因此, 所增加的字节出现的数量大小占据总间隔大小的〇. 〇〇%。分类单元500确定该数据不应当 被过滤。
[0103] 表格516、526、以及536仅是示例实施例,并且根据其他示例实施例,各种其他结 果被发现。表格516、526、以及536中所包含的数据被存储在存储器中,并且根据一个不例 实施例,被存储在存储器中的这一数据与配置模式相对应。
[0104] 图14示出了网络100、网络流量101、流量分类设备1000、以及输出单元1400。网 络流量101包括数据110。流量分类设备1000包括数据解析单元200、配置单元300、计数 单元400、分类单元500、处理器核心600、以及存储器700。计数单元400进一步包括表格 401和表格402。流量分类设备1000的元件的布置仅是一个示例实施例。
[0105] 网络流量101的数据110包含第一字节111、第二字节112、中间字节113、以及末 尾字节119。数据110的字节由流量分类设备1000来分析。
[0106] 流量分类设备1000的数据解析单元200连接至来自网络100的网络流量101的 流。数据解析单元200从网络100接收网络流量101的数据110。数据解析单元200解析 数据110、数据分组以分析数据的性质(诸如该分组内的字节数量以及数据类型),并且将 经解析的数据发送给配置单元300。
[0107] 配置单元300沿着数据110设置字节的间隔,诸如第一间隔301、第二间隔302、以 及第三间隔303。每个间隔指代数据110的一个区域内连续字节的数量,计数单元400将通 过该区域来对数据110分析和分类。配置单元300还指定与每个区域各自的分析指令。这 些分析指令更新计数单元400并且在字节匹配该指令的描述时指示计数单元400增加计数 器。配置单元300将数据110与所设置的间隔和分析指令一起发送给计数单元400。
[0108] 计数单元400包含表格401和表格402,它们分别包含与由配置单元300所设置的 分析指令有关的信息。计数单元400对与针对每个相应间隔的分析指令相对应的字节的出 现来增加或者计数。
[0109] 根据一个示例实施例,计数单元400存储在存储器700中的计数结果。根据一个 示例实施例,这些结果被计数单元400传递给分类单元500,然而,根据另一个示例实施例, 分类单元500从存储器700获取这些结果。
[0110] 分类单元500执行机器学习操作,该机器学习操作被用来基于由计数单元400所 确定的所收集的数据属性来分类至少一个网络会话。根据一个示例实施例,这些数据属性 被存储在存储器700中。作为分类的结果,对所分类的网络会话的至少一部分给出过滤和 服务指令级别中的任何一种。根据一个示例实施例,在将数据发送给输出单元1400之前, 由分类单元500从该数据过滤掉间隔302。
[0111] 图15示出了分类单元500,其包括如所图示的并且从图3的计数单元400所接收 的结果表格415、425、以及435。图4还图示了表格515、525、以及535,它们每个分别涉及 对结果表格415、425、以及435的数据所执行的统计分析。
[0112] 表格515、525、以及535的每一个图示了多个所增加的字节数量、间隔的总大小、 统计结果、以及数据是否因为统计结果而具有被应用的服务质量的指示。所增加的字节的 数量是相应结果表格的总增加值。间隔的总大小是在其上对应的结果表格的间隔所横越的 字节的总数量。统计结果是所增加的字节数量与间隔的总大小或字节总数量相比的百分 数。过滤是丢弃数据或者数据的一部分,或者以其他方式不将数据发送给过滤前的目的地 中的任何一种。
[0113] 表格515示出了在九十六个字节的总间隔大小上增加了两个字节。因此,所增加 的字节的数量大小占据总间隔大小的大约2. 08%。为了举例说明的目的示出了近似值。分 类单元500确定该数据具有正常的服务质量级别。根据一个示例实施例,2. 08%的统计结 果不触发对服务质量级别的任何改变;然而,其他示例实施例包括将由2. 08%的统计结果 所触发并且将改变服务质量级别的预定可配置的阈值。
[0114] 表格525示出了在六十四个字节的总间隔大小上增加了十五个字节的出现。因 此,所增加的字节出现的数量大小占据总间隔大小的大约23. 44%。分类单元500确定该数 据具有高服务质量级别。根据一个示例实施例,23. 44 %的统计结果触发对服务质量级别的 改变。
[0115] 表格535示出了在十六个字节的总间隔大小上增加了零个字节的出现。因此,所 增加的字节出现的数量大小占据总间隔大小的〇. 〇〇%。分类单元500确定该数据具有低服 务质量级别。根据一个示例实施例,〇. 〇〇%的统计结果触发对服务质量级别的改变。
[0116] 表格515、525、以及535仅是一个不例实施例,并且根据其他不例实施例,各种其 他结果被发现。表格515、525、以及535中所包含的数据被存储在存储器中,并且根据一个 示例实施例,被存储在存储器中的这一数据与配置模式相对应。上面所指示的服务质量级 别是基于统计结果的服务质量的实施方式的非限制性示例。
[0117] 图16示出了数据1600、数据解析单元200、配置单元300、表格信息1600和计数单 元400。配置单元300图示了将数据1600分发到第一间隔1601、第二间隔1602、第三间隔 1603、第四间隔1604、以及第五间隔1605中。
[0118] 根据一个非限制性的示例实施例,如由下标所标示的,数据1600包含两百五十六 个字节。第一间隔1601以数据1600的第五字节(标为5)开始并且以第四十八字节(标 为48)结束。第二间隔1602以数据1600的第三十一字节(标为31)开始并且以第七十九 字节(标为79)结束。第三间隔1603以数据1600的第四十八字节(标为48)开始并且以 第一百九十字节(标为190)结束。第四间隔1604完全与第三字节1603重叠并且以数据 1600的第四十八字节(标为48)开始并且以第一百九十字节(标为190)结束。第五间隔 1605以数据1600的第一百九十字节(标为190)开始并且以末尾字节(标为255)结束。 这些间隔是可配置的,并且根据一个示例实施例来分析数据110内的任何位置处的任何数 量的字节。
[0119] 配置单兀300根据分析质量来填充表格1650和表格1660。根据由图16所图不的 示例实施例,表格1650包含三个规则:然而规则的数量和类型是可配置的。每个规则与由 表格1660所示出的数据的字节的间隔或字节的位置有关,并且表格1650通过数字"1"图 示了该规则与该区域之间的正关系。
[0120] 配置单元300给出用于针对与特殊字符";以及"&"相匹 配或相对应的任何字节的分析指令,来搜索第一间隔1601、第四间隔1604、以及第五间隔 1605。配置单元300给出用于针对与ASCII字符"a-z"和"A-Z"相匹配或相对应的任何字 节的分析指令,来搜索第二间隔1602和第五间隔1605。配置单元300给出用于针对与二进 制值"0x3F"至"OxFF"相匹配或相对应的任何字节的分析指令,来搜索第三间隔1603。上 面的搜索是可配置的并且不限制配置单元300脱离定义各种其他的分析指令。
[0121] 配置单元300将表格信息1610传递给计数单元400作为用于分析数据110的配 置信息;然而,根据一个示例实施例,计数单元400包含预定配置,通过该预定配置来分析 数据110。
[0122] 根据由图16所图示的示例实施例,表格402包含三个间隔301、302、以及303的 起始偏移和结束偏移。起始偏移和结束偏移与相应间隔的开始和结束字节或字节位置相对 应。
[0123] 根据一个不例实施例,配置单兀300被配置为将填充表格1650和表格1650的数 据存储在存储器中。
[0124] 计数单元400被配置为,根据之前所描述的示例实施例中的任何示例实施例来处 理由至少该配置单元所指定的间隔。
[0125] 尽管上面已经关于各种示例实施例描述了发明的概念,但是注意,不偏离将由所 附权利要求书所限定的特征范围和技术思想,通过熟悉这一领域的技术人员,能够存在对 所描述的特征的各种排列和修改。
[0126] 进一步地,尽管本说明书包含许多特征,但是这些特征不应当被解释为对本公开 内容或所附权利要求书的范围的限制。在分立实施例的上下文中所描述的某些特征也能够 组合地被实施。相反地,在单个实施例的上下文中所描述的各种特征也能够分立地或者以 任何合适的子组合地被实施在多个实施例中。
[0127] 尽管附图以特定的顺序描述了操作和/或示出了组件的特定布置,但是人们不应 当将这样的特定顺序和/或布置解释为限制性的,或者所有所执行的操作和所公开的组件 被要求获取所期望的结果。相应地,其他的实施方式在下列权利要求书的范围内。
【权利要求】
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所述的网络设备,进一步包括:分组聚合器,被配置为聚合包括所 述数据分组的多个数据分组的所述字节值,其中所述计数器中的一个计数器进一步被配置 为,针对聚合的所述字节值的所指定部分中的多个字节位置,生成对指示在所述聚合字节 值的所指定部分中的所述多个字节位置中具有第一预定特性的字节值的出现的相应计数。
【文档编号】H04L12/801GK104158750SQ201410201571
【公开日】2014年11月19日 申请日期:2014年5月13日 优先权日:2013年5月13日
【发明者】I·萨尼维斯基, T·卡尔达肖夫, A·普洛特尼科夫 申请人:马维尔国际贸易有限公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1