分组分类的制作方法

文档序号:7912621阅读:176来源:国知局
专利名称:分组分类的制作方法
技术领域
本公开一般地涉及计算机联网。
背景技术
遍及网络(例如因特网)的路由器可被配置为基于网络流量中包含的信息来处理网络流量。例如,某些公司已经试图对于关联于文件共享应用的分组操纵服务质量设置。常规的方法可尝试深度分组检测(DPI)以便检测分组所关联的应用。DPI是检查分组负载内容的动作。然而,DPI可能难于在负载被加密时确定分组关联于什么应用。另外,DPI可能是较慢的和/或资源密集的(例如存储器、处理)。因此,DPI的惯例使用可引入网络设备中的等待时间,这造成网络减速并且降低了数据传送速度。此外,某些DPI实现可具有较大的误报率,并且通过用多态技术操纵分组负载(例如重写负载代码的计算机病毒)可引入漏报。代替使用DPI,某些路由器使用统计分类技术来扩充其它的分类技术。然而,使用软件收集数据的某些常规统计分类技术在计算上是高成本、缓慢的并且因此对于某些典型的分类场景来说是不实际的。另外,某些常规的统计分类技术直到给定数据流结束之后也未能得到关于该流的结论。


附图被合并在说明书中并且构成其一部分,示出了各个示例系统、方法和其它示例实施例。将会理解,图中所示出的元素边界(例如框、框的组、或其它形状)表示边界的一个示例。本领域普通技术人员将会意识到,在某些示例中,一个元素可被设计为多个元素或者多个元素可被设计为一个元素。在某些示例中,示出为另一个元素内部组件的元素可被实现为外部组件,反之亦然。此外,元素可能不按比例绘制。图1示出了与分组分类相关联的示例设备。图2示出了与分组分类的相关联示例设备。图3示出了示例系统和方法以及等同物可在其中操作的示例网络。图4示出了与分组分类相关联的示例方法。图5示出了示例系统和方法以及等同物可在其中操作的示例计算环境。
具体实施例方式概述在一个实施例中,一种设备包括用于识别与数据流相关联的分组的分组选择逻辑,分组选择逻辑用于识别与数据流相关联的分组。数据流包括从源设备向目的设备发送的分组序列,并且其中数据流与应用相关联。该设备还包括一组分组分类逻辑。分组分类逻辑生成关于与所述分组相关联的属性是否匹配于与被测试应用所生成的分组相关联的属性来的信号。分组分类逻辑的组成员并行操作。该设备还包括一组数据流分类逻辑。数据流分类逻辑至少部分地基于来自分组分类逻辑的组成员的一个或多个信号来提供标识数据流与应用相关联的可能性的信号。在一个实施例中,一种方法包括向一组分组属性检测器提供与来自数据流的分组相关联的数据。分组属性检测器返回关于据从分组得到的数据是否对应于从源自被测试应用的分组所生成的训练数据来的信号。该方法还包括至少部分地基于来自分组属性检测器的组成员的一个或多个信号来提供描述数据流与所标识应用相关联的可能性的信号。描述描述了与分组分类相关联的设备和方法。一种示例设备包括一组分组分类逻辑。 当分组分类逻辑被提供了与来自数据流的分组相关联的数据时,分组分类逻辑可生成关于与该分组相关联的数据是否匹配于与被测试应用所生成的分组相关联的数据的信号。然后,来自分组分类逻辑的信号可由数据流分类逻辑解释。数据流分类逻辑可基于来自分组分类逻辑的信号提供描述数据流与应用相关联的可能性的信号。在一个示例中,来自数据流分类逻辑的信号可由聚合逻辑解释以便明确地关联(例如提供信号、存储值)数据流和应用。在一个示例中,分组分类逻辑和数据流分类逻辑可被实现为硬件。这可使得逻辑能够基本上并行地操作,便利了在给定时段内分类更多的分组和/或数据流。快速分类分组和数据流可增强操纵与数据流相关联的数据的逻辑。例如,从并行处理硬件实现的分组分类器接收数据的服务质量逻辑相比于从软件实现的分组分类器接收数据的服务质量逻辑能够为更多的数据流调节服务质量值。这里使用的术语“数据流”指代从源设备向目的设备发送的分组序列。数据流还与应用相关联。作为例示,图3示出了示例系统和方法以及等同物可在其中操作的示例网络300。网络300可包括网络装置399。网络装置399可同时处理包括所感兴趣流310在内的多个数据流。所感兴趣流310可由所感兴趣流的源320提供到所感兴趣流的目的地 330。网络装置399也可处理正在由其它流的源360向其它流的目的地370提供的其它流 350。在一个示例中,可存在通过网络装置399的从所感兴趣流的源320和/或所感兴趣流的目的地330发起和/或结束的另外的数据流。尽管描述了一个所感兴趣流310,但是本领域普通技术人员可看出可如何存在在源320处开始并且到达目的地330的多个所感兴趣流。本领域普通技术人员也可看出这些多个流中的某些可共享应用但是仍然是不同的流 (例如两个不同的文件传送、单独的音频和视频数据流)。在一个示例中,数据流可由五元组流定义来描述。五元组流定义可唯一地标识数据流。然而,如上所述,与相同应用相关联的从相同源去往相同目的地的两个流可共享相同的五元组流定义。在该情况下,可使用另外的区分符(例如跟踪分组编号)来区分数据流。图1示出了与分组分类相关联的设备100。设备100包括分组选择逻辑110。分组选择逻辑110可识别与数据流相关联的分组。数据流包括从源设备向目的设备发送的分组序列。数据流还与应用相关联。上面更详细地描述了数据流。识别与数据流相关联的分组可包括对与分组相关联的一组状态数据与描述数据流的五元组流定义进行比较。参考图1和2所使用的“逻辑”包括但不限于在机器上执行的硬件、固件、软件和 /或每一个的组合,其执行(一个或多个)功能或(一个或多个)动作,和/或引起来自另一个逻辑、方法、和/或系统的功能或动作。逻辑例如可包括软件控制的微处理器、离散逻辑(例如ASIC)、模拟电路、数字电路、编程的逻辑器件、或包含指令的存储设备。逻辑可包括一个或多个门、门的组合、或其它电路元件。尽管描述了多种逻辑上的逻辑,但是可以将多个逻辑上的逻辑合并到一个物理逻辑内。类似地,尽管描述了单个逻辑上的逻辑,但是可以将该单个逻辑上的逻辑分布到多个物理逻辑之间。设备100还包括一组分组分类逻辑120。分组分类逻辑组120的成员可生成关于与分组相关联的属性是否匹配于与被测试应用所生成的分组的属性的信号。分组分类逻辑组120的成员可并行操作。在一个示例中,分组分类逻辑生成的信号可以是二元信号。二元信号是可具有两个值之一的信号。作为例示,发出第一值的分组分类逻辑可表示分组具有分类逻辑所测试的属性,并且发出第二值的分组分类逻辑可表示分组不具有分类逻辑所测试的属性。分组分类逻辑测试的属性例如可包括分组大小、分组到达率、源端口、目的端口和协议。另外,可对于特定值或对于某范围的值测试属性。在一个示例中,分组分类逻辑组的成员可包含在(一个或多个)专用集成电路(ASIC)、(一个或多个)场可编程门阵列 (FPGA)、(一个或多个)多核中央处理单元(CPU)、或(一个或多个)多核数字信号处理器 (DSP)中。这里使用的“信号”包括但不限于可被接收、发送和/或检测的电信号、光信号、模拟信号、数字信号、数据、计算机指令、处理器指令、消息、比特和比特流。设备100还包括一组数据流分类逻辑130。数据流分类逻辑组130的成员可提供标识数据流与应用相关联的可能性的信号。该信号可基于来自分组分类逻辑组的成员的信号来提供。数据流分类逻辑的组130的成员可以不同配置连接到分组分类逻辑的组120的成员。设备100示出了第一配置,其中成组的分组分类逻辑(121-122)向单个数据流分类逻辑132提供信号。设备100还示出了第二配置,其中分组分类逻辑组(125-127)的成员向一个或多个数据流分类逻辑(134-136)提供信号。第二配置在多个被测试应用共享类似的属性时是有利的。通过允许单个分组分类逻辑向一个以上数据流分类逻辑提供信号,可节省处理资源(例如存储器、芯片空间)。尽管描述了两种配置,但是本领域普通技术人员可认识到可能合适的其它配置。此外,尽管并行示出了分组分类逻辑组120的成员,但是在某些情况下,对于某些成员来说串行操作可能是合适的。图2示出了关于设备100的另外的细节。图2中示出的设备100的实施例包括从数据流选择分组的分组选择逻辑110、分组分类逻辑组120和数据流分类逻辑组130。图2 中示出的设备100的实施例还包括聚合逻辑140。聚合逻辑140可从数据流分类逻辑组130 的成员接收信号。聚合逻辑140还可向数据流分配数据流分类符。数据流分类符可基于来自数据流分类逻辑组的成员的信号来分配。在一个示例中,数据流分类符可将数据流与所标识应用相关联。所标识的应用例如可以是网络电话(VoIP)应用、文件共享应用、文件传送协议(FTP)应用、因特网浏览器、聊天应用、游戏应用、视频应用、音频应用、或会议应用。 在一个示例中,分配数据流标识符可包括存储数据流标识符和数据流之间的关联。在另一个示例中,分配数据流标识符可包括提供标识数据流标识符和数据流的信号。图2中示出的设备100的实施例还示出了多个示例动作逻辑,包括服务质量逻辑 150、数据收集逻辑160和计费逻辑170。动作逻辑可基于数据流分类符执行与数据流相关联的动作。例如,服务质量逻辑150可基于数据流分类符修改针对数据流的服务质量设置, 数据收集逻辑160可收集有关数据流的数据,并且计费逻辑170可更新与所标识应用相关联的计费数据。尽管描述了三个示例动作逻辑,但是本领域普通技术人员可认识到可由标识与数据流相关联的应用的数据增强的另外的逻辑。作为例示,管理路由器的公司可与网络电话(VoIP)电话公司达成协议。协议可包括以稍微增加的数据传送成本对于来自VoIP电话公司管理的应用的VoIP分组提供增加的服务质量(例如增加的优先级、降低的丢包率)。为了检测与应用相关联的数据流,VoIP电话公司可安装硬件芯片,该硬件芯片包括帮助检测来自应用的分组的并行运算器。当来自应用的数据流通过路由器时,芯片可开始表示来自数据流的分组很可能与应用相关联。这可使得路由器将数据流与电话公司的应用相关联,便于改进对于分组的服务质量并且对于所传送的数据量以增加的比率来为VoIP电话公司计费。以下的详细描述的某些部分按照对存储器内数据比特的操作的算法和符号表示来给出。这些算法描述和表示由本领域技术人员用来向其他人传递他们工作的实质。算法在这里并且通常地被认为是产生结果的操作的序列。操作可包括对物理量的物理操纵。通常,尽管不是必需的,物理量采用能够在逻辑中被存储、传送、组合、比较、以及以其他方式被操纵的电或磁信号。物理操纵创建明确、有形、有用、真实世界的结果。主要为了通用的原因,已经证明了有时将这些信号称作例如比特、值、元素、符号、 字符、术语和数字是方便的。然而应当记住,这些和类似的术语应当与适当的物理量相关联并且仅仅是应用于这些量的方便的标记。除非另外明确地声明,应当理解,遍及描述,包括处理、计算和确定的术语指代操作和转换表示为物理(电子的)量的数据的计算机系统、逻辑、处理器、或类似电子器件的动作和处理。参考流程图可更好地理解示例实施例。为了说明的简单,所例示的方法被示出和描述为一系列的框。然而,应当理解,方法不由框的顺序所限制,因为某些框可以与所示出和描述不同的顺序出现并且/或者与其它框同时出现。此外,实现示例方法可需要比全部所示更少的框。框可被组合或者分离为多个组成部分。此外,另外和/或替代的方法可使用另外的未示出的框。图4示出了与分组分类相关联的方法400。方法400包括在410向一组分组属性检测器提供与来自数据流的分组相关联的数据。如上所述,数据流可以是从源设备向目的设备发送的分组序列。数据流还可与应用相关联。分组属性检测器组的成员可返回关于从分组得到的数据是否对应于从源自被测试应用的分组所生成的训练数据的信号。在一个示例中,分组属性检测器组的成员可并行操作。然而,本领域普通技术人员可看出对于分组属性检测器组的某些成员来说串行操作是如何合适的。方法400还包括在420提供描述数据流与所标识应用相关联的可能性的信号。描述可能性的信号可帮助向数据流分配数据流分类符。因此,数据流分类符可将数据流与所标识应用相关联。此外,数据流分类符帮助修改与所标识应用和/或数据流相关联的值和/ 或记录数据。可能性可基于来自分组属性检测器组成员的一个或多个信号。如上所述,所标识应用可以是网络电话(VoIP)应用、文件共享应用、http应用、或流媒体应用。因此,图4示出了例如上述管理路由器的公司所安装的芯片可如何操作。尽管描述了硬件芯片,但是本领域普通技术人员可看出对于某些情况(例如,相比于硬件芯片,安装新软件更容易)来说,软件方案是如何合适的。通过执行不依赖于深度分组检测的分组分析,可实现精确、实时的分组和数据流分类。
尽管图4示出了串行出现的各个动作,应当理解,图4中示出的各个动作可基本上并行地出现。作为例示,第一处理可向分组属性检测器提供数据,并且第二处理可提供描述数据流与所标识应用相关联的可能性的信号。尽管描述了两个处理,但是应当理解,可使用更多和/或更少数量的处理,并且可使用轻量级的处理、有规律的处理、线程、和其它方法。在一个示例中,一种方法可实现为计算机可执行的指令。因此,在一个示例中,计算机可读介质可存储当由机器(例如处理器)执行时使得机器执行方法的计算机可执行指令。尽管与上面方法相关联的可执行指令被描述为存储在计算机可读介质上,但是应当理解,与这里描述的其它示例方法相关联的可执行指令也可存储在计算机可读介质上。这里使用的“计算机可读介质”指代存储信号、指令和/或数据的介质。计算机可读介质可采用的形式包括但不限于非易失性介质和易失性介质。非易失性介质例如可包括光盘和磁盘。易失性介质例如可包括半导体存储器和动态存储器。有形介质的常见形式可包括但不限于软盘、软磁盘、硬盘、磁带、其它磁介质、专用集成电路(ASIC)、压缩盘(CD)、 其它光介质、随机存取存储器(RAM)、只读存储器(ROM)、存储芯片或卡、存储棒、以及计算机、处理器或其它电子器件可从其读取的其它介质。图5示出了这里描述的示例系统和方法以及等同物可在其中操作的示例计算设备。示例计算设备可以是包括由总线508可操作地连接的处理器502、存储器504、和输入 /输出端口 510的计算机500。在一个示例中,计算机500可包括被配置为帮助识别与数据流相关联的应用的分组分类逻辑530。在不同的示例中,逻辑530可以硬件、软件、固件、和 /或其组合来实现。尽管逻辑530示出为连接到总线508的硬件组件,但是应当理解,在一个示例中,逻辑530可在处理器502中实现。这里使用的“软件”包括但不限于使得计算机、处理器、或其它电子器件以期望方式执行功能、动作和/或行为的一条或多条可执行指令。“软件”不指代本质上称作为所存储指令(例如程序列表)的所存储指令。指令可以各种形式体现,包括例程、算法、模块、方法、线程、和/或程序(包括来自动态链接库的分离的应用或代码)。逻辑530可提供用于将与来自数据流的分组相关联的数据提供到一组分组属性检测器的手段(例如硬件、软件、固件)。分组属性检测器组的成员可返回关于根据与分组相关联的属性是否匹配于与被测试应用所生成的分组的属性的信号。逻辑530还可提供用于提供描述数据流与所标识应用相关联的可能性的信号的手段(例如硬件、软件、固件)。 此信号可基于来自分组属性检测器组成员的信号来提供。与逻辑530相关联的手段例如可实现为ASIC。这些手段还可实现为计算机可执行指令,该计算机可执行指令作为临时存储在存储器504的数据516而被给予计算机500并且然后由处理器502执行。一般地描述计算机500的示例配置,处理器502可以是各种类型的处理器,包括双微处理器和其它的多处理器体系结构。存储器504可包括易失性存储器和/或非易失性存储器。非易失性存储器例如可包括ROM和PR0M。易失性存储器例如可包括RAM、SRAM和 DRAM。盘506可例如经由输入/输出接口(例如卡、设备)518和输入/输出端口 510可操作地连接到计算机500。盘506例如可以是磁盘驱动器、固态盘驱动器、软盘驱动器、磁带驱动器、Zip驱动器、闪存卡和存储棒。此外,盘506可以是⑶-ROM驱动器、⑶-R驱动器、 ⑶-RW驱动器、DVD ROM驱动器、蓝光驱动器和HD-DVD驱动器。存储器504例如可存储处理514和/或数据516。盘506和/或存储器504可存储控制和分配计算机500的资源的操
作系统。总线508可以是单条内部总线互连体系结构和/或其它总线或网状体系结构。尽管示出了单条总线,应当理解,计算机500可使用其它总线(例如PCIE、1394、USB、以太网) 与各种设备、逻辑和外围设备通信。总线508可以是例如包括存储总线、存储控制器、外围总线、外部总线、纵横开关、和/或本地总线的类型。计算机500可经由I/O接口 518和输入/输出端口 510与输入/输出设备交互。 输入/输出设备例如可以是键盘、麦克风、点选设备、照相机、视频卡、显示器、盘506和网络设备520。输入/输出端口 510例如可包括串行端口、并行端口和USB端口。计算机500可在网络环境下操作并且因此可经由I/O接口 518和/或I/O端口 510连接到网络设备520。通过网络设备520,计算机500可与网络交互。通过网络,计算机 500可逻辑地连接到远程计算机。计算机500可与之交互的网络包括但不限于LAN、WAN和其它网络。尽管已通过描述示例示出了示例系统和方法,并且尽管已相当详细地描述了示例,但是申请者的意图不是将所附权利要求的范围约束或以任何方式限制为这些细节。当然,不可能为了描述这里所述的系统和方法而描述组件或方法的每一种可想象的组合。因此,本发明不限于所示出和描述的特定细节、代表性的装置和说明性示例。因此,本申请旨在包含落入所附权利要求范围内的变更、修改和变化。在详细描述或权利要求中使用术语“包括”的意义上,它旨在以与术语“包含”类似的方式是相容的,因为该术语“包含”当使用时被解释为权利要求中的过渡词。在详细描述或权利要求中使用术语“或”(例如A或B)的意义上,它旨在意味着 "A或B或两者”。当申请者旨在表示“仅A或B而不是两者”时,那么将使用术语“仅A或B 而不是两者”。因此,这里术语“或”的使用时相容的,并且不是排斥性的用法。参见Bryan A. Garner,A Dictionary of Modern Legal Usage 624 (2d. Ed. 1995)。在这里使用短语“A、B和C中的一个或多个”的意义上(例如被配置为存储A、B和 C中的一个或多个的数据存储器),它旨在覆盖以下可能性的集合·Λ、B、C、AB、AC、BC、ABC、 AAA、AAB, AABB, AABBC, AABBCC (例如数据存储器可仅存储Α、仅存储B、仅存储C、存储A&B、 A&C、B&C、A&B&C、A&A&A、A&A&B、A&A&B&B、A&A&B&B&C、A&A&B&B&C&C)。它不旨在要求 A 中的一个、B中的一个、和C中的一个。当申请者旨在表示“至少A中的一个、至少B中的一个、 和至少C中的一个”时,那么将使用短语“至少A中的一个、至少B中的一个、和至少C中的一个,,。
权利要求
1.一种设备,包括分组选择逻辑,分组选择逻辑识别与数据流相关联的分组,其中所述数据流包括从源设备向目的设备发送的分组序列,并且其中所述数据流与应用相关联;一组分组分类逻辑,其中分组分类逻辑组的成员生成关于与所述分组相关联的属性是否匹配于与被测试应用所生成的分组相关联的属性的信号,并且其中分组分类逻辑组的成员并行操作;和一组数据流分类逻辑,其中所述数据流分类逻辑组的成员至少部分地基于来自分组分类逻辑组的成员的一个或多个信号来提供标识所述数据流与应用相关联的可能性的信号。
2.根据权利要求1所述的设备,包括聚合逻辑,聚合逻辑接收来自所述数据流分类逻辑组的成员的信号,并且至少部分地基于来自数据流分类逻辑组的成员的信号来向所述数据流分配数据流分类符,其中所述数据流分类符将所述数据流与所标识应用相关联。
3.根据权利要求2所述的设备,其中向所述数据流分配数据流分类符包括存储所述数据流分类符和所述数据流之间的关联。
4.根据权利要求2所述的设备,其中向所述数据流分配数据流分类符包括提供标识所述数据流分类符和所述数据流的信号。
5.根据权利要求2所述的设备,包括动作逻辑,动作逻辑至少部分地基于所述数据流分类符来执行与所述数据流相关联的动作。
6.根据权利要求5所述的设备,其中所述动作逻辑是服务质量逻辑,并且其中所述动作包括修改针对所述数据流的服务质量设置。
7.根据权利要求5所述的设备,其中所述动作逻辑是数据收集逻辑,并且其中所述动作包括收集有关所述数据流的数据。
8.根据权利要求5所述的设备,其中所述动作逻辑是计费逻辑,并且其中所述动作包括更新与所标识应用相关联的计费数据。
9.根据权利要求2所述的设备,其中所标识应用是网络电话(VoIP)应用、文件共享应用、文件传送协议(FTP)应用、因特网浏览器、聊天应用、游戏应用、视频应用、音频应用和会议应用之一。
10.根据权利要求1所述的设备,其中识别与数据流相关联的分组包括对与分组相关联的一组状态数据和描述数据流的五元组流定义进行比较。
11.根据权利要求1所述的设备,其中分组分类逻辑组的成员生成的信号是二元信号。
12.根据权利要求1所述的设备,其中属性与分组大小、分组到达率、源端口、目的端口和协议中的一个或多个相关联。
13.根据权利要求1所述的设备,其中所述分组分类逻辑组的成员包含在专用集成电路、场可编程门阵列、多核中央处理单元、和多核数字信号处理器的一个中。
14.一种方法,包括向一组分组属性检测器提供与来自数据流的分组相关联的数据,其中分组属性检测器组的成员返回关于从所述分组得到的数据是否对应于从源自被测试应用的分组所生成的训练数据的信号;和至少部分地基于来自分组属性检测器组的成员的一个或多个信号来提供描述所述数据流与所标识应用相关联的可能性的信号。
15.根据权利要求14所述的方法,其中所述数据流是从源设备向目的设备发送的分组序列,并且其中所述数据流与应用相关联。
16.根据权利要求14所述的方法,其中所标识应用是网络电话(VoIP)应用、文件共享应用、文件传送协议(FTP)应用、因特网浏览器、聊天应用、游戏应用、视频应用、音频应用和会议应用之一。
17.根据权利要求14所述的方法,其中分组属性检测器组的成员并行操作。
18.根据权利要求14所述的方法,其中描述所述数据流与所标识应用相关联的可能性的信号帮助向所述数据流分配数据流分类符,其中所述数据流分类符将所述数据流与所标识应用相关联。
19.根据权利要求18所述的方法,其中所述数据流分类符有助于以下之一修改与所标识应用和所述数据流之一相关联的值,和记录与所标识应用和所述数据流之一相关联的数据。
20.一种系统,包括向一组分组属性检测器提供与来自数据流的分组相关联的数据的逻辑,其中分组属性检测器组的成员返回关于与所述分组相关联的属性是否匹配于与从被测试应用所生成的分组相关联的属性来的信号;和用于至少部分地基于来自分组属性检测器组的成员的一个或多个信号来提供描述所述数据流与所标识应用相关联的可能性的信号的逻辑。
全文摘要
描述了与分组识别相关联的设备、方法和其它实施例。一个示例设备包括分组选择逻辑,分组选择逻辑用于识别与数据流相关联的分组。该示例设备还可包括一组分组分类逻辑。分组分类逻辑可生成关于与所述分组相关联的属性是否匹配于与被测试应用所生成的分组相关联的属性的信号。
文档编号H04L12/56GK102474457SQ201080032929
公开日2012年5月23日 申请日期2010年7月22日 优先权日2009年7月22日
发明者帕蒂普·苏达姆, 戴博乔提·杜塔, 桑塔·拉简, 苏米特·辛格 申请人:思科技术公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1