CN113348645B - 数据流分类的系统和方法 - Google Patents

数据流分类的系统和方法 Download PDF

Info

Publication number
CN113348645B
CN113348645B CN201980089687.1A CN201980089687A CN113348645B CN 113348645 B CN113348645 B CN 113348645B CN 201980089687 A CN201980089687 A CN 201980089687A CN 113348645 B CN113348645 B CN 113348645B
Authority
CN
China
Prior art keywords
data
network
stream
data stream
classification
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.)
Active
Application number
CN201980089687.1A
Other languages
English (en)
Other versions
CN113348645A (zh
Inventor
H·蒂利
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Sasser Co
Original Assignee
Sasser Co
Priority date (The priority date 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 date listed.)
Filing date
Publication date
Application filed by Sasser Co filed Critical Sasser Co
Publication of CN113348645A publication Critical patent/CN113348645A/zh
Application granted granted Critical
Publication of CN113348645B publication Critical patent/CN113348645B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L43/00Arrangements for monitoring or testing data switching networks
    • H04L43/02Capturing of monitoring data
    • H04L43/026Capturing of monitoring data using flow identification
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L47/00Traffic control in data switching networks
    • H04L47/10Flow control; Congestion control
    • H04L47/24Traffic characterised by specific attributes, e.g. priority or QoS
    • H04L47/2441Traffic characterised by specific attributes, e.g. priority or QoS relying on flow classification, e.g. using integrated services [IntServ]
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L41/00Arrangements for maintenance, administration or management of data switching networks, e.g. of packet switching networks
    • H04L41/14Network analysis or design
    • H04L41/145Network analysis or design involving simulating, designing, planning or modelling of a network
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L41/00Arrangements for maintenance, administration or management of data switching networks, e.g. of packet switching networks
    • H04L41/14Network analysis or design
    • H04L41/147Network analysis or design for predicting network behaviour
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L43/00Arrangements for monitoring or testing data switching networks
    • H04L43/02Capturing of monitoring data
    • H04L43/022Capturing of monitoring data by sampling
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L43/00Arrangements for monitoring or testing data switching networks
    • H04L43/20Arrangements for monitoring or testing data switching networks the monitoring system or the monitored elements being virtualised, abstracted or software-defined entities, e.g. SDN or NFV
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L45/00Routing or path finding of packets in data switching networks
    • H04L45/302Route determination based on requested QoS
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L47/00Traffic control in data switching networks
    • H04L47/10Flow control; Congestion control
    • H04L47/19Flow control; Congestion control at layers above the network layer
    • H04L47/193Flow control; Congestion control at layers above the network layer at the transport layer, e.g. TCP related
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L47/00Traffic control in data switching networks
    • H04L47/10Flow control; Congestion control
    • H04L47/19Flow control; Congestion control at layers above the network layer
    • H04L47/196Integration of transport layer protocols, e.g. TCP and UDP
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L47/00Traffic control in data switching networks
    • H04L47/10Flow control; Congestion control
    • H04L47/24Traffic characterised by specific attributes, e.g. priority or QoS
    • H04L47/2408Traffic characterised by specific attributes, e.g. priority or QoS for supporting different services, e.g. a differentiated services [DiffServ] type of service
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L47/00Traffic control in data switching networks
    • H04L47/10Flow control; Congestion control
    • H04L47/24Traffic characterised by specific attributes, e.g. priority or QoS
    • H04L47/2483Traffic characterised by specific attributes, e.g. priority or QoS involving identification of individual flows
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L47/00Traffic control in data switching networks
    • H04L47/10Flow control; Congestion control
    • H04L47/24Traffic characterised by specific attributes, e.g. priority or QoS
    • H04L47/2491Mapping quality of service [QoS] requirements between different networks
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L69/00Network arrangements, protocols or services independent of the application payload and not provided for in the other groups of this subclass
    • H04L69/22Parsing or analysis of headers
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L41/00Arrangements for maintenance, administration or management of data switching networks, e.g. of packet switching networks
    • H04L41/08Configuration management of networks or network elements
    • H04L41/0894Policy-based network configuration management
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L41/00Arrangements for maintenance, administration or management of data switching networks, e.g. of packet switching networks
    • H04L41/40Arrangements for maintenance, administration or management of data switching networks, e.g. of packet switching networks using virtualisation of network functions or resources, e.g. SDN or NFV entities
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L43/00Arrangements for monitoring or testing data switching networks
    • H04L43/50Testing arrangements
    • YGENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
    • Y02TECHNOLOGIES OR APPLICATIONS FOR MITIGATION OR ADAPTATION AGAINST CLIMATE CHANGE
    • Y02DCLIMATE CHANGE MITIGATION TECHNOLOGIES IN INFORMATION AND COMMUNICATION TECHNOLOGIES [ICT], I.E. INFORMATION AND COMMUNICATION TECHNOLOGIES AIMING AT THE REDUCTION OF THEIR OWN ENERGY USE
    • Y02D30/00Reducing energy consumption in communication networks
    • Y02D30/50Reducing energy consumption in communication networks in wire-line communication networks, e.g. low power modes or reduced link rate

Abstract

对由一个或多个网络元件在网络上传送的数据流进行分类的系统和方法。一种方法包括创建包括分组时间戳和预定义分组报头字段的信息的表,基于表中的信息将分组分组为数据流,向每个数据流分配流标识符,确定具有数据流的一个或多个特征和/或一个或多个特性的多个特征/特性集,使用所述多个特征/特性集确定一个或多个分类器以预测流标签,并生成包括一个或多个分类器以对网络上的数据流进行分类的分类策略。该方法还可以包括将分类策略存储在由正在对网络上的数据流进行分类的网络元件可访问的至少一个非暂态计算机介质中,并且使用分类策略来对数据流进行分类。

Description

数据流分类的系统和方法
通过引用并入任何优先权申请
在与本申请一起提交的申请数据表中确定了外国或国内优先权要求的任何和所有申请特此根据37CFR 1.57通过引用被并入。
本申请要求于2018年11月27日提交的题为“DATA CENTER DATA FLOWCLASSIFICATION VIA MACHINE LEARNING(通过机器学习的数据中心数据流分类)”的美国临时申请号62/771,635的权益,该申请通过引用整体并入本文。
技术领域
本发明涉及通过通信网络传输数字信息。更具体地,本发明涉及实时或接近实时地表征网络中的数据流量流。
背景技术
超过百分之七十的互联网信息流量发生在数据中心内。数据中心网络(DCN)由数百到数百或数千台主机(服务器)组成,经由网络交换机和路由器在许多数据链路上交换数据。为了在有效利用网络资源的同时满足不同的优先级要求,需要具有复杂的流量工程系统和方法。在典型的数据中心网络中,一小部分数据流消耗了大部分带宽,并且因此对网络性能具有最大影响。因此,我们努力应对该情况,以确保数据中心的高效操作。通常,这些工作涉及识别有时被称为“大象流”或“重击流”或“长流”或类似名称的这些大数据流,并将这些流与数据中心中有时被称为“小鼠流”或“短流”的其它流区别对待。大多数“长”或“大象”流也各自具有大量字节(有效载荷),并且因此长/大象也可以解释为“重”数据流(即,具有大量有效载荷)。许多其它网络(不仅仅是数据中心网络)也可以处理具有上述类似特性的数据流量。
目前,大多数数据流量管理方法要么过于高级和严格,要么过于细化和复杂。高级和严格的方法包括分组报头中的服务级别协议(SLA)驱动的服务质量(QoS)标志或例如绑定到网络上运行的特定应用的其它确定性优先级。过于精细和复杂的方法包括诸如等价多路径(ECMP)协议的数据中心协议,其中通过以下来为每个分组做出路由决策:映射从源到目的地的具有相同跳数的多个数据链路并沿着这些多个“等成本”路径路由分组,或管理网络设备上的缓冲器,使得流量的“正确组合”驻留在缓冲器中,而其它流量则从缓冲器中排除或丢弃。
需要一种更优的系统和方法,以经由数据中心和其它网络中的机器学习来提供基本上实时的数据流识别和分类。
发明内容
所公开的实施例可以提供在数据中心或其它网络中的一个或多个网络元件,预定分类策略可以包括系统、过程和软件以在数据流正在通过网络传输时对其进行分类。例如,将实时或接近实时的数据流分类为数据中心或其它网络内部的大象流和小鼠流,使得那些大象流或小鼠流可以受到特殊处理,以改善数据中心内所有数据的流。
一项创新包括一种对由一个或多个网络元件正在网络上传送的数据流进行分类的方法。该方法包括从网络接收多个分组,每个分组具有报头信息;至少部分地基于每个分组的相应报头信息将多个分组分成多个数据流。该方法还包括,对于每个数据流:选择相应数据流中的分组子集;使用从分组子集确定的一个或多个参数并使用用于对数据流进行分类的预定分类策略来将数据流分类为至少两个数据流类别中的一个,所述分类策略包括一个或多个分类器,每个分类器使用从多个样本数据流中的分组确定的参数来定义,该样本数据流先前在网络上传输;并基于其相应的分类在所述网络中路由所述数据流。
此类方法的进一步特征在于,或此类方法可进一步包括以下概括公开和/或在此讨论的多个方面(特征或限制)。一方面,样本数据流的数量大于一千个数据流,或者可以大于一万个数据流,或者大于十万个数据流。该方法可以进一步包括在网络元件上存储预定分类策略。该方法可以进一步包括生成预定分类策略。一方面,生成预定分类策略可以包括(i)获得先前在网络上传输的分组样本;(ii)将分组样本分组为数据流;(iii)将数据流分成训练数据和测试数据;(iv)从训练数据中确定一个或多个参数;(v)使用训练数据的一个或多个参数训练一个或多个分类器;(vii)使用测试数据测试一个或多个分类器以确定每个分类器的准确度;(viii)确定每个分类器是否准确,并且响应于确定分类器不准确,重复方法的(v)-(vi)部分;以及向网络元件提供包括一个或多个分类器的分类策略。
一方面,一个或多个参数包括多个特征之一,每个特征是使用数据流中的相应分组信息确定的与时间无关的特征。一方面,一个或多个特征包括以下中的至少一个:帧号、协议、源IP地址、目的地IP地址、源端口号、目的地端口号、序列号、服务质量(QoS)、指示分组是否可以分段的标志、指示是否跟随多个分段之一的标志、分段在原始分组中的位置、指示是否设置TCP和UDP字段二者的标志,或指定服务质量级别的服务类型(ToS)标志。一方面,一个或多个参数包括多个特性中的一个。一方面,一个或多个特性包括使用数据流中的相应分组信息计算的基于时间的特性。一方面,其中一个或多个特性包括以下中的至少一个:流ID、信道ID、子信道ID、流中的分组位置号、自该流中的最后一帧以来的时间、自该流中的第一帧以来的时间、用于该流的平均时间、平均时间差、该流中的累积分组大小、该流中的平均分组大小或流速率。在一些实现方式中,预定分类策略可以包括一个或多个分类器。例如,在各种实现方式中,预定分类策略可包括至少两个分类器、至少三个分类器,或至少四个分类器(或多于四个的分类器)。
在一些实现方式中,该方法进一步包括基于由网络元件接收到的输入来选择至少两个分类器中的一个分类器来对数据流进行分类。在一些实现方式中,输入基于预设流量工程策略。在一些实现方式中,预设流量工程策略基于一天中的时间或星期几来规定特定分类器的使用。该方法可以进一步包括基于数据流的分类来执行一个或多个网络动作。例如,该一个或多个网络动作可以包括向一些或所有流分配实时服务质量(QoS),将数据流路由到不同的信道,对流表(SDN)的输入,将长数据流路由到专用链路,将长数据流路由到光子层,将数据流路由到P2P无线网络,调节缓冲器设置,管理流式传输参数,管理压缩,和/或向数据流流量工程提供输入。在该方法的各种实现方式中,将多个分组分成多个数据流包括将在其报头中具有相同5元组数据的分组分配到相同数据流中。在该方法的各种实现方式中,将多个分组分成多个数据流包括至少部分地基于在具有相同5元组数据的两个分组之间的预定时间来将分组分成不同的数据流。
另一创新包括一种对由一个或多个网络元件在网络上传送的数据流进行分类的方法,该方法包括:从多个样本分组中创建包括分组时间戳和预定义分组报头字段的信息的表,该多个样本分组先前在网络上传输;至少部分地基于表中的信息将多个样本分组分组为数据流;向数据流中的每个数据流分配流标识符;将数据流分组为训练部分和测试部分;确定具有训练数据流的一个或多个特征和/或一个或多个特性的一个或多个参数;确定分类器以预测流标签,包括迭代训练和测试分类器,使用训练部分和一个或多个参数来训练每个分类器,以及使用测试部分确定分类器的准确度;生成包括分类器以对网络上的数据流进行分类的分类策略;以及提供将由网络元件用于对数据流进行分类的分类策略。此类方法可以进一步包括上面讨论的任何特征、方面和限制。
在另一创新中,一种对由一个或多个网络元件在网络上传送的数据流进行分类的方法包括:(i)从网络获得分组样本;(ii)将分组样本分组为数据流;(iii)将数据流分成训练数据和测试数据;(iv)使用训练数据和训练数据的一个或多个参数作为真实数据,训练一个或多个分类器对数据流进行分类;(v)使用测试数据确定准确度或一个或多个分类器;(vi)响应于确定分类器不准确,重复方法的(iv)-(v)部分;以及(vi)提供包括用于对网络上的数据流进行分类的一个或多个分类器的分类策略。该方法可以进一步包括将分类策略存储在至少一个非暂态计算机介质中,该非暂态计算机介质可由正在对网络上的数据流进行分类的网络元件访问。在此公开的任何方法可以包括用于生成在分类策略中的分类器:(i)从训练数据中确定包括多个特征和多个特性的初始参数集;(ii)使用所选的分类器模型和用于训练数据中相应数据流的初始参数集,将训练数据中的数据流分类为至少两个数据流类别中的一个,并使用测试数据确定相应数据流的分类的准确度;(iii)通过改变初始参数集的特征和特性中的一个或多个,生成一个或多个修改的参数集;(iv)使用所选的分类器和用于训练数据中相应数据流的多个修改的参数集,将训练数据中的数据流分类为至少两个数据流类别中的一个,并使用每个修改的参数集来确定分类器对测试数据中的数据流进行分类的相应准确度;(v)重复步骤(iii)和(iv)直到为所选的分类器确定了满足准确度值的最终参数集,最终参数集是修改的参数集中的至少一个;以及(vi)将所选的分类器和最终参数集包括在分类策略中。在一些实现方式中,准确度值是预定准确度值。在一些实现方式中,准确度值是使用所选分类器和测试数据实现的最高准确度值。
另一创新是执行在此所述的任何方法的系统。一个示例系统用于生成分类策略以对在网络上传输(通信)的数据流进行分类。分类策略可由网络元件使用。该系统包括一个或多个非暂态计算机存储介质,该非暂态计算机存储介质被配置为至少存储先前在网络上传输的分组的样本,并且存储计算机可执行指令。该系统还包括与一个或多个非暂态计算机存储介质通信的一个或多个计算机硬件处理器,该一个或多个计算机硬件处理器被配置为执行计算机可执行指令以至少:(i)将分组样本分组为数据流;(ii)将数据流分成训练数据和测试数据;(iii)使用训练数据和训练数据的一个或多个参数作为真实数据,训练一个或多个分类器对数据流进行分类;(iv)使用测试数据确定准确度或一个或多个分类器,(v)响应于确定分类器不准确(或需要进一步优化),重复部分(iii)-(iv)。该系统还可以被配置为将包括一个或多个分类器的分类策略提供给另一系统(数据中心、一个或多个网络元件),以使用所述分类策略对网络上的数据流进行分类。网络元件可以使用预定的分类策略对网络上的数据流进行分类。重要的是,该一个或多个分类器是使用先前在同一网络上传输(例如,提前几小时、几天、几周或几个月在网络上传输)的分组样本来定义(训练)的,该同一网络随后使用该分类策略。此类系统可以进一步基于数据流的分类和预定的分类策略来执行一个或多个网络动作。也可以执行以下描述的一个或多个其它网络动作及其任何组合。此类一个或多个网络动作包括将实时服务质量(QoS)分配给一些或所有流(例如,可以为短流提供更高的QoS,即,当分组转发到其目的地时,QoS字段被重写或第一次写入(如果QoS字段为空)以获得更高的优先级;将数据流路由到不同的信道(例如,长流可能通过高速端口路由),到流表(SDN)的输入,将长数据流路由到专用链路(例如,专用高速链路),路由长数据流到光子层(例如,到高速光子交换机),并将数据流路由到P2P无线网络(例如,数据中心内的高速点对点无线链路)。
下面参考所附权利要求描述本公开的附加实施例,其可以作为本公开的附加概述。
在各种实施例中,公开了系统和/或计算机系统,其包括具有在其中体现的程序指令的计算机可读存储介质,以及一个或多个处理器,其被配置为执行程序指令以使一个或多个处理器执行包括上面和/或下面描述的实施例的一个或多个方面(包括所附权利要求的一个或多个方面)。分类策略可以被包括在服务器系统上,或可以被包括在专用集成电路(ASIC)或定制为包括数据流处理和分类的其它集成电路芯片上,并且此类ASIC或其它集成电路芯片可以被包括在网络或网络元件中。
在各种实施例中,公开了计算机实现的方法,其中通过一个或多个处理器执行程序指令,上述和/或下述实施例的一个或多个方面(包括所附权利要求的一个或多个方面)被实现和/或执行。
在各种实施例中,公开了包括计算机可读存储介质的计算机程序产品,其中该计算机可读存储介质具有在其中体现的程序指令,该程序指令可由一个或多个处理器执行以使该一个或多个处理器执行包括上述和/或下述实施例的一个或多个方面(包括所附权利要求的一个或多个方面)的操作。
附图说明
为了更好地理解本发明,参考例如将结合以下附图阅读的本发明的详细描述,在该附图中相同的元件被赋予相同的附图标记,并且其中:
图1A示出根据一些实施例的在数据网络(或网络元件)中接收和处理分组的概述;
图1B是示出高级过程的示例的流程图,该高级过程用于确定用于对数据流进行分类并对长流采取系统动作的过程;
图2示出其中可以实现本发明的实施例的数据中心的胖树架构的示例;
图3示出其中可以实现本发明的实施例的数据中心的脊叶架构的示例;
图4A是示出“分组捕获”文件的一部分的表,示出了分组编号和与分组相关的信息,包括分组的5元组数据;
图4B是示出被分配给各个流的分组的示例的表;
图4C示出在数据中心或其它网络中或由多个网络元件传输的数据流(流的每个段由不同数量的分组组成)的示例,示出一些是短流(“小鼠流”),并且一些是长流(“大象流”);
图5是示出用于对数据流进行分类并基于其分类对每个数据流执行动作的过程的示例的流程图,并且进一步地,还可以基于该分类来执行一个或多个动作;
图6是示出用于对数据流进行分类并使用其分类处理每个数据流的过程的示例的流程图;
图7是示出使用来自数据流的一个或多个特征和/或数据流的一个或多个特性(一些基于时间的)来确定用于对来自特定数据中心或其它网络或网络元件的数据流进行分类的一种或多种算法的示例的流程图;
图8是进一步示出使用来自数据流的一个或多个特征和/或数据流的一个或多个特性(一些基于时间的)来确定一种或多种算法以用于对来自特定数据中心或其它网络或网络元件的数据流进行分类的示例的示意图。
图9是可用于实现在此描述的功能的计算机系统的示例;
图10示出根据一些实施例的可以在数据中心或其它网络或网络元件中传输的第一类型的数据流量的示例,数据流量的该示例可用于确定系统/过程以如在此所述的那样对数据流进行分类;
图11示出根据一些实施例的可以在数据中心或其它网络或网络元件中传输的第二类型的数据流量的示例,数据流量的该示例可用于确定系统/过程以如在此所述的那样对数据流进行分类;
图12示出根据一些实施例的可以在数据中心或其它网络或网络元件中传输的第三类型的数据流量的示例,数据流量的该示例可用于确定系统/过程以如在此所述那样对数据流进行分类;
图13示出根据一些实施例的对于图10-12中示出的三种不同数据流量类型使用不同算法可以针对长流获得的不同结果的示例;
图14示出根据一些实施例的对于图10-12中示出的三种不同数据流量类型使用不同算法可以针对短流获得的不同结果的示例;以及
图15示出根据一些实施例的基于数据流量类型的对于不同算法的不同分类准确度的示例。
具体实施方式
以下关于附图的各种示例性实施例的详细描述旨在作为对本发明的各种示例性实施例的各个方面的描述,并且不旨在表示在此所述的各个示例性实施例可以实践的唯一方面。详细描述包括用于提供对本发明的各种示例性实施例的透彻理解的特定细节。然而,对于本领域技术人员显而易见的是,可以在没有这些具体细节的情况下实践本发明的各种示例性实施例的一些方面。在一些情况下,众所周知的结构和组件以框图形式示出以避免混淆各种实施例的各种示例。
通过引用被并入在此的文件被认为是本申请的组成部分,例外之处在于,在这些并入的文件中以与本说明书中明确或隐含的定义相冲突的方式定义的任何术语的范围内,仅应考虑本说明书中的定义。
尽管在此描述了各种示例性实施例的特定方面,但是这些方面的许多变化、组合和排列落入本公开的范围内。尽管提到了某些方面的一些益处和优点,但本公开的范围并不旨在限于特定的益处、用途或目标。
概述
如上所述,在使用高级严格方法或精细粒度复杂方法管理数据流的数据流量管理过程和系统中存在主要缺点,因为一对服务器或一组服务器之间在任何时间点交换的数据流量类型可能会有很大差异。例如,在用于网络搜索请求或在线购买交易的一部分的网络通信期间,数据传输通常非常短并且涉及很少的互联网协议(IP)分组(或“分组”)。在另一个极端,用于备份应用的网络通信可能涉及许多分组中的大量数据,并且从源计算机(或“源”)到目标计算机(或“目标”)的数据传输可能需要相对大量的数据时间。在一些示例中,分组的短传输可能持续纳秒到毫秒,而分组的长传输可能持续数百毫秒到几分钟或几小时。
当数据工作负载和/或流量特性动态地和不可预测地改变时,用于处理网络(例如,网络元件)的数据传输的严格的和确定性的过程就不足了。在另一种极端情况下,细粒度方法可能会造成网络拥塞,例如,当长数据传输沿多个数据链路路由时,会阻塞用于对时间敏感的数据流量的那些链路,诸如快速电子商务交易。由于这些原因,已经开发了新的流量工程方法,其中数据流量由网络中的数据流管理。数据流被定义为按顺序排列的一系列分组,具有一组相同的分组报头特性。数据流的传统定义是具有相同源端口、目的端口、源IP地址、目的IP地址和传输协议类型的一组IP分组。分组报头的各个元素被称为字段,并且分组报头的上述五个字段被称为“5元组”报头信息。版本4的IP(IPv4)报头和后来的IPv6二者具有14个字段,其中5个组成了5元组报头信息。已经提出了各种流识别和分类方法。例如,如果就累积字节数而言达到某个阈值,网络上数据流中连续分组中的字节数可以相加(例如,通过网络元件)并被声明为长流;在该示例中,除非被声明为长流,否则数据流将作为短流处理。参见例如美国专利US 9,124,515,通过引用将其并入本文。
在在此描述的实施例中,生成预定分类策略(“分类策略”),其可用于将数据流分类为一组类别;例如,两个或更多个类别。在一些示例中,使用分类策略将数据流分类为小鼠流或大象流。在一些示例中,数据流被分类为三个或更多个不同类别的流;例如,短流、中短流和长流。在另一个示例中,使用分类策略将数据流分成四类;例如,短流、中短流、长流和超长流。在一些实现方式中,将数据流分类为四个以上的流也是可能的。因此,尽管在此的许多示例涉及将数据流分类为两个类别(例如,小鼠流和大象流),但各种实施例可以将数据流分类为两个以上的类别。
什么是特定类型的流的定义可取决于各种因素;例如,正在处理的特定数据流,或处理数据流的网络(或网络元件)。在示例中,如果数据流大于100ms,则可以将其归类为长流。在另一个示例中,如果数据流大于200ms,则可以将其归类为长流。在另一个示例中,如果数据流大于一秒,则可以将其归类为长流。在将数据流分成多于两个类别的示例中,小于100ms的数据流可以归类为短数据流,100ms到小于200ms的数据流可以归类为中数据流。200ms到小于1秒的数据流可以归类为长流,大于1秒的数据流可以归类为超长流。在使用分类策略的一些实现方式中,将数据流分类为某个类别的标准由用户预先确定。在使用分类策略的一些实现方式中,使数据流成为特定类别的标准是动态设置的,或者基于网络的或数据流处理系统的一个或多个条件来设置。
如在此所使用的,预定分类策略(有时为简洁起见称为“分类策略”)是指先前已生成以对网络或网络元件(两者在此均称为“网络”以便于参考)上的数据流进行分类的过程,其中使用在网络上传送的数据流样本来确定过程。例如,通过使用来自特定网络的数千、数万或数十万数据流来为该特定网络生成分类策略。因为不同的网络可以处理显著不同类型的数据流量,并且相应地可以具有显著不同类型的数据流,因此使用在该网络上传送的数据流为网络定义分类策略最有可能导致对该网络上的数据流进行分类的最高准确度。然而,如果第一网络处理类似于第二网络的分组流量流,则可以在第二网络上实现使用来自第一网络的数据流样本生成的分类策略,并且第一网络和第二网络中数据流量模式的相似度越高,数据流分类准确度可能越高。
分类策略可以包括一个或多个“分类器”。每个分类器可以是基于模型的过程或算法,该过程或算法已被生成/训练/定义/改进以将数据流分类为一组类别。不同的分类器可以针对包括不同长短流比率的数据流而不同地工作,因此在任何给定数据样本上训练多于一个的分类器以确定哪个分类器最适合该特定类型的数据,这可能是有益的。“训练”(或定义)分类器通常是指定义分类器以对数据流进行准确分类。例如,在对某种类型的数据(例如,具有一定长短流比率的数据)的数据流进行分类时,训练分类器以达到所需的准确度水平。不同的分类器目标可以是基于网络元件上的特定实现方式的。例如,在对数据流进行分类时训练分类器以达到最高准确度,从而使得在一定时间限制内执行处理,使用少量(或最少数量)参数训练分类器以达到可能的最高准确度,训练分类器仅使用数据流中分组的子集(例如,最小数量的分组)来对数据流进行准确分类。由于存在可用于确定和评估对数据流进行分类的许多参数,因此训练确定了用于对数据流进行分类的最优一个或多个参数。例如,哪些参数对确定数据流的准确分类具有最大影响。作为示例,理想的分类器可以使用可以从数据流的一个分组中确定(例如,读取)的一个参数来准确地对该数据流进行分类。然而,至少部分由于不同网络上数据流量的多样性,目前不存在此类“一个”参数。因此,可能必须使用一个或多个参数,并且可能必须根据来自数据流的多于一个的分组来计算参数。因此,分类策略的确定可以包括选择可能的几个分类器中的一个分类器来使用,并且确定使用一个或多个参数中的哪一个。分类策略的确定还可以包括在使用一定数量的分组进行分类时基于它们的准确度评估不同的参数和/或分类器(如果仍然可以达到足够的准确度,则越低越好)。
作为示例,分类器可以实现基于决策树的模型,该模型是众所周知的模型,其可以由类似流程图的示图来表示,该示图示出来自一系列决策的各种结果。作为另一个示例,分类器可以实现基于k最近邻(k-NN)的模型。一种用于数据分类的非参数化方法的k-NN模型(或算法)。作为另一个示例,分类器可以实现基于随机森林的模型,这是另一个众所周知的分类模型,其实现了不同的决策树来预测测试对象的最终类别。如本领域技术人员所理解的,也可以使用其它分类器,诸如神经网络或SVM(支持向量机)。分类器可以利用机器学习技术,该机器学习技术通过处理许多样本数据流来迭代地训练分类器。分类器的训练可以包括使用各种不同参数来使用样本数据流,以及在每个样本数据流中使用不同数量的分组。包括两个或更多个分类器的分类策略可以被控制以在任何特定情况下使用两个或更多个分类器中的一个分类器,并被控制以基于由对数据流进行分类的网络元件接收的输入或通过网络元件确定的条件来从使用分类器中的一个分类器切换到使用分类器中的另一个分类器。例如,可以基于被确定为正在发生的当前网络条件来选择分类器。在另一个示例中,可以基于一个或多个其它标准来选择分类器,例如一天中的时间或一周中的某天(例如,在更可能将要发生大型备份操作的时间期间对网络流量进行不同地分类)。
生成分类策略可以包括针对分类策略中的每个分类器确定用于对数据流进行分类的某些参数,使用一个或多个参数和样本数据流训练分类器对数据流进行分类,并在其它样本数据流上测试分类器。用于确定参数、使用样本数据训练分类器以及使用其它样本数据测试分类器的过程通常可以被称为“训练”分类器。为了训练分类器,获取实际分组数据流的副本作为样本数据流,该实际分组数据流包括已经在网络中传输的各种不同长度和/或不同有效载荷的流。评估样本数据流,以确定表征样本数据流的各种参数(“参数”在此用于统称“特征”和/或“特性”)。确定每个样本数据流的“类型”(例如,小鼠流、大象流;或作为一种或三种或更多种类型的流(例如,短、中、长、非常长)),从而建立样本数据流作为“真实数据”,该“真实数据”可用于训练和测试分类器,并在用于对特定样本数据流进行分类时评估分类器的准确度。用于训练分类器的特征和特性可以包括在此公开的一个或多个特征和/或一个或多个特性。用于训练算法的特征和特性还可以包括与在此列出的不同的一个或多个其它特征和/或一个或多个特性,并且此类实现方式在本发明的范围内。例如,可以确定特征或特性,以帮助对可能携带一定量的流量(字节)的某些流进行分类:例如,可能携带小于或大于1吉比特(或一些其它阈值)的流。样本数据流可以分成两个数据集:用于训练分类策略的每个分类器的训练样本数据集(第一样本数据集);以及用于测试每个“经训练的”分类器的测试样本数据集(第二样本数据集)。例如,训练样本数据集可包括80%的样本数据流并且用于训练分类器,并且测试样本数据集可包括20%的样本数据流,并且用于例如在分类器经过训练后对其进行测试,以确定经训练的分类器中的每一个分类器的准确度。
用于训练分类器(并且在操作中用于对数据流进行分类)的一个或多个特征可以包括可以直接从分组的报头中的信息确定的信息。用于训练分类器(以及用于对数据流进行分类的操作)的一个或多个特性可以从分组报头中的信息或分组的其它方面(诸如分组被传输的时间,或自当前流中传输最后一个分组以来经过的时间)来计算。在此,为了便于参考此类参数可被称为“特征”或“特性”,但为了便于参考,任何此类特征或特性通常可被称为“参数”。作为示例,可用于训练分类器的分组特征可包括以下中的一个或多个:帧号、协议、源IP地址、目的地IP地址、源端口号、目的地端口号、序列号、服务质量(QoS)、指示分组是否可以分段的标志、指示是否跟随多个分段之一的标志、原始分组中分段的位置、指示是否设置TCP和UDP字段二者的标志或指定服务质量级别的服务类型(ToS)标志。作为示例,可用于训练分类器的特性可以包括以下中的一个或多个:流ID、信道ID、子信道ID、流中的分组位置号、自该流中的最后一帧以来的时间、自该流中第一帧以来的时间、用于该流的平均时间、平均时间差、该流中的累积分组大小、该流中的平均分组大小或流率(例如,以每秒分组数量为单位)。
作为用于训练分类器的示例,针对训练样本数据集中的数据流计算所有参数,并确定训练样本数据集中的数据流中的每个数据流是长流还是短流。然后使用每个数据流的流类型的“真实”,并使用所有的参数,分类器被训练以基于参数正确识别训练样本数据集中的每个数据流的类型。使用所有参数,分类器的准确率可能高达100%。然而,由于一些参数从数据流中计算,并且此类计算需要一定的时间量,因此在实时应用中为接收到的数据流确定所有参数是不切实际的。例如,通常用于对数据流进行分类的参数越多,对数据流进行分类所花费的时间就越长,使得在分类速度与使用的参数数量之间存在折衷。此外,因为一些参数是由基于时间的计算确定的,其中需要评估多于一个的分组来确定该参数,所以可能需要最小化需要基于时间的计算的参数数量,同时仍然达到可接受的准确度分类。相应地,通过分类器执行评估训练样本数据集的附加迭代来确定小于所有参数的参数集,它们可以用于准确地对数据流进行分类。
例如,可以使用以上识别的26个参数的各种子集来执行训练分类器的迭代,其中每次迭代具有不同组合的和/或不同数量的参数。基于该训练,可以确定最有可能样本数据集上针对特定分类器(例如,特定分类器模型)产生最高准确度的参数子集。例如,对于特定样本数据集,可以确定实现特定准确度(例如95%)需要使用仅五个参数,并且仅使用三个参数产生85%的准确度,但可以更快地执行分类并且需要更少的资源。基于将使用预定分类策略的网络性能目标中的特定实现方式,提供的分类策略可包括使用参数中的五个参数的分类器(并且可以达到95%的准确度),或使用参数中的三个参数的分类器(并且可以达到85%的准确度)。在一些实现方式中,分类策略可以包括使用五个参数的分类器和使用三个参数的分类器二者,并且网络可以基于一个或多个条件在使用不同分类器之间切换。在训练分类器时,训练可以将某些参数确定为对确定数据流的分类最有用。在训练分类器时考虑的另一个因素是做出分类决策所用的数据流的分组数量,因为在达到准确分类中评估较少数量的分组是可取的。
例如,在一些情况下(例如,基于训练样本数据集和选择的分类器模型),训练可以确定自该流中第一帧以来的参数时间是在确定数据流分类中的最重要参数。在另一个示例中,训练可以确定参数流率是确定数据流分类的最重要参数。在已经使用训练样本数据集训练了一个或多个分类器之后,可以使用测试样本数据集测试每个分类器,以测试分类器对未训练的数据流进行分类。然后可以迭代地改进用于分类器的参数,并执行附加的训练和测试;例如,优化分类器的准确度,同时最小化分类器对数据流进行分类所花费的时间量。由于需要大量时间,因此分类器的训练和测试是“离线”执行的,其中可以对数千个样本数据流执行数千次迭代,以便针对该特定样本数据和该特定分类器模型,确定最适合用于对数据流进行分类以达到网络要求的可接受准确度的参数集,以及其中在可接受的时间量内执行分类以最小化对用于管理数据流的网络性能的影响。在一个示例中,使用特定样本数据的参数集,针对三个不同数据集在针对大象流持续时间的三个不同阈值下,测试三个分类器。已示出:有可能在仅检查流中的前两个分组后预测准确度高于77%。一旦已经预测了大象流,就可以取决于用户而采取流量工程动作,以提高数据中心或其它网络的效率和性能。
在确定了一个或多个分类器的参数之后,包括一个或多个分类器的分类策略可以被提供给网络元件并被实现以对网络中的数据流进行分类。例如,网络元件可以选择存储在网络元件处的分类策略中的分类器之一,实时确定所选分类器在对数据流进行分类时使用的参数。在操作中,一旦分组被分组到数据流中,分类策略使用数据流中的分组的子集来确定其分类。在示例中,分类策略使用数据流的两个分组来确定其分类。在其它示例中,分类策略使用数据流的多于两个的分组来确定其分类。也就是说,分类策略可以使用数据流的三个分组、四个分组、五个分组、六个分组、七个分组、八个分组、九个分组或十个分组来确定分类。在一些限制下,分类策略可以使用数据流的多于十个的分组来确定其分类,但是通常使用尽可能少的分组来最小化用于确定分类的网络资源(例如,计算参数)并最小化对每个数据流进行分类所花的时间。在分类速度最重要的一些示例中,分类器可以被编程为甚至在数据流中的第一分组之后做出分类决策。
在一些情况下,可以基于由分类策略确定的分类来采取网络的各种动作。在各种增强中,网络中的动作可以包括以下一项或多项:向某些流分配实时服务质量、将某些流路由到不同的通信信道、向流表(SDN)提供输入、将长流或“重”流路由到专用链路,将长或“重”流路由到光子层,将流路由到P2P无线网络,调节某些网络元件的缓冲器设置,管理用于网络的流式传输参数,或向其它流量工程程序或系统提供输入。
本公开的各种实施例提供对各种技术和技术领域的改进。例如,如上所述,现有数据流分类可能不准确、缓慢和/或不一致,并且本公开的各种实施例提供了对此类技术的显著改进。此外,用于利用机器学习模型来提高通信数据中心处的计算机设备的性能的本公开的各种实施例与计算机技术密切相关。例如,提高通信中心处的计算机性能的方法可以包括以下一项或多项:创建分组时间戳和预定义分组报头字段的表,将分组分组流中并分配流标识,计算流统计,将流分类标签分配给每个流,创建用于训练机器学习模型的特征集,训练机器学习模型以预测流标签,以及使用计算机设备预测流标签并使用预测的流标签改进流量工程。此类特征和其它特征与计算机技术密切相关并由计算机技术实现,并且除了计算机技术外不会存在。例如,在没有实现它们的计算机技术的情况下,不能仅由人类合理地执行在此参考各种实施例描述的与显示数据的交互。此外,经由计算机技术实现本公开的各种实施例能够实现在此描述的许多优点,包括更有效的数据流分类,以及作为数据流分类的结果在网络上执行动作。
本发明可以适用于通常称为数据中心或“云环境”或通常称为“IP网络”的计算机设施,也就是使用互联网协议以采用分组来传输数据的任何网络。数据流的识别和分类允许以比高级优先级更高粒度级别,但以比单个分组更低粒度级别,管理流量。例如,如果可以识别可能持续很长时间并因此可能阻塞数据链路的流,则这些流可能不同地路由(诸如经由特殊的高速链路)。或者,识别可能的长流可能允许对那些特定流不同地应用的流量工程方法。对于要不同地管理的长流,需要在网络中实时识别它们。这可能很困难,因为流持续时间可能很短,变化很大并且动态变化。一些长流可以通过发现它们所属的应用(诸如数据镜像)来识别,但此类方法通常需要深度分组检查(DPI),这是资源密集型的,并且如果数据有效载荷被加密,这通常被认为是不受欢迎的或甚至不可能的。
术语
为了便于理解在此讨论的系统和方法,下面定义了多个术语。下面定义的术语以及在此使用的其它术语应被解释为包括所提供的定义、术语的普通和习惯含义和/或相应术语的任何其它隐含含义。因此,以下定义不限制这些术语的含义,而仅提供示例性定义。
流中的平均分组大小:数据流中的或者至少是数据流中正在评估平均分组大小的分组的平均分组大小的计算。
平均时间,该流:指示从特定数据流的第一帧以来的平均持续时间的所计算的特性。
平均时间差:所计算的特性,指示该流中的帧与其可能不在该流中的紧邻的先前帧之间的时间差的平均值。
分组可被分段:是指确定IP报头中是否设定了不分段(DF)标志,指示从不执行分组的分段。
信道ID:定义流所属的信道。
用于计算平均时间的累积时间,该流:用于计算平均时间差的自上一帧以来的累积时间。
流中的累积分组大小:指示流中分组的累积分组大小的所计算特性。
目的地IP地址:分组正被发送到的主机互联网协议地址。
目的地端口号:分组被发送到的远程主机上的端口号。
DPI:深度分组检查是一种数据处理类型,其详细检查正在通过计算机网络发送的数据,并且通常通过相应地阻止、重新路由或记录数据来采取动作。
指示是否TCP和UDP字段二者都被设置的标志:可以被设置以指示TCP和UDP协议二者都被设置的标志。
流ID:分配给流的唯一整数。
帧号:帧是计算机网络和电信中的数字数据传输单元。在传输分组的系统中,帧是用于单个网络分组的简单容器。
流率:根据每秒分组的数量而确定的所计算特性。
网络元件:网络元件是计算机网络中联合了一个或多个物理设备的可管理逻辑实体,并且可以包括用于处理数据流的进程和/或硬件。
更多的分段标志:指定是否有更多分段将跟随——第一分组中的更多分段标志被设置为“1”以指示更多分段将跟随。
流中的分组位置号:分组在数据流中的位置,即到目前为止在该流中的分组数量。
在原始分组中分段的位置:如果分组被分段,则分段在原始分组中的位置。
协议:传输协议;例如,UDP或TCP。
服务质量:服务质量(QoS)是服务(例如,网络)的整体性能(特别是网络用户看到的性能)的描述或测量。例如,可以为短流提供更高的QoS。在网络中,分组帧报头可能包含数字,指示在转发到下一个目的地时要给予分组的更高或更低的优先级。在一些情况下,QoS由客户协议或流量工程确定。
SDN:软件定义的网络技术是一种网络管理方法,它使得能够进行动态的、编程高效的网络配置,以便提高网络性能和监视。
源IP地址:从其发送分组的IP地址。
源端口号:发送分组的源主机上的端口号。
序列号:序列号识别了从每个计算机发送的分组的顺序,使得可以按顺序重构数据,而不管在传输期间可能发生的任何分组重新排序或分组丢失。
子信道ID:流编号,指示该流在该信道ID中的其余流中的顺序。
自该流中的第一帧以来的时间:自特定流中的第一帧以来经过的时间的所计算特性。
自最后一帧以来的时间:自最后一帧以来经过的时间的所计算特性,该最后一帧不必在该流中。
自该流中的最后一帧以来的时间:自流中的最后一帧以来经过的时间的所计算特性。
用于指定任何QoS级别的ToS“服务类型”标志:服务类型(ToS)位是IP分组报头中的一组四位标志。当这些位标志中的任何一个位标志被设置时,路由器可以与没有设置TOS位的分组不同地处理该分组。
数据流分类器的说明性示例
下面描述的是数据流分类器的系统和方法的实施例的说明性示例。使用一些或全部所述技术或具有所述技术的附加技术的此类数据流分类器的其它示例也是可能的。
图1A示出使用预定分类策略对网络上的数据流进行分类并基于数据流分类执行动作的系统的概述,其中预定策略是基于先前在该特定网络上接收的分组生成的。在此更详细地描述图1A中所示的操作的更多细节。
分组105在数据中心100的网络上传输。分组105表示与例如在线零售、搜索、交互式视频、备份、迁移、下载、交互式视频等相关的各种通信。在框110处,数据中心100从多个分组中识别离散数据流。例如,如图4A和4B中所示,可以通过将具有相同5元组分组报头信息的分组分组为数据流来确定离散数据流。
在框115处,数据中心100使用预定分类策略120对每个数据流进行分类。在一些实现方式中,网络元件使用网络元件有权访问的所存储的预定分类策略(例如,存储在网络元件的非暂态存储器组件中)对每个数据流进行分类。在一些示例中,分类策略存储在网络元件的计算机处理组件(例如,ASIC)的存储器中。分类策略包括可用于对数据流进行分类的信息。在一些实现方式中,信息包括一个或多个分类器。在一些实现方式中,分类策略在查找表中实现,该查找表包括与某些参数相关的阈值,所述某些参数是根据分类策略从每个数据流的分组中的一些分组计算的。当分类策略具有一个或多个分类器时,网络元件可以选择分类器中的一个分类器对数据流进行分类。具体的分类器可被选择,并且然后在一段时间内使用(例如,分钟、小时或天等),其中该选择可以基于来自数据中心的信息、一天中的时间或一周的某天、用户输入,或基于提供给网络元件的其它输入。
分类策略是“离线”确定的,也就是说,与对数据流进行分类的操作分开确定。先前在数据中心100的网络上传输的历史分组135可以被传送134到分类策略生成系统140。为了生成分类策略,历史分组被分组到它们各自的数据流,针对每个数据流计算许多参数(例如,如图8中所示),并且在分类策略生成过程的计算部分141中确定每个数据流的实际类型。每个数据流的实际类型用作用于分类器后续训练和测试的“真实数据”。在分类策略生成过程的训练部分142中,训练一个或多个分类器以使用历史分组的训练部分基于一个或多个参数对数据流进行分类。然后在分类策略生成过程的测试部分143中,使用历史分组的测试部分来测试经训练的分类器以确定分类器的准确度。可以迭代地执行进一步的训练和测试,直到使分类器的准确度最优化。分类策略然后被传送到数据中心并存储以用于实时数据流分类操作。在分类策略包括多于一个的分类器的实现方式中,在一些情况下,单独的系统可以跟踪分类器的准确度,并且如果低于某个级别,系统可以切换到另一个分类器。或者,系统可以被编程为在特定时间或在数据网络中的特定点处使用特定分类器。
在框125处对数据流进行分类之后,数据中心网络可以基于数据流分类来执行一个或多个动作。例如,将某些类别的数据流路由到不同的信道,将长数据流路由到专用链路等。在框130处,数据中心完成处理将与数据流相关联的分组传送到其预定目的地的数据流。当前在数据中心处使用的几种技术可用于本发明的应用。例如,通常可以从诸如NetFlow、SFlow或其它商业监视软件平台的常用监视方法中获得分组报头数据。该系统创建分组时间戳(如果时间戳可用)和预定分组报头字段的表,并将分组分组为如图4A和4B中所示的数据流。如果流数据的两个分组被间隔超过预定义时间段,则每个分组可能会被分配到不同的域并获得其自己的流ID号。类似地,SYN和FIN标志可用于拆分唯一数据流。
图1B是示出高级过程150的示例的流程图,高级过程150用于确定用于训练分类策略的分类器、选择用于对数据流进行分类的算法、对长流采取系统动作以及对数据流进行分类的过程。该过程可以使用在此描述的技术在网络上(例如,在网络元件上的数据中心中)实现。在框152处,过程150在被收集作为来自网络的样本数据的分组报头数据的部分上训练一种或多种机器学习算法,或使用在其他数据集上训练的算法。框152可以在非操作训练环境中执行,例如,由于训练发生需要大量时间而在数据中心之外执行。在具有训练的机器学习算法的分类策略已被安装或以其它方式数据中心可访问之后,在框154处,方法150在机器学习算法中选择算法,并在做出预测之前,接收针对在多个分组中的流持续时间的阈值的输入作为机器学习算法的输入。在框156处,方法150接收输入,该输入指示要针对被识别为长数据流的数据流采取的一个或多个流量动作。最后,在框158处,在针对新接收的数据流检查了阈值数量的分组之后,方法150向流量控制系统报告数据流分类。
图2示出其中可以实现本发明的实施例的数据中心的胖树架构的示例。胖树网络是用于高效通信的通用网络。在树数据结构中,每个分支都具有相同的粗细,无论它们在层次结构中的位置如何——它们都是“细长的”(细长在该上下文中意味着低带宽)。在胖树中,靠近层次结构顶部的分支比层次结构更下方的分支“更胖”(更粗)。在电信网络中,分支是数据链路;数据链路的不同厚度(带宽)允许更有效的和技术特定的使用。胖树架构可以包括三层交换,即架顶(ToR)、聚合和核心,并且通常允许主机之间更多的连接性。
图3示出其中可以实现本发明的实施例的数据中心的脊叶架构的示例。脊叶架构将每个脊交换机连接到每个叶/ToR交换机,并且通常易于扩展,诸如随着时间推移添加更多数据处理设备。采用脊叶配置,所有设备都相距相同数量的分段,并且包含可预测且一致的旅行信息延迟量或等待时间量。这是可能的,因为新的拓扑设计仅具有两层,脊层和叶层。脊层(由执行路由的交换机组成)是网络的骨干,其中每个叶交换机都与每个和所有脊交换机互连。
胖树网络和脊叶网络是两种数据中心架构,其网络/网络元件可以受益于本发明实施例的优点,其它数据中心架构也可以受益。虽然胖树和脊叶架构最常见,但还有许多其它数据中心和高性能计算(HPC)架构,以及可以受益于本发明的实施例的优点的其它网络架构(诸如由互联网服务提供商(ISP)运营的网络中的架构)。
图4A是示出“分组捕获”文件的一部分的表,示出分组编号和与分组相关的信息,包括分组的5元组数据。该表中的信息表示可以从图1A中的数据中心100接收的分组确定并且可以用于识别离散数据流的分组信息,其中“相似”分组被分组为单独数据流。在该示例中,图4A中的表示出用于六个分组(分组100-105)的分组信息,但表示数据中心可能接收的数十亿个分组。对于分组100-105中的每个分组,该表包括其5元组值,该值是五个不同的值的集合,包括源IP地址/端口号、目的地IP地址/端口号和使用的协议。该表还包括分组指示符(100-105),接收分组的时间和分组长度。当分组具有相同的5元组信息时,它们被确定为同一数据流的一部分。在该示例中,分组100、102、103和104具有相同的5元组信息,该5元组信息指示同一数据流的部分。分组101和105具有相同的5元组信息,这指示它们是同一数据流的一部分,该数据流与包括分组100、102、103和104的数据流不同。如果一个流的两个分组间隔超过预定时间段,则每个分组可能被分配给不同的流并获得其自己的流号。类似地,STN和FIN标志可用于将唯一数据流拆分成分开的数据流。
图4B是示出被分配给单独流的分组的示例的表。例如,分组100、102、103和104被分配了“1”的流ID。分组101和105被分配了“2”的流ID。数据中心100可以使用执行对分组流的5元组信息的确定以将分组分组为单独数据流的过程,来识别单独数据流110(图1),然后可以实现方式所需的那样将单独数据流110分类为某种类型的数据流(例如,大象流或小鼠流;类别1(短)、类别2(中)、类别3(长)等)。
图4C示出在数据中心或其它网络中或由多个网络元件传输的数据流(流的每个分段由不同数量的分组组成)的示例,示出一些是短流(“小鼠流”),并且一些是长流(“大象流”)。来自一个源的流可能会去往不同的目的地。每个流由不同数量的连续分组组成,每个分组通常携带不同量的有效载荷数据(以字节数为单位)。在图示中,如果流的总持续时间或总有效载荷小于某个阈值,则流1和流3可能是小鼠流,并且如果流的总持续时间或总有效载荷超过给定阈值,则流2可能是大象流。小鼠流通常具有等待时间敏感性,最重要的是用户的体验质量;例如,在线零售、搜索、一些物联网(IoT)流量、交互式视频等。大象流通常对等待时间具有较低的敏感度,并且可以包括备份、迁移、下载等。
图5是示出用于对数据流进行分类并基于其分类对每个数据流执行动作的高级过程500的示例的流程图,并且进一步地,还可以基于该分类来执行一个或多个动作。此类过程可以在图1中所示的数据中心100中执行,该数据中心100可以具有例如分别如图2和图3中所示的胖树或脊叶架构。图6-8提供了可以在过程500中包括的处理/动作的附加细节。在框502处,过程500接收多个分组,其中分组的组表示单独数据流。使用分组的5元组信息,分组可以被分组进单独数据流中,并且可以被分配流ID,如参考图4A和4B所述。
在框504处,过程500使用过程500可访问的预定分类策略实时对每个数据流进行分类。例如,如果过程500在单个芯片(例如,ASIC)或芯片组内执行,则分类策略可以存储在芯片内的非暂态计算机介质中,或者可由芯片访问,如圆圈“A”所示。每个数据流的分类是对该数据流是持续长时间还是短时间的预测(当数据流被分成两个类别时)。数据流的分类基于分组报头信息,而不是DPI。数据流的分类独立于传输协议(例如TCP/IP、UDP等)。使用分类策略,只需使用数据流中的少数分组就可以准确地对数据流进行分类。在一些情况下,使用一个数据流的2个分组。在其它情况下,可以使用3个分组、4个分组、5个分组、6个分组、7个分组、8个分组、9个分组或10个分组来对每个数据流进行分类。
分类策略包括至少一个分类器,该分类器具有将数据流分类成类别的信息。例如,根据实现方式的需要或要求,分成两个类别(例如,大象流或小鼠流),三个类别(例如,类别1/短、类别2/中、类别3/长)、四个类别(类别1/短、类别2/中、类别3/长、类别4/非常长)或多于四个的类别(类别1、类别2、类别3、类别4、类别5,……,类别n)。分类策略可以包括多于一个的分类器(例如,两个分类器或三个分类器)。当分类策略包括多于一个的分类器时,可以优化每个分类器以准确分类不同类型的流量流数据,例如包括不同百分比的数据流长度或者不同数据流长度的流量流数据。在一些示例中,过程500可以从分类策略中选择分类器,以用于基于例如它接收的指示系统状况的输入或者基于一天中的时间或日期来对数据流进行分类。每个分类器已经被训练(配置或结构化)以,使用从被分类的数据流中的分组的子集确定的某些参数来对数据流进行分类,这参考图7和8进一步描述。
在对数据流进行分类之后,在框506处,过程500基于分类(标签)对数据流执行动作。例如,可以使用光子开关将长流量转移到电路交换的高容量路径。在软件定义环境中,数据流标签可用于修改软件定义控制器使用的流表。流可能需要设置标志以用于移动到不同的流量工程方案或负载平衡方案。
在框508处,过程500可以基于数据流的分类或基于多于一个的数据流的分类,来执行一个或多个系统动作。此类动作可包括向流分配实时服务质量(QoS)。例如,当分组被转发到其目的地时,QoS字段被重写(或如果QoS字段为空则被第一次写入)以获得更高的优先级。在一些情况下,此类动作可以包括将数据流路由到不同的信道。在一些情况下,此类动作可包括向影响流优先级的流表(SDN)提供输入,确定如何在网络中传输数据流。此类动作还可包括将长数据流路由到专用链路,例如专用高速链路。其它动作可以包括将长数据流路由到光子层,例如高速光子交换机。其它动作可以包括将数据流路由到P2P无线网络,调节缓冲区设置(例如,分配给大象流的缓冲器百分比最多可以是缓冲器的x%,并根据需要调节)。另一个动作可以包括管理流式传输参数,例如提前流传输多少(例如,提前播放)。另一个动作可以包括管理压缩,例如,决定不压缩短流,或仅压缩可能持续超过阈值的流。另一个动作可以包括向数据流流量工程提供输入,例如,决定覆盖某些长流的ECMP,因此不会经由多条路径路由大流。
图6是示出过程600的示例的流程图,过程600用于使用在此描述的技术对数据流进行分类并使用其分类来处理每个数据流。过程600的方面可以类似于用于类似操作的过程500的方面。过程600可以在数据中心中(例如在网络元件上)实现。
参考图6,在框602处,过程600可以接收表示多个不同数据流的多个分组。在框604处,过程600读取接收到的分组的报头数据(例如,5元组信息)并且可以形成表或存储报头数据。在框606处,过程600基于分组报头数据来确定用于所接收分组的单独数据流。例如,如参考图4A和图4B所述。在框608处,过程600使用从来自每个单独数据流的一小组分组(例如,2-10个分组)确定的信息,基于预定分类器策略对单独数据流进行分类。在框610处,过程600基于每个数据流的分类(例如,基于数据流是小鼠流还是大象流)来处理每个数据流。
图7是示出确定包括一个或多个分类器的分类策略的示例过程700的流程图,该一个或多个分类器用作分类策略的一部分以用于对具体网络上的数据流进行分类。换句话说,过程700从网络离线生成“预定”分类策略。虽然图7中所示的示例是一般参考将数据流分成两个类别来描述的,但它也可以很容易地应用于将数据流分类成三个类别、四个类别、五个类别或更多类别。一旦生成了分类策略,就可以将其安装在网络上以对数据流进行分类。过程700可以实现在此描述的与确定分类器的配置有关并且与对数据流进行分类有关的技术中的一种或几种技术。
在框702处,过程700获得已经在网络上传输的分组的样本。由于不同的网络可具有显著不同的分组流量流,因此样本从将使用分类策略的实际网络中获得。换句话说,从将使用分类策略的实际(相同)网络获得的样本允许对分类策略中的分类器进行定制,使其最准确地对网络在正常日常操作中处理的数据流类型进行分类。在框704处,过程700(例如,使用5元组信息)将分组分组为数据流。如果一个流的两个分组间隔超过预定时间段,则每个分组可能被分配给不同的流并获得其自己的流号。类似地,SYN和FIN标志可用于将唯一数据流拆分成单独流。在框706处,样本被分成两组,训练数据和测试数据。因为该处理是离线完成的(也就是说,操作场景或时间不是关键的),所以可以评估数据流来准确地确定数据流的长度(例如,它是小鼠流还是大象流)。例如,可以将80%的样本放入用于训练分类器的机器学习算法的训练数据组中,并且可以将另外20%的样本放入测试数据组中以用于测试特定机器学习算法的有效性和预测准确度。训练数据组中不存在也在测试数据组中的流。
在流程图的部分722中,过程700生成分类策略,包括确定/训练在分类策略中使用的分类器。参考图7,在框708处,过程700从训练数据分组报头确定特征,并且在框710处,过程700从训练数据流确定流特性。在过程的这些部分中,学习和测试参数(“特征”和“特性”)是从分组报头和流数据中开发的,以允许这些参数有助于确定每个具体流是将被指定为大象流还是小鼠流。在该示例中,如图7中所示,为了开发学习和测试参数,从分组报头中识别并直接提取一组“特征”750。在该示例中识别了13个特征,这些特征包括帧号、协议、源IP地址、目的地IP地址、源端口号、目的地端口号、序列号、服务质量(QoS)、指示分组是否可以分段的标志(例如,不分段(DF)标志)、指示是否跟随多个分段之一的标志、原始分组中分段的位置、指示是否设置TCP和UDP字段二者的标志,以及指定服务质量级别的服务类型(ToS)标志。
还可以确定数据流的其它特性,其中的一些可以是基于时间的特性。在该示例中,如图7中所示,确定了13个其它“特性”752,包括流ID、信道ID、子信道ID、流中的分组位置号、自该流中的最后一帧以来的时间、自该流中的第一帧以来的时间、用于该流的平均时间、平均时间差、该流中的累积分组大小、该流中的平均分组大小或流速率(例如,以每秒的分组数量为单位)。在一些实施例中,上面列出(以及上面在“术语”下所述)的所有26个参数都可以用于训练和测试。其它实施例可以使用这26个参数的子集,或不同的参数。
过程700然后进行到框712,在那里它使用训练数据的特征和特性来训练一个或多个分类器,如参考图8进一步描述。
训练分类器的一个示例,训练数据的一部分与26个参数一起使用。因为训练数据是“真实数据”,所以分类器被训练以将具有26个参数中的某些参数的数据流识别为小鼠流或大象流。在数据中心处的正常实时处理中,没有足够的时间来确定所有26个参数,也没有足够的时间使用数据流的所有分组(或大量分组)来预测分类。因此,训练期间的目标可以是确定26个参数的子集,该参数的子集可用于使用数据流的几个分组来准确预测数据流的分类。评估参数以确定哪些参数对分类器的准确度具有最大的影响。换句话说,可以评估参数以确定哪些参数对于使用来自数据流的尽可能少数量的分组来正确预测数据流的正确分类最有用。
确定参数的子集以准确预测数据流的分类可以通过多种方式进行。在一个示例中,可以执行多次训练迭代,每次移除26个参数中的一个或多个,直到每次迭代中仅使用少量参数(例如,一个或两个参数)。在另一个示例中,来自先前训练的分类器的信息可以用作起点,如果数据相似,该起点可以减少要训练的参数的数量。在框714处,在训练分类器之后,过程700使用测试数据样本来测试分类器以确定分类器的准确度。分类器的测试可以包括使用来自被测试的每个数据流的不同数量的分组来测试分类器的准确度以确定足以被评估以达到所需准确度的分组数量,或者确定要评估的合理阈值数量的分组,在该评估该阈值数量的分组之后再评估更多分组对提高分类器的准确度几乎没有作用。
在框716处,评估测试分类器的准确度。在一些情况下,评估分类器以确定它在仅处理一定数量的分组(例如,以便满足系统的吞吐量或“速度”要求)时是否足够准确。在该过程的一些示例中,分类器以“四重”过程进行训练。分类器使用训练数据集的随机选择部分进行训练,并使用测试数据集的随机选择部分进行测试。然后该过程重复四次(因此是“四重”)。准确度在四个情况中被平均化,并选择最优候选算法应用于生产(真实网络)环境。如果分类器的准确度或速度不够,则过程700可以沿着线717返回到框708,在框708中一次又一次地执行框708、710、712、714和716中的功能。当分类器在框718处被认为是“准确的”时,它可以被包括在分类策略中。分类策略可以包括一个或多个分类器,可以选择其中的任何一个分类器对网络中传输的分组进行分类。
在框720处,过程700向网络元件提供分类策略以对数据流进行分类。提供分类策略可以包括将分类策略存储在对数据流进行分类的网络元件可访问的计算机可读介质中。
以下附加特征和概念可以应用于本发明的实施例:
1)可以使用流持续时间类代替流标签。
2)训练可以按照不同的模式执行:
A.在示例中,训练是一次性执行的,其中所有可用的训练数据用于学习最终的一组分类规则。在此类情况下,可以基于前一时段提取的信息,并通过丢弃较早的规则并用新规则替换它们来定期重复重新学习,或
B.在示例中,分类器的附加训练是“即时”完成的,其中分类规则随着新数据和标签变为可用而被更新。在此类情况下,当新流被标记或当许多标签流可用时,就会发生更新,并且规则会作为批处理被更新。
3)训练数据集可以通过将整个数据集拆分成两个集合——训练集和测试集,而被获得。拆分是基于每个流完成的,即属于一个流的所有分组被只保持在训练集或测试集中。拆分是随机或伪随机完成的(基于起始种子)。训练集和测试集的大小(以分组数或流数为单位)不必相等。例如,可以使用80/20拆分。
4)保持在每个集合中流标签(短/长/等)的比率相同可能是可取的(但不是必需的)。这是通过根据拆分百分比(例如80/20)(伪)随机拆分共享相同标签的流的每个子集来实现的。训练过程可以使用每个流中的所有分组,或可以限制为仅使用N个分组(N是用户指定的值)。
5)一旦在训练集上运行机器学习算法来学习分类规则,则在测试集上使用该算法来访问预测正确流标签的模型的准确度。准确度的评估可能仅基于流中的前N个分组,N是用户指定的值。评估可以基于预测标签和真实标签的分组,例如{非常短,短}vs{中等,长,非常长}组。
6)在分类器的各种示例中,分类器可以使用各种类型的机器学习算法,包括例如随机森林、决策树、支持向量机、k-means或神经网络。
7)在一些实施例中,机器学习算法可以用作流持续时间或流中的总有效载荷(而不是从中导出的类标签)的预测器。
8)实时提取的流标签可以以各种方式用于更优的流量工程,无论“更优”意味着更有效地使用网络资源还是更优地路由时间敏感流量或二者。
图8是进一步示出分类策略生成器140的方面的示例的示意图,该分类策略生成器140结合了用于确定一个或多个分类器以用于使用一个或多个参数(特征和/或特性)来对来自具体网络的数据流进行分类的方法。例如,可以在过程700(图7)中使用图8中所示的方面。尽管图8示出使用训练数据和测试数据以及多个参数生成分类器的一个示例,但其它过程也可用于训练一个或多个分类器(或模型),以将数据流准确地分类为特定类别的流,并且然后该分类器可以用于权利要求所保护的分类策略中。无论使用何种特定训练方法来选择分类器和训练分类器,生成在此公开的分类策略的重要方面包括:预先确定分类策略,使用包括在其中将使用/实现分类策略的网络上传输的实际数据流的训练数据,使用包括在将使用/实现分类策略的在网络上传输的实际数据流的测试数据,来确定分类策略,从在此公开的众多特征和特性中确定哪些参数对于具体分类器具有高准确度而言是最重要的(具有最大影响),并且确定在此公开的众多特征和特性的哪些参数对于具体分类器能够在网络上的实时操作期间使用少量数据分组(例如,2-10)准确分类数据流是最重要的。
图8示出过程的训练部分142,其中使用样本的训练数据820组来选择、训练和修改可以包括在分类策略中的一个或多个分类器的集合;以及测试部分143,其中“经训练”的分类器使用样本的测试数据822组进行测试。一个或多个特征750和/或多个或多个特性752可以被输入到训练部分142并且在多次迭代中以各种组合使用以优化分类器的准确度。在训练部分142中,可以选择一个或多个分类器(或模型)进行训练。例如,分类器1/模型1,分类器2/模型2…分类器/模型N。每个分类器可基于不同的机器学习模型,例如,随机森林、决策树、支持向量机、k-最近邻或神经网络。不同的分类器可以被包括在训练部分142中,因为基于在训练数据820中表示的通过网络传输的数据的类型,各种分类器中的不同分类器可以具有更高的性能,并且确定对于具体类型的数据哪一个分类器更优的唯一方法是通过训练和测试过程。
在训练分类器的一个示例中,对于每个分类器/模型,可以迭代地选择参数集并且训练分类器/模型以对训练数据820的分组进行分类。例如,对于分类器/模型1,选择参数集L 812作为用于训练的起始集合,对于分类器/模型2选择参数集L 814,并且对于分类器/模型N选择参数集P 816。针对不同分类器/模型中每个分类器/模型选择的参数集可以(最初)不同或相同。对于每个分类器,可以使用变化的参数集来训练分类器,并确定针对正在训练的数据以及针对该特定分类器的最重要参数中的那些参数。训练的目的是将分类器/模型配置为能够仅使用少量参数(例如,尽可能少)并仅使用具体数据流的少数数据分组(例如,尽可能少)来预测训练数据820中的数据流的分类。因为可以选择几个分类器/模型进行测试、可用于训练的大量参数以及训练数据820中的(潜在)数千个数据流、大量迭代,训练部分142可能需要许多小时才能完成。
对于被训练的每个分类器,一旦确定了针对该分类器和该具体训练数据820的优化参数集,使用测试数据822在测试部分143中测试分类器。例如,针对分类器/模型1确定了优化参数集X,针对分类器/模型2确定了优化参数集Y,并且针对分类器/模型N确定了优化参数集Z。使用相同的测试数据822,每个分类器可用于预测测试数据822中的数据流是小鼠流或大象流。在确定分类器中的每个分类器的准确度时,将这些分类的结果与“真实数据”进行比较。如果认为分类器的性能度量低于阈值,则过程可以循环返回717到对分类器的附加训练的训练部分142,该附加训练可以涉及修改用于分类器预测的参数。在各种实施例中,性能度量可以是分类器的准确度太低,分类器的速度太慢,或者需要太多的分组来做出足够准确的预测(这也可能是分类器的速度变慢的指示)。一旦确定了分类策略,就可以将其提供720到网络元件,该网络元件处理测试数据中的训练数据所来自的网络上的数据分组。
分类策略中的信息可以以多种形式实现。例如,如果选择的分类策略的一个或多个分类器足够快以执行实时操作数据流分类,则分类器本身(或其部分)可以被实现以执行数据流分类。在一些示例中,分类器可以确定仅需要计算参数的小的子集(例如,1、2、3、4、5或6个)以准确地对网络上的具体类型的数据进行分类。在此类情况下,分类策略可以仅包括在与基于参数的计算来确定数据流的分类相关联的任何阈值中计算参数的小的子集的指令。在一个示例中,分类器可以确定仅需要计算单个参数,并且取消策略将计算该参数并且它基于阈值关联来确定数据流的分类。例如,在一些情况下,单个参数可以是流速率、自该流中第一帧以来的时间、自该流中最后一帧以来的时间等。
图9是可用于实现在此描述的分类功能的计算机系统的示例。计算机系统900可以是网络或例如在数据中心中的网络元件或者是其一部分。计算机系统900可以包括总线902或用于传送信息的其它通信机制,以及与总线902耦合用于处理信息的硬件处理器或多个处理器904。一个或多个硬件处理器904可以是例如一个或多个通用微处理器。硬件处理器904包括存储器905。在一些示例中,计算机系统900中所示的组件的功能可以在单个芯片(例如,ASIC)中实现并且分类策略存储在存储器和/或电路(例如存储器905)中。
计算机系统900还包括耦合到总线902的主存储器906,诸如随机存取存储器(RAM)、高速缓存和/或其它动态存储设备,用于存储信息和要由处理器904执行的指令。主存储器906还可用于在要由处理器904执行的指令的执行期间存储临时变量或其它中间信息。当被存储在处理器904可访问的存储介质中——包括集成在处理器芯片上的存储器905上时,此类指令将计算机系统900渲染成定制用于执行指令中指定操作的专用机器。计算机系统900进一步包括耦合到总线902的只读存储器(ROM)908或其它静态存储设备,用于为处理器904存储静态信息和指令。存储设备910(诸如磁盘、光盘或USB拇指驱动器(闪存驱动器)等)被提供并耦合到总线902以用于存储信息和指令。
计算机系统900可以经由总线902耦合到显示器912,诸如阴极射线管(CRT)或LCD显示器(或触摸屏),用于向网络运营商显示信息。包括字母数字键和其它键的输入设备914耦合到总线902,用于将信息和命令选择传送到处理器904。另一种类型的用户输入设备是光标控制916,诸如鼠标、轨迹球或光标方向键,用于将方向信息和命令选择传送到处理器904并由网络运营商控制显示器912上的光标移动。
计算系统900可以包括用于实现GUI的用户界面模块,该GUI可以作为由计算设备执行的计算机可执行程序指令而被存储在大容量存储设备中。如下所述,计算机系统900可以使用定制的硬连线逻辑、一个或多个ASIC或FPGA、固件和/或程序逻辑来实现在此描述的技术,它们与计算机系统相结合使计算机系统900成为或将其编程为专用机器。根据一个实施例,在此的技术由计算机系统900响应于处理器904执行包含在主存储器906中的一个或多个计算机可读程序指令的一个或多个序列而执行。此类指令可从另一个存储介质(诸如存储设备910)读入主存储器906。包含在主存储器906中的指令序列的执行使处理器904执行在此描述的处理步骤。在替代实施例中,硬连线电路可以代替软件指令或与软件指令结合使用。
在将一个或多个计算机可读程序指令的一个或多个序列承载到处理器904以供执行中,可以涉及各种形式的计算机可读存储介质。例如,指令最初可以被承载在远程计算机的磁盘或固态驱动器上。远程计算机可以将指令加载到其动态存储器中,并使用调制解调器通过电话线发送指令。计算机系统900本地的调制解调器可以在电话线上接收数据并使用红外发射机将数据转换成红外信号。红外检测器可以接收红外信号中承载的数据,并且适当的电路可以将数据放置在总线902上。总线902将数据承载到主存储器906,处理器904从主存储器906取得并执行指令。由主存储器906接收的指令可以可选地在由处理器904执行之前或之后被存储在存储设备910上。
计算机系统900还包括耦合到总线902的通信接口918。通信接口918提供到连接到本地网络922的网络链路920的双向数据通信耦合。例如,通信接口918可以是综合服务数字网络(ISDN)卡、电缆调制解调器、卫星调制解调器或调制解调器,以提供与对应类型电话线的数据通信连接。作为另一个示例,通信接口918可以是局域网(LAN)卡以提供到兼容LAN(或与WAN通信的WAN组件)的数据通信连接。也可以实现无线链接。在任何此类实现方式中,通信接口918发送和接收承载表示各种类型信息的数字数据流的电、电磁或光信号。
网络链路920通常通过一个或多个网络向其它数据设备提供数据通信。例如,网络链路920可以提供通过本地网络922到主机计算机924或到由互联网服务提供商(ISP)926操作的数据设备的连接。ISP 926继而通过现在通常称为“互联网”928的全球分组数据通信网络来提供数据通信服务。本地网络922和互联网928二者都使用承载数字数据流的电、电磁或光信号。通过各种网络的信号以及在网络链路920上和通过通信接口918的信号(其承载去往计算机系统900和来自计算机系统900的数字数据)是传输介质的示例形式。计算机系统900可以通过网络、网络链路920和通信接口918发送消息和接收数据,包括程序代码。在互联网示例中,服务器930可能通过互联网928、ISP 926、本地网络922和通信接口918传输用于应用程序的请求代码。接收的代码可以在接收到时由处理器904执行,和/或存储在存储设备910或其它非易失性存储器中以供以后执行。
在各种实施例中,某些功能可由用户通过基于网络的查看器(诸如web浏览器)或其它合适的软件程序访问,并且用户可以使用这些手段安装预定分类策略,或更新预定分类策略。在此类实现方式中,用户界面可以由服务器计算系统生成并传输到用户的web浏览器(例如,在用户的计算系统900上运行)。可替代地,用于生成用户界面所需的数据(例如,用户界面数据)可以由服务器计算系统提供给浏览器,其中可以生成用户界面(例如,用户界面数据可以由访问web服务的浏览器执行并且可以被配置为基于用户界面数据渲染用户界面)。用户然后可以通过web浏览器与用户界面交互。某些实现方式的用户界面可以通过一个或多个专用软件应用程序访问。在某些实施例中,本公开的计算设备和/或系统中的一个或多个可以包括移动计算设备,并且用户界面可以通过此类移动计算设备(例如,智能手机和/或平板计算机)访问。
图10、11和12示出根据一些实施例可以由数据中心或其它网络或网络元件处理的第一类型、第二类型和第三类型(分别)的数据流量的示例。如在此所述,数据流量的这些示例可用于确定系统/过程以对数据流进行分类。具体地,如图10中所示,对于33635个流的类型1数据流量,下方的条形图示出根据时间传输的总字节数。中间图示出根据时间传输的分组数量。上图示出作为时间函数传输的流的总数。对于该类型1数据流量,短流占流的60%、分组的42%和总字节的13%。长流占流的32%、分组的58%和传输的总字节的87%。图11示出对于具有394845个流的类型2数据流量,示出根据时间传输的总字节的下图,示出根据时间传输的分组数量的中间图,以及示出根据时间传输的总流量的上图。对于该类型2数据流量,短流占流的79%、分组的16%和总字节的仅6%。长流占流的21%、分组的84%和传输的总字节的94%。图12示出对于具有331561个流的类型3数据流量,示出根据时间传输的总字节的下图,示出根据时间传输的分组数量的中间图,以及示出根据时间传输的总流量的上图。对于该类型3数据流量,短流占流的81%、分组的33%以及总字节的仅7%。长流占流的19%、分组的67%以及传输的总字节的93%。
图13和图14示出对于图10-12中所示的三种不同数据流量类型使用不同算法(分类器)可以针对长流获得的不同结果的示例。在图13中,图表示出对三种不同数据类型的长流的预测准确度,该三种不同数据类型分组成三个不同的范围,大于100ms(“正方形”)、大于200ms(“圆形”)和大于一秒(“X”)。在图14中,图表示出三种不同数据类型的短流的预测准确度,该三种不同数据类型分组成三个不同的范围,小于100ms(“正方形”)、小于200ms(“圆形”)和小于一秒(“X”)。
图15示出基于数据流量类型1、类型2和类型3的不同分类器(或算法)A、B和C的不同数据准确度的示例,并示出其中对于一种数据类型的最优分类器可能不是对于另一种类型数据的最优分类器的示例。示例分类器A、B和C是基于评估来自特定网络的样本数据而确定的。在实现包括一个或多个分类器的分类策略时,由于任何特定网络的数据流量中的差异,因此应使用来自该具体网络的样本数据来确定要使用的最优分类器以及对这些分类器使用哪些参数。
在该示例中,分类器C被确定为对类型1的数据流量的数据流进行分类具有85.5%的最高准确度,分类器B被确定为对类型2的数据流量的数据流进行分类具有83.3%的最高准确度,并且分类器A被确定为对类型3的流量的数据流进行分类具有99.9%的最高准确度。然而,如果选择使用分类器C(因为数据流量为类型1,并且分类器C对类型1数据具有最高准确度),并且数据类型模式变为类型2,则数据流分类的准确度下降到83.1%。如果数据类型模式变为类型3,则数据流分类的准确度增加到97.3%。分类器B和C的准确度也随着数据流量的类型而变化。分类器B的准确度对于类型1的数据流量增加到84.8%,并且对于类型3的数据流量增加到84.4%。分类器C的准确度从对于类型3的数据流量的99.9%下降到对于类型1的数据流量的76.8%,并且下降到对于类型2的数据流量的71.3%。
因此,具有包括多个分类器的分类策略可能是有利的,该多个分类器可以被选择以用于基于特定标准对数据流进行分类。使用上面的示例,如果确定网络上的数据流量为类型1,则应选择分类器C。如果数据流量变为类型2,则应选择分类器B。如果数据流量变为类型3,则应选择分类器C。在一些实施例中,网络上的其它进程可用于监视数据流量以确定网络正在经历什么类型的数据流量,并且该信息可用于选择分类策略中的具体分类器以最优地处理当时正在经历的数据流量。
某些实施例的示例
实施例A是一种对由一个或多个网络元件在网络上传送的数据流进行分类的方法,该方法包括:从所述网络接收多个分组,每个分组具有报头信息;至少部分地基于每个分组的相应报头信息将所述多个分组分成多个数据流;对于每个数据流:在相应的数据流中选择分组子集;由网络元件使用从所述分组子集确定的一个或多个参数并使用用于对数据流进行分类的预定分类策略来将数据流分类为至少两个数据流类别中的一个,所述分类策略包括一个或多个分类器,每个分类器使用从多个样本数据流中的分组确定的参数来定义,样本数据流先前在网络上传输;以及基于其相应的分类在所述网络中路由数据流。
实施例B包括实施例A,其中样本数据流的数量大于十万个数据流。实施例C包括实施例A,其中样本数据流的数量大于一万个数据流。实施例D包括实施例A-C中的任一实施例,进一步包括在网络元件上存储预定分类策略。实施例E包括实施例A-E中的任一实施例,进一步包括生成预定分类策略。实施例F包括实施例E,其中生成预定分类策略包括获得先前在网络上传输的分组样本;将分组样本分组为数据流;将数据流分成训练数据和测试数据;从训练数据中确定一个或多个参数;使用训练数据的一个或多个参数训练一个或多个分类器;使用测试数据测试一个或多个分类器以确定每个分类器的准确度;确定每个分类器是否准确,并响应于确定分类器不准确,重复方法的(v)-(vi)部分;并且向网络元件提供包括一个或多个分类器的分类策略。实施例G包括实施例A-F中的任一实施例,其中一个或多个参数包括多个特征中的一个,每个特征是使用数据流中的相应分组信息确定的与时间无关的特征。实施例H包括实施例A-G中的任一实施例,其中一个或多个特征包括以下中的至少一个:帧号、协议、源IP地址、目的地IP地址、源端口号、目的地端口号、序列号、服务质量(QoS)、指示分组是否可以分段的标志、指示是否跟随多个分段之一的标志、分段在原始分组中的位置、指示是否设置TCP和UDP字段二者的标志,或指定服务质量级别的服务类型(ToS)标志。实施例I包括实施例A-H中的任一实施例,其中一个或多个参数包括多个特性中的一个。实施例J包括实施例I,其中一个或多个特性包括使用数据流中的相应分组信息计算的基于时间的特性。实施例K包括实施例I,其中一个或多个特性包括以下中的至少一个:流ID、信道ID、子信道ID、流中的分组位置号、自该流中的最后一帧以来的时间、自该流中的第一帧以来的时间、用于该流的平均时间、平均时间差、该流中的累积分组大小、该流中的平均分组大小或流速率。实施例L包括实施例A-K中的任一实施例,其中预定分类策略包括至少两个分类器。实施例M包括实施例L,进一步包括基于由网络元件接收的输入选择至少两个分类器中的一个来对数据流进行分类。实施例N包括实施例M,其中输入基于预设流量工程策略。实施例O包括实施例N,其中所述预设流量工程策略基于一天中的时间或星期几来规定特定分类器的使用。实施例P包括实施例A-O中的任一实施例,其中预定分类策略包括三个或更多个分类器。实施例Q包括实施例A-P中的任一实施例,进一步包括基于数据流的分类和预定分类策略执行一个或多个网络动作。实施例R包括实施例Q,其中一个或多个网络动作包括向一些或所有流分配实时服务质量(QoS)。实施例S包括实施例Q,其中一个或多个网络动作包括将数据流路由到不同的信道。实施例T包括实施例Q,其中一个或多个网络动作包括对流表(SDN)的输入。实施例U包括实施例Q,其中一个或多个网络动作包括将长数据流路由到专用链路。实施例V包括实施例Q,其中一个或多个网络动作包括将长数据流路由到光子层。实施例W包括实施例Q,其中一个或多个网络动作包括将数据流路由到P2P无线网络。实施例X包括实施例Q,其中一个或多个网络动作包括调节缓冲器设置。实施例Y包括实施例Q,其中一个或多个网络动作包括管理流式传输参数。实施例Z包括实施例Q,其中一个或多个网络动作包括管理压缩。实施例AA包括实施例Q,其中一个或多个网络动作包括向数据流流量工程提供输入。实施例AB包括实施例A,其中一个或多个参数包括以下与时间无关的特征中的至少一个:帧号、协议、源IP地址、目的地IP地址、源端口号、目的地端口号、序列号、服务质量(QoS)、指示分组是否可以分段的标志、指示是否跟随多个分段之一的标志、分段在原始分组中的位置、指示是否设置TCP和UDP字段二者的标志,或指定服务质量级别的服务类型(ToS)标志。实施例AC包括实施例A,其中所述一个或多个参数包括以下特性中的至少一个:流ID、信道ID、子信道ID、流中的分组位置号、自该流中的最后一帧以来的时间、自该流中的第一帧以来的时间、用于该流的平均时间、平均时间差、该流中的累积分组大小、该流中的平均分组大小或流速率。实施例AD包括实施例A-AC中的任一实施例,其中将多个分组分成多个数据流包括将在其报头中具有相同5元组数据的分组分配到相同数据流中。实施例AD包括实施例A-AC中的任一实施例,其中将多个分组分成多个数据流包括至少部分地基于在具有相同5元组数据的两个分组之间的预定时间来将分组分成不同的数据流。
实施例AF是一种对由一个或多个网络元件在网络上传送的数据流进行分类的方法,该方法包括:从多个样本分组中创建包括分组时间戳和预定义分组报头字段的信息的表,该多个样本分组先前在网络上传输;至少部分地基于表中的信息将多个样本分组分组为数据流;向数据流中的每个数据流分配流标识符;将数据流分组为训练部分和测试部分;确定具有训练数据流的一个或多个特征和/或一个或多个特性的一个或多个参数;确定分类器以预测流标签,包括迭代训练和测试分类器,使用训练部分和一个或多个参数来训练每个分类器,以及使用测试部分确定分类器的准确度;生成包括分类器以对网络上的数据流进行分类的分类策略;以及提供将由网络元件用于对数据流进行分类的分类策略。实施例AG包括实施例AF,进一步包括将分类策略存储在至少一个非暂态计算机介质中,该非暂态计算机介质可由对网络上的数据流进行分类的网络元件访问。
实施例AH是一种对由一个或多个网络元件在网络上传送的数据流进行分类的方法,该方法包括:从网络获得分组样本;将分组样本分组为数据流;将数据流分成训练数据和测试数据;使用训练数据和训练数据的一个或多个参数作为真实数据,训练一个或多个分类器对数据流进行分类;使用测试数据确定准确度或一个或多个分类器;响应于确定分类器不准确,重复方法的(iv)-(v)部分;以及提供包括用于对网络上的数据流进行分类的一个或多个分类器的分类策略。实施例AI包括实施例AH,进一步包括将分类策略存储在至少一个非暂态计算机介质中,该非暂态计算机介质可由正在对网络上的数据流进行分类的网络元件访问。实施例AJ包括实施例AH和AI中的任一实施例,其中生成用于分类策略的分类器包括:从训练数据中确定包括多个特征和多个特性的初始参数集;使用所选的分类器模型和用于训练数据中相应数据流的初始参数集,将训练数据中的数据流分类为至少两个数据流类别的中的一个,并使用测试数据确定相应的数据流的分类的准确度;通过改变初始参数集的特征和特性中的一个或多个,生成一个或多个修改的参数集;使用所选的分类器和用于训练数据中相应数据流的多个修改的参数集,将训练数据中的数据流分类为至少两个数据流类别中的一个,并使用每个修改的参数集来确定分类器对测试数据中的数据流进行分类的相应准确度;重复步骤(iii)和(iv)以提高分类器的准确度,以便确定用于所选分类器的一个或多个参数的最终集合,最终参数集是修改的参数集之一;以及将所选的分类器和最终参数集包括在分类策略中。实施例AK包括实施例AH-AK中的任一实施例,其中一个或多个参数的最终集合提供所选分类器在特定时间段内对测试数据进行分类的最高准确度。
实施例AL是一种生成分类策略以对由一个或多个网络元件在网络上传送的数据流进行分类的系统,该系统包括:一种或多种非暂态计算机存储介质,其被配置为至少存储:先前在网络上传输的分组样本;以及计算机可执行指令;一个或多个计算机硬件处理器,其与一个或多个非暂态计算机存储介质通信,该一个或多个计算机硬件处理器被配置为执行计算机可执行指令以至少:将分组样本分组为数据流;将数据流分成训练数据和测试数据;使用训练数据和训练数据的一个或多个参数作为真实数据,训练一个或多个分类器对数据流进行分类;使用测试数据确定准确度或一个或多个分类器,以及迭代重复部分(iii)-(iv)以提高分类器的准确度。
系统实现方式
本公开的各种实施例可以是采用任何可能的技术细节集成级别的系统、方法和/或计算机程序产品。计算机程序产品可以包括计算机可读存储介质(或多个介质),其上具有用于使处理器执行本公开的方面的计算机可读程序指令。例如,可以在软件指令由一个或多个硬件处理器和/或任何其它合适的计算设备执行时,和/或响应于由一个或多个硬件处理器和/或任何其它合适的计算设备执行软件指令,执行在此描述的功能。可以从计算机可读存储介质(或多个介质)读取软件指令和/或其它可执行代码。
计算机可读存储介质可以是有形设备,其可以保留和存储数据和/或指令以供指令执行设备使用。计算机可读存储介质可以是例如但不限于电子存储设备(包括任何易失性和/或非易失性电子存储设备)、磁存储设备、光存储设备、电磁存储设备、半导体存储设备,或前述的任何合适的组合。计算机可读存储介质的更具体示例的非详尽列表包括以下:便携式计算机软盘、硬盘、固态驱动器、随机存取存储器(RAM)、只读存储器(ROM)、可擦除可编程只读存储器(EPROM或闪存)、静态随机存取存储器(SRAM)、便携式光盘只读存储器(CD-ROM)、数字多功能磁盘(DVD)、记忆棒、软盘、机械编码设备(诸如穿孔卡片或凹槽中记录有指令的凸起结构),以及前述的任何合适组合。如在此使用的计算机可读存储介质不应被解释为瞬态信号本身,诸如无线电波或其它自由传播的电磁波、通过波导或其它传输介质传播的电磁波(例如,光脉冲通过光缆)或通过电线传输的电信号。
在此描述的计算机可读程序指令可以从计算机可读存储介质下载到相应的计算/处理设备或经由网络(例如互联网、局域网、广域网局域网和/或无线网络)下载到外部计算机或外部存储设备。网络可以包括铜传输电缆、光传输光纤、无线传输、路由器、防火墙、交换机、网关计算机和/或边缘服务器。每个计算/处理设备中的网络适配器或网络接口从网络接收计算机可读程序指令并转发计算机可读程序指令以存储在相应计算/处理设备内的计算机可读存储介质中。
用于执行本公开的操作的计算机可读程序指令(例如在此也称为“代码”、“指令”、“模块”、“应用程序”、“软件应用程序”等)可以是汇编指令、指令集架构(ISA)指令、机器指令、机器相关指令、微代码、固件指令、状态设置数据、集成电路的配置数据,或者以一种或多种编程语言的任何组合编写的源代码或目标代码,包括面向对象的编程语言,诸如Java、C++等,以及过程编程语言,诸如“C”编程语言或类似的编程语言。计算机可读程序指令可从其它指令或从自身调用,和/或可响应于检测到的事件或中断而被调用。被配置为在计算设备上执行的计算机可读程序指令可以在计算机可读存储介质上提供,和/或作为数字下载(并且可以最初以需要在执行之前安装、解压或解密的压缩或可安装格式被存储),该数字下载然后可以存储在计算机可读存储介质上。此类计算机可读程序指令可以部分或全部存储在执行计算设备的存储器设备(例如,计算机可读存储介质)上,以供计算设备执行。计算机可读程序指令可以完全在用户计算机(例如,执行计算设备)上执行,部分地在用户计算机上执行,作为独立软件包执行,部分地在用户计算机上并且部分地在远程计算机上执行,或者完全在远程计算机或服务器上执行。在后一场景中,远程计算机可以通过任何类型的网络(包括局域网(LAN)或广域网(WAN))连接到用户的计算机,或者可以连接到外部计算机(例如,使用互联网服务提供商通过互联网)。在一些实施例中,包括例如可编程逻辑电路、现场可编程门阵列(FPGA)或可编程逻辑阵列(PLA)的电子电路可以通过利用计算机可读程序指令的状态信息来个性化电子电路,以执行计算机可读程序指令,从而执行本公开的方面。
在此参考根据本公开的实施例的方法、装置(系统)和计算机程序产品的流程图和/或框图来描述本公开的方面。应当理解,流程图和/或框图的每个框,以及流程图和/或框图中的框的组合,可以由计算机可读程序指令来实现。
这些计算机可读程序指令可以提供给通用计算机、专用计算机或其它可编程数据处理装置的处理器以产生机器,使得经由计算机的处理器或其它可编程数据处理装置执行的指令创建用于实现在流程图和/或框图的一个框或多个框中指定的功能/动作的部件。这些计算机可读程序指令也可以存储在计算机可读存储介质中,该计算机可读存储介质可以引导计算机、可编程数据处理装置和/或其它设备以特定方式运行,使得其中存储有指令的计算机可读存储介质包括制品,该制品包括实现在一个或多个流程图和/或框图的一个框或多个框中指定的功能/动作的各方面的指令。
计算机可读程序指令也可以加载到计算机、其它可编程数据处理装置或其它设备上,以使得在计算机、其它可编程装置或其它设备上执行一系列操作步骤以产生计算机实现的过程,使得在计算机、其它可编程装置或其它设备上执行的指令实现流程图和/或框图的一个框或多个框中指定的功能/动作。例如,指令最初可以携带在远程计算机的磁盘或固态驱动器上。远程计算机可以将指令和/或模块加载到其动态存储器中,并使用调制解调器通过电话、电缆或光线路发送指令。服务器计算系统本地的调制解调器可以在电话/电缆/光线上接收数据并使用包括适当电路的转换器设备将数据放置在总线上。总线可以将数据承载到存储器,处理器可以从该存储器取得和执行指令。由存储器接收的指令可以可选地在由计算机处理器执行之前或之后存储在存储设备(例如,固态驱动器)上。
图中的示图示出根据本公开的各种实施例的系统、方法和计算机程序产品的可能实现方式的架构、功能和操作。在该方面,流程图或框图中的每个框可表示模块、分段或指令的一部分,其包括用于实现指定逻辑功能的一个或多个可执行指令。在一些替代实现方式中,框中标注的功能可以不按照图中标注的顺序发生。例如,取决于所涉及的功能,连续示出的两个框实际上可以基本上同时执行,或者该框有时可以以相反的顺序执行。此外,在一些实现方式中可以省略某些框。在此描述的方法和过程也不限于任何特定的顺序,并且与其相关的框或状态可以以其它合适的顺序执行。
还将注意,框图图示的每个框,以及框图和/或流程图图示中的框的组合,可以通过基于专用硬件的系统来实现,该系统执行指定的功能或动作或执行专用硬件和计算机指令的组合。例如,前述部分中描述的任何过程、方法、算法、元素、框、应用程序或其它功能(或功能的部分)可以体现在电子硬件中,和/或经由电子硬件完全或部分地自动化,所述电子硬件诸如专用处理器(例如,专用集成电路(ASIC))、可编程处理器(例如,现场可编程门阵列(FPGA))、专用电路等(其中任何一个也可以将定制硬连线逻辑、逻辑电路、ASIC、FPGA等与完成这些技术的软件指令的定制编程/执行相结合)。
任何上述处理器和/或包含任何上述处理器的设备在此可被称为例如“计算机”、“计算机设备”、“计算设备”、“硬件计算设备”、“硬件处理器”、“处理单元”等。上述实施例的计算设备一般可以(但不一定)由操作系统软件控制和/或协调,诸如Mac OS、iOS、Android、Chrome OS、Windows OS(例如,Windows XP、Windows Vista、Windows 7、Windows 8、Windows 10、Windows Server等)、Windows CE、Unix、Linux、SunOS、Solaris、BlackberryOS、VxWorks或其它合适的操作系统。在其它实施例中,计算设备可以由专有操作系统控制。传统操作系统控制和调度计算机进程以供执行、执行存储器管理、提供文件系统、联网、I/O服务,并提供用户界面功能,诸如图形用户界面(“GUI”),等等。
可以对上述实施例进行许多变化和修改,其中的元素将被理解为其它可接受的示例。所有这些修改和变化都旨在被包括在本公开的范围内。前面的描述详述了某些实施例。然而,将理解的是,无论上述在文本中显得多么详细,系统和方法都可以以多种方式实践。还如上所述,应当注意,在描述系统和方法的某些特征或方面时使用特定术语不应被视为暗示该术语在此被重新定义以限于包括与该术语相关联的系统和方法的特征或方面的任何特定特性。
除非另有特别说明,或在所使用的上下文中以其它方式理解,否则条件语言(诸如“能够”、“可”、“可能”或“可以”等)通常旨在传达某些实施例包括某些特征、元素和/或步骤,而其它实施例不包括。因此,此类条件语言通常不旨在暗示特征、元素和/或步骤对于一个或多个实施例以任何方式是必需的,或者一个或多个实施例必然包括用于在具有或不具有用户输入或提示的情况下决定这些特征、元素和/或步骤是否被包括在任何特定实施例中或将在任何特定实施例中执行。
当与术语“实时”结合使用时,术语“基本上”形成本领域普通技术人员将容易理解的短语。例如,很容易理解,此类语言将包括没有或几乎没有延迟或等待可辨别的速度,或者此类延迟足够短从而不会干扰、刺激或以其它方式使用户烦恼的速度。
除非另外具体说明,诸如短语“X、Y和Z中的至少一个”或“X、Y或Z中的至少一个”等连词应与所使用的上下文一起理解通常表示项目、术语等可以是X、Y或Z,或它们的组合。例如,术语“或”以其包含的意义(而非排他的意义)使用,使得例如当用于连接元素列表时,术语“或”意味着列表中的一个、一些或全部元素。因此,此类连词一般不旨在暗示某些实施例需要X中的至少一个、Y中的至少一个和Z中的至少一个每一个都存在。
如在此所使用的术语“一个”应被赋予包含性而非排他性的解释。例如,除非特别说明,术语“一个”不应理解为表示“恰好一个”或“一个且只有一个”;相反,术语“一个”表示“一个或多个”或“至少一个”,无论是在权利要求中还是在说明书的其它地方使用,也无论在权利要求或说明书的其它地方使用诸如“至少一个”、“一个或多个”或“多个”等量词。
如在此所使用的,术语“包括”应被赋予包容性而非排他性的解释。例如,包括一个或多个处理器的通用计算机不应被解释为排除其它计算机组件,并且可能包括诸如存储器、输入/输出设备和/或网络接口等的组件。
虽然以上详细描述已经示出、描述和指出了应用于各种实施例的新颖特征,但是可以理解,在不脱离本公开的精神的情况下,可以对所示出的设备或过程的形式和细节进行各种省略、替换和改变。可以认识到,在此描述的本发明的某些实施例可以在不提供在此阐述的所有特征和益处的形式中体现,因为一些特征可以与其它特征分开被使用或实践。在此公开的某些发明的范围由所附权利要求而不是由前述说明指示。落入权利要求的等效含义和范围内的所有变化都应包含在其范围内。

Claims (25)

1.一种在由一个或多个网络元件在网络上传送的每个数据流的开始处,基于数据流类型,使用包括数据流分类器的分类策略,将数据流的分类实时地预测到类别的方法,所述数据流类型指示所述数据流的持续时间或所述数据流的有效载荷,所述方法包括:
从所述网络接收多个分组,每个分组具有报头信息,包括源IP地址、目的地IP地址、源端口、目的地端口和传输协议类型;
基于所述报头信息将所述多个分组中的多个分组识别为属于数据流,对于每个数据流:
选择在所述数据流中的包括十个或更少的分组的分组子集;
从分组子集确定一个或多个参数;
由网络元件基于所确定的参数并使用所述分类策略来将所述数据流的分类预测为至少两个数据流类别中的一个,所述至少两个类别中的每一个类别指示不同数据流类型;以及
基于其相应的数据流分类类别在所述网络中路由所述数据流。
2.根据权利要求1所述的方法,进一步包括:
生成用于基于每一数据流的类型来将数据流分类到类别的分类策略,其中,生成所述分类策略包括:
(i)至少部分地基于每一分组的相应报头信息将先前在所述网络上传输的分组样本分组为样本数据流;
(ii)将所述数据流分成训练数据和测试数据;
(iii)从所述训练数据中确定一个或多个参数;
(iv)使用所述训练数据的一个或多个参数训练分类器以将所述训练数据中的数据流分类到类别,每一类别关联于不同类型的数据流;
(v)使用所述测试数据中的数据流来测试所述分类器以确定每个分类器的准确度;
(vi)确定每个分类器是否准确,并且响应于确定分类器不准确,重复所述方法的(iv)-(vi)部分;以及
向所述网络元件提供包括分类器的分类策略,所包括的分类器被确定为在使用所述测试数据测试所述分类器期间是准确的。
3.根据权利要求2所述的方法,其中,所述样本数据流的数量大于一万个数据流。
4.根据权利要求1所述的方法,进一步包括在所述网络元件上存储所述分类策略。
5.根据权利要求1所述的方法,其中,所述一个或多个参数包括多个特征中的一个,每个特征是使用数据流中的相应分组信息确定的与时间无关的特征。
6.根据权利要求5所述的方法,其中,所述一个或多个特征包括以下中的至少一个:帧号、协议、源IP地址、目的地IP地址、源端口号、目的地端口号、序列号、服务质量(QoS)、指示分组是否可以分段的标志、指示是否跟随多个分段之一的标志、分段在原始分组中的位置、指示是否设置TCP和UDP字段二者的标志,指定服务质量级别的服务类型(ToS)标志。
7.根据权利要求1所述的方法,其中,所述一个或多个参数包括所述数据流的多个特性中的一个。
8.根据权利要求7所述的方法,其中,所述一个或多个特性包括使用数据流中的相应分组信息计算的基于时间的特性。
9.根据权利要求7所述的方法,其中,所述一个或多个特性包括以下中的至少一个:流ID、信道ID、子信道ID、所述流中的分组位置号、自该流中的最后一帧以来的时间、自该流中的第一帧以来的时间、用于该流的平均时间、平均时间差、该流中的累积分组大小、该流中的平均分组大小或流速率。
10.根据权利要求8所述的方法,进一步包括基于数据流的分类的类别来将数据流路由到不同的信道。
11.根据权利要求8所述的方法,进一步包括基于数据流的分类的类别来将长数据流路由到专用链路。
12.根据权利要求1-11中任一项所述的方法,进一步包括基于数据流分类的类别和所述分类策略来执行一个或多个网络动作。
13.根据权利要求12所述的方法,其中,所述一个或多个网络动作包括向一些或所有数据流分配实时服务质量(QoS)。
14.根据权利要求12所述的方法,其中,所述一个或多个网络动作包括将数据流路由到不同的信道。
15.根据权利要求12所述的方法,其中,所述一个或多个网络动作包括对流表(SDN)的输入。
16.根据权利要求12所述的方法,其中,所述一个或多个网络动作包括将长数据流路由到专用链路。
17.根据权利要求12所述的方法,其中,所述一个或多个网络动作包括将长数据流路由到光子层。
18.根据权利要求12所述的方法,其中,所述一个或多个网络动作包括将数据流路由到P2P无线网络。
19.根据权利要求12所述的方法,其中,所述一个或多个网络动作包括调节缓冲器设置。
20.根据权利要求12所述的方法,其中,所述一个或多个网络动作包括管理流式传输参数。
21.根据权利要求12所述的方法,其中,所述一个或多个网络动作包括管理压缩。
22.根据权利要求12所述的方法,其中,所述一个或多个网络动作包括向数据流流量工程提供输入。
23.一种在由一个或多个网络元件在网络上传送的每个数据流的开始处,基于数据流类型,使用包括数据流分类器的分类策略,将数据流的分类实时地预测到类别的系统,所述数据流类型指示所述数据流的持续时间或所述数据流的有效载荷,所述系统包括:
一个或多个非暂态计算机存储介质,其被配置为存储分类策略和计算机可执行指令;以及
网络单元,其包括与所述一个或多个非暂态计算机存储介质通信的一个或多个计算机硬件处理器,所述一个或多个计算机硬件处理器被配置为执行所述计算机可执行指令以至少:
从所述网络接收多个分组,每个分组具有报头信息;
基于所述报头信息将所述多个分组中的多个分组识别为属于数据流,并且对于每个数据流:
选择在所述数据流中的包括十个或更少的分组的分组子集;
从分组子集确定一个或多个参数;
由网络元件基于所确定的参数并使用所述分类策略来将所述数据流的分类预测为至少两个数据流类别中的一个,所述至少两个类别中的每一个类别指示不同数据流类型;以及
基于其相应的数据流分类类别在所述网络中路由所述数据流。
24.一种非暂态计算机存储介质,其包含用于基于数据流类型使用包括数据流分类器的分类策略将由一个或多个网络元件在网络上传送的数据流的分类实时地预测到类别的计算机可执行指令,所述数据流类型指示所述数据流的持续时间或所述数据流的有效载荷,所述计算机可执行指令致使一个或多个硬件处理器执行以下的方法:
从所述网络接收多个分组,每个分组具有报头信息,包括源IP地址、目的地IP地址、源端口、目的地端口和传输协议类型;
基于所述报头信息将所述多个分组中的多个分组识别为属于数据流,对于每个数据流:
选择在所述数据流中的包括十个或更少的分组的分组子集;
从分组子集确定一个或多个参数;
由网络元件基于所确定的参数并使用所述分类策略来将所述数据流的分类预测为至少两个数据流类别中的一个,所述至少两个类别中的每一个类别指示不同数据流类型;以及
基于其相应的数据流分类类别在所述网络中路由所述数据流。
25.一种网络单元,包括如权利要求24所述的非暂态计算机存储介质和被配置为执行所述计算机指令的一个或多个硬件处理器。
CN201980089687.1A 2018-11-27 2019-11-25 数据流分类的系统和方法 Active CN113348645B (zh)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
US201862771635P 2018-11-27 2018-11-27
US62/771,635 2018-11-27
PCT/US2019/063050 WO2020112658A1 (en) 2018-11-27 2019-11-25 Systems and methods of data flow classification

Publications (2)

Publication Number Publication Date
CN113348645A CN113348645A (zh) 2021-09-03
CN113348645B true CN113348645B (zh) 2024-02-27

Family

ID=68848542

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201980089687.1A Active CN113348645B (zh) 2018-11-27 2019-11-25 数据流分类的系统和方法

Country Status (3)

Country Link
US (2) US10855604B2 (zh)
CN (1) CN113348645B (zh)
WO (1) WO2020112658A1 (zh)

Families Citing this family (41)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US11140068B2 (en) 2018-06-25 2021-10-05 Edgewater Networks, Inc. Edge networking devices and systems for identifying a software application
JP7095619B2 (ja) * 2019-02-19 2022-07-05 日本電信電話株式会社 予測装置、予測方法及びプログラム
JP7095624B2 (ja) * 2019-02-27 2022-07-05 日本電信電話株式会社 識別装置及び識別プログラム
CN110460488B (zh) * 2019-07-01 2022-10-18 华为技术有限公司 业务流识别方法和装置、模型生成方法和装置
US11888738B2 (en) 2019-08-15 2024-01-30 Juniper Networks, Inc. System and method for determining a data flow path in an overlay network
CN112564991A (zh) * 2019-09-10 2021-03-26 华为技术有限公司 应用识别方法、装置及存储介质
US11349777B2 (en) * 2019-11-15 2022-05-31 Charter Communications Operating, Llc Network quality of service controller
BR112022013039A2 (pt) * 2019-12-31 2022-09-06 Hughes Network Systems Llc Método, mídias legíveis por máquina não transitórias e dispositivo de comunicação
KR102291869B1 (ko) * 2019-12-31 2021-08-19 아주대학교산학협력단 비정상 트래픽 패턴의 탐지 방법 및 장치
CN113660174B (zh) * 2020-05-12 2024-01-09 华为技术有限公司 一种业务类型确定方法及相关设备
US11848959B2 (en) * 2020-05-13 2023-12-19 Nanjing University Of Posts And Telecommunications Method for detecting and defending DDoS attack in SDN environment
US11818022B2 (en) 2020-06-30 2023-11-14 Pensando Systems Inc. Methods and systems for classifying traffic flows based on packet processing metadata
US11374858B2 (en) * 2020-06-30 2022-06-28 Pensando Systems, Inc. Methods and systems for directing traffic flows based on traffic flow classifications
US20210409294A1 (en) * 2020-06-30 2021-12-30 Juniper Networks, Inc. Application flow monitoring
WO2022006005A1 (en) * 2020-07-01 2022-01-06 Viasat, Inc. Parallel and tiered network traffic classification
US11711307B2 (en) * 2020-07-03 2023-07-25 Vmware, Inc. Network resource selection for flows using flow classification
US11444855B2 (en) 2020-07-07 2022-09-13 Juniper Networks, Inc. System and method for determining a data flow path in an overlay network
US20220060425A1 (en) * 2020-08-21 2022-02-24 Qualcomm Incorporated Techniques for improving packet data convergence protocol reordering configuration
CN112104570B (zh) * 2020-09-11 2023-09-05 南方电网科学研究院有限责任公司 流量分类方法、装置、计算机设备和存储介质
EP4236200A1 (en) * 2020-11-13 2023-08-30 Huawei Technologies Co., Ltd. Method, apparatus and system for determining data flow information
US11677643B2 (en) * 2020-11-23 2023-06-13 At&T Intellectual Property I, L.P. Traffic classification of elephant and mice data flows in managing data networks
US20220174017A1 (en) * 2020-11-27 2022-06-02 Arris Enterprises Llc Enhancing classification of data packets in an electronic device
CN112769972B (zh) * 2020-12-22 2023-02-28 赛尔网络有限公司 IPv6网络的流量分析方法、装置、电子设备和存储介质
CN112733898A (zh) * 2020-12-30 2021-04-30 光通天下网络科技股份有限公司 基于特征权重的数据鉴别方法、装置、电子设备及介质
CN114827042A (zh) * 2021-01-22 2022-07-29 瑞昱半导体股份有限公司 数据流分类装置
US11165655B1 (en) * 2021-03-22 2021-11-02 Dell Products L.P. System for optimizing enterprise network relations
US11356355B1 (en) * 2021-03-29 2022-06-07 International Business Machines Corporation Extension to software defined networking to manage storage area networks
US11924112B2 (en) * 2021-03-30 2024-03-05 Cisco Technology, Inc. Real-time data transaction configuration of network devices
US11880431B2 (en) * 2021-04-08 2024-01-23 Hewlett Packard Enterprise Development Lp System and method of classifying data and providing an accuracy of classification
US11431557B1 (en) 2021-04-13 2022-08-30 Dell Products L.P. System for enterprise event analysis
US11606246B2 (en) 2021-04-28 2023-03-14 Dell Products L.P. System for enterprise alert timeline of a system and service
CN113472685B (zh) * 2021-05-27 2023-07-21 北京邮电大学 数据中心中基于QoS流分类的光电混合交换方法及设备
US11522776B1 (en) * 2021-06-10 2022-12-06 Cradlepoint, Inc. Systems and methods to collect and store network traffic statitics of IP desitnations in time-series format
EP4359831A1 (en) * 2021-06-24 2024-05-01 Services Pétroliers Schlumberger Data rate mismatch advisor
US20230095149A1 (en) * 2021-09-28 2023-03-30 Fortinet, Inc. Non-interfering access layer end-to-end encryption for iot devices over a data communication network
CN114189480B (zh) * 2021-11-18 2024-04-02 郑州云海信息技术有限公司 一种流量采样方法、装置、电子设备及介质
CN114338437B (zh) * 2022-01-13 2023-12-29 北京邮电大学 网络流量分类方法、装置、电子设备及存储介质
CN115002032A (zh) * 2022-05-13 2022-09-02 中国工商银行股份有限公司 网络流量的控制方法、装置、处理器及电子设备
CN115001994B (zh) * 2022-07-27 2022-11-15 北京天融信网络安全技术有限公司 流量数据包分类方法、装置、设备及介质
CN115712614B (zh) * 2022-11-07 2023-07-07 航科广软(广州)数字科技有限公司 基于数据传输流控制的信息处理方法及系统
CN117705720A (zh) * 2024-02-04 2024-03-15 石家庄铁道大学 一种双块式轨枕外观尺寸及缺陷同步快速检测系统

Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN101924781A (zh) * 2009-06-15 2010-12-22 日电(中国)有限公司 终端设备及其QoS实施方法以及流分类器
CN103038652A (zh) * 2010-05-25 2013-04-10 海德沃特合作I有限公司 用于保护网络容量的装置辅助服务
CN103546451A (zh) * 2012-07-16 2014-01-29 国际商业机器公司 基于流的覆盖网络
CN108886515A (zh) * 2016-01-08 2018-11-23 百通股份有限公司 通过利用良性联网协议来防止ip网络中的恶意信息通信的方法和保护装置

Family Cites Families (27)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6633540B1 (en) * 1999-07-02 2003-10-14 Nokia Internet Communications, Inc. Real-time traffic shaper with keep-alive property for best-effort traffic
US7012893B2 (en) * 2001-06-12 2006-03-14 Smartpackets, Inc. Adaptive control of data packet size in networks
US7286474B2 (en) * 2002-07-12 2007-10-23 Avaya Technology Corp. Method and apparatus for performing admission control in a communication network
US7724784B2 (en) * 2006-09-13 2010-05-25 International Business Machines Corporation System and method for classifying data streams using high-order models
EP2258084B1 (en) * 2008-03-10 2012-06-06 Telefonaktiebolaget L M Ericsson (PUBL) Technique for classifying network traffic and for validating a mechanism for calassifying network traffic
US9258217B2 (en) * 2008-12-16 2016-02-09 At&T Intellectual Property I, L.P. Systems and methods for rule-based anomaly detection on IP network flow
US9124515B2 (en) 2010-11-22 2015-09-01 Hewlett-Packard Development Company, L.P. Elephant flow detection in a computing device
US8682812B1 (en) * 2010-12-23 2014-03-25 Narus, Inc. Machine learning based botnet detection using real-time extracted traffic features
US10637782B2 (en) * 2011-03-23 2020-04-28 Hughes Network Systems, Llc System and method for policy-based multipath WAN transports for improved quality of service over broadband networks
US8817655B2 (en) * 2011-10-20 2014-08-26 Telefonaktiebolaget Lm Ericsson (Publ) Creating and using multiple packet traffic profiling models to profile packet flows
US10084806B2 (en) * 2012-08-31 2018-09-25 Damballa, Inc. Traffic simulation to identify malicious activity
US9762471B2 (en) 2013-01-26 2017-09-12 F5 Networks, Inc. Methods and systems for estimating and analyzing flow activity and path performance data in cloud or distributed systems
US20140321290A1 (en) * 2013-04-30 2014-10-30 Hewlett-Packard Development Company, L.P. Management of classification frameworks to identify applications
US20140334304A1 (en) * 2013-05-13 2014-11-13 Hui Zang Content classification of internet traffic
US9313133B2 (en) * 2013-09-10 2016-04-12 Robin Systems, Inc. Anticipatory warm-up of cluster resources for jobs processed on multiple cluster nodes
US9967188B2 (en) 2014-10-13 2018-05-08 Nec Corporation Network traffic flow management using machine learning
US20160283859A1 (en) * 2015-03-25 2016-09-29 Cisco Technology, Inc. Network traffic classification
US9596173B2 (en) * 2015-04-09 2017-03-14 Telefonaktiebolaget L M Ericsson (Publ) Method and system for traffic pattern generation in a software-defined networking (SDN) system
US10885466B2 (en) * 2016-05-12 2021-01-05 Nec Corporation Method for performing user profiling from encrypted network traffic flows
US20170364794A1 (en) * 2016-06-20 2017-12-21 Telefonaktiebolaget Lm Ericsson (Publ) Method for classifying the payload of encrypted traffic flows
US10484301B1 (en) * 2016-09-30 2019-11-19 Nutanix, Inc. Dynamic resource distribution using periodicity-aware predictive modeling
US20180189677A1 (en) * 2017-01-05 2018-07-05 Cisco Technology, Inc. Training a machine learning-based traffic analyzer using a prototype dataset
US10652261B2 (en) * 2017-02-01 2020-05-12 Splunk Inc. Computer-implemented system and method for creating an environment for detecting malicious content
US10462060B2 (en) 2018-02-14 2019-10-29 Mellanox Technologies, Ltd. Ability to detect unlimited elephant flows
US11429891B2 (en) * 2018-03-07 2022-08-30 At&T Intellectual Property I, L.P. Method to identify video applications from encrypted over-the-top (OTT) data
EP3544236B1 (en) * 2018-03-21 2022-03-09 Telefonica, S.A. Method and system for training and validating machine learning algorithms in data network environments
US10868829B2 (en) * 2018-10-10 2020-12-15 Northrop Grumman Systems Corporation Predicted network traffic

Patent Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN101924781A (zh) * 2009-06-15 2010-12-22 日电(中国)有限公司 终端设备及其QoS实施方法以及流分类器
CN103038652A (zh) * 2010-05-25 2013-04-10 海德沃特合作I有限公司 用于保护网络容量的装置辅助服务
CN103546451A (zh) * 2012-07-16 2014-01-29 国际商业机器公司 基于流的覆盖网络
CN108886515A (zh) * 2016-01-08 2018-11-23 百通股份有限公司 通过利用良性联网协议来防止ip网络中的恶意信息通信的方法和保护装置

Also Published As

Publication number Publication date
US20200169509A1 (en) 2020-05-28
CN113348645A (zh) 2021-09-03
US10855604B2 (en) 2020-12-01
US20210135997A1 (en) 2021-05-06
WO2020112658A1 (en) 2020-06-04

Similar Documents

Publication Publication Date Title
CN113348645B (zh) 数据流分类的系统和方法
Hamdan et al. Flow-aware elephant flow detection for software-defined networks
US11625640B2 (en) Distributed random forest training with a predictor trained to balance tasks
CN109831386B (zh) 一种sdn下基于机器学习的最优路径选择算法
US11233744B2 (en) Real-time network application visibility classifier of encrypted traffic based on feature engineering
US20220369153A1 (en) Method and system for managing quality-of-service (qos) in communication networks
US11507887B2 (en) Model interpretability using proxy features
CN117880092A (zh) 网络参数配置方法、装置、计算机设备以及存储介质
Gomez et al. Intelligent active queue management using explicit congestion notification
WO2022015757A1 (en) Automatic flow management
Liao et al. Intelligently modeling, detecting, and scheduling elephant flows in software defined energy cloud: A survey
Shirmarz et al. An autonomic software defined network (SDN) architecture with performance improvement considering
Zheng et al. Application-aware QoS routing in SDNs using machine learning techniques
Nsaif et al. ML-based online traffic classification for SDNs
Tong et al. Machine learning based root cause analysis for SDN network
Al-Saadi et al. Unsupervised machine learning-based elephant and mice flow identification
Gomez et al. Efficient network telemetry based on traffic awareness
US11489904B2 (en) Poor-QoE assessment method and related device
CN113259263B (zh) 一种深度报文检测集群中的数据包调度方法
US11870863B2 (en) Method for operating a network
Takyi et al. A semi-supervised QoS-aware classification for wide area networks with limited resources
Pan et al. Orchestrating probabilistic in-band network telemetry for network monitoring
Ghalut et al. Content-Aware and QOE Optimization of Video Stream Scheduling over LTE Networks Using Genetic Algorithms and Random Neural Networks.
Bassene et al. An Enhanced Flow-Based QoS Management Within Edge Layer for SDN-Based IoT Networking
Aymaz et al. Efficient Routing by Detecting Elephant Flows with Deep Learning Method in SDN.

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