一种协同流的识别方法、系统以及使用该方法的服务器与流程

文档序号:11263642阅读:271来源:国知局
一种协同流的识别方法、系统以及使用该方法的服务器与流程

本发明涉及通信网络中的数据处理领域,尤其涉及一种协同流的识别方法、系统以及使用该方法的服务器。



背景技术:

新兴的网络并行技术的广泛应用,导致一种新的计算机网络概念的出现,即是协同流(coflow)。协同流的定义是一组具有语义关系(semanticrelationship)或者关联关系(correlationrelationship)的数据流的集合。协同流中的数据流往往属于同一个任务,因此协同流在对网络服务的性能要求上是一致的,即是最小化最迟数据流的完成时间,或者是协同流中的数据流需要在相同期限内完成传输。

协同流概念的出现,为网络服务带来巨大的机遇和挑战。机遇在于现有的网络调度算法往往以数据流为单位,这种以数据流为单位的调度算法没有充分利用数据流之间的语义关系,因此以流为单位的调度只能优化流层面的性能指标,但在集群计算(clusteringcomputing)的场景下无法发挥有效作用。这是由于在集群计算的应用场景中,只有从属同一个计算任务的数据流均到达目的终端的情况下,计算任务才能进入下一个步骤。因此,以流为单位而不考虑数据流之间的语义关系的调度算法,可能带来的结果是从属同一个任务的前面几个数据流都很快完成传输,然而最后一个数据流在传输过程中出现很长的延迟,这种情况从终端应用的角度来说,网络的服务质量是很差的。如果调度算法考虑了数据流之间的协同关系,将协同流中的所有数据流当做一个整体进行调度,就可以保证从属于同一个任务的数据流能够在合理的时间间隔内完成传输,从而保证终端应用的计算可以及时地进入下一个阶段。

然而,协同流的出现,带来了挑战在于协同流信息往往无法直接地显式地从数据流的报头获取。这是由于产生数据流的终端应用,在通常的情况下并不会在数据流的报头中提供任何显式的信息,作协同流识别之用。

目前,现有技术方案提出通过聚类的方式识别网络中活跃数据流的协同关系。此方案无需对产生数据流的终端应用进行任何内核修改,也无需要求终端应用显式地向网络运营商提供任何有关协同流或者任务层面的信息。相反地,该技术方案基于的原理是:对于从属同一个协同流的数据流,往往在发送时间上很接近。该技术方案提出通过提取数据流的发送时间作为特征,利用k-means算法对数据流进行聚类,再用调度算法根据聚类得到的协同流信息,对网络中的数据流进行调度,提高网络的服务性能。然而,网络产生数据流的频率非常高,即使在一个非常短暂的单位时间内,比如一秒,小型的数据中心可以产生成千上万的数据流,然而这些数据流可能并不属于同一个协同流。因此采用数据里发送时间作为唯一的特征,可能导致聚类的准确率很低,因为该方案很有可能将没有任何语义关系的数据流归为同一个协同流,仅仅由于这些数据流的发送时间很接近。



技术实现要素:

本发明实施例提供了一种协同流的识别方法、系统以及使用该方法的服务器,用于有效地提高了协同流的识别准确度,同时无需对应用进行内核修改,从而提高了协同流识别的时效性,满足网络调度的实时性需求。

第一方面,提供了一种协同流的识别方法,用于在网络数据传输过程中识别协同流,其特征在于,所述方法包括:服务器获取网络数据传输中的数据流报头信息;

根据所述数据流的报头信息获取流层面数据特征、应用层面数据流特征以及终端层面数据特征,其中所述数据流层面数据特征包括发送时间的距离 度量、数据包长度平均值度量、数据包长度方差度量、数据包到达时间间隔的平均值度量、数据包到达时间间隔方差度量以及传输协议的距离度量中的至少一种,所述应用层面数据流特征包括应用层面数据流特征距离,所述应用层面数据流特征距离用于指示数据传输的目的地地址和目的地端口的聚合程度或数据发送端ip地址集合的重叠程度,所述终端层面数据特征包括终端层面数据特征距离,所述终端层面数据特征距离用于指示数据流是否属于同一终端群落;

根据网络中的历史数据学习获得权重矩阵,所述权重矩阵用于使得从属于同一个协同流的数据流之间特征距离最小,而从属于不同协同流的数据流之间的特征距离最大,所述特征距离为所述数据流层面数据特征中的各度量、所述应用层面数据流特征距离以及述终端层面数据特征距离中的至少两种的加权距离;

根据所述数据流层面数据特征的度量、所述应用层面数据流特征距离,所述终端层面数据特征距离以及所述权重矩阵,计算网络中任意两个数据流的特征距离;

根据网络中任意两个数据流的特征距离,通过聚类算法将所述网络中的数据流分为若干个聚类集合,其中每一聚合流中的任意一个数据流与相同聚合流中任意另一个数据流的特征距离小于与不相同聚合流中任意一个数据流的特征距离,所述若干聚类集合中每一聚类集合为一协同流。

结合第一方面,在第一方面的第一种实现方式中,所述数据流报头信息包括:数据流的源ip地址、数据流的源端口、数据流的目的地ip地址、数据流的目的地端口、数据流发送时间以及数据流的使用的传输协议。

本申请实施例中涉及的数据特征来源,可根据数据流的报头信息提取,从而使用与现有的大多数网络系统。

结合第一方面或第一方面的第一种实现方式,在第一方面的第二种实现方式中,所述发送时间的距离度量为两数据流发送时间的差值绝对值;所述数据包长度平均值度量为两数据流在数据包长度上平均值差值的绝对值;所述数据包长度方差度量为两数据流在数据包长度上方差差值的绝对值;所述数据包到达时间间隔的平均值度量为两数据流在数据包传输时间间隔上平均值差值的绝对值;所述数据包到达时间间隔方差度量为两数据流在数据包传输时间间隔上方差差值的绝对值;所述传输协议的距离度量指示数据包传输协议是否相同,如果相同为一非零常数,不同则为零。

本申请实施例中通过量化各个特征来计算并识别协同流,从而提高数据处理的自动化以及智能化。

结合第一方面或第一方面的第一种实现方式或第一方面的第二种实现方式,在第一方面的第三种实现方式中,所述根据网络中的历史数据学习获得权重矩阵包括:根据网络中的历史数据获取多维特征距离向量,所述多维特征距离向量包括至少两个维度,所述至少两个维度对应包括发送时间的距离度量、数据包长度平均值度量、数据包长度方差度量、数据包到达时间间隔的平均值度量、数据包到达时间间隔方差度量、传输协议的距离度量、应用层面数据流特征距离以及终端层面数据特征距离中的至少两种,每一度量或特征距离构成所述多维特征距离向量的一个维度;根据网络中的历史数据学习获得所述多维特征距离向量的权重矩阵,以通过学习机制根据不同维度的特征距离对协同流识别有不同的作用来分配不同的权重,以使从属于同一个协同流的数据流之间特征距离最小,而从属于不同协同流的数据流之间的特征距离最大。

结合第一方面或第一方面的上述三种实现方式中任一种实现方式,在第一方面的第四种实现方式中,所述根据所述数据流层面数据特征的度量,所述应用层面数据流特征距离,述终端层面数据特征距离以及所述权重矩阵, 计算网络中任意两个数据流的特征距离,包括:根据所述多维特征距离向量以及权重矩阵计算网络中任意两个数据流的特征距离。

结合第一方面或第一方面的上述四种实现方式中任一种实现方式,在第一方面的第五种实现方式中,所述根据网络中的历史数据学习获得所述多维特征距离向量的权重矩阵,包括:

将网络中历史数据流按照是否属于同一个协同流,分为两个数据流对集合,所述两个数据流对集合分别对应协同流数据集以及非协同流数据集;

找出一个半正定矩阵a,使得目标函数:

的计算结果最小化,

其中,||fi-fj||a表示任意两个数据流的特征距离,也就是所述数据流层面数据特征中的各度量、所述应用层面数据流特征距离以及所述终端层面数据特征距离中的至少两种的加权距离,d(i,j)为多维特征距离向量,d(i,j)t为多维特征距离向量的倒置矩阵,a为权重矩阵。

第二方面提供了一种服务器,其特征在于,所述服务器包括信息获取模块、特征提取模块、权重学习模块、特征距离计算模块以及协同流聚类模块,其中所述信息获取模块用于获取网络数据传输中的数据流报头信息以及网络中的历史数据;

所述特征提取模块用于从所述数据流报头信息中提取的流层面数据特征、应用层面数据流特征以及终端层面数据特征;

所述权重学习模块用于根据网络中的所述历史数据学习获得权重矩阵,所述权重矩阵用于使得从属于同一个协同流的数据流之间特征距离最小,而 从属于不同协同流的数据流之间的特征距离最大,所述特征距离为所述数据流层面数据特征、所述应用层面数据流特征以及述终端层面数据特征的加权距离;所述特征距离计算模块用于根据所述数据流层面数据特征的度量、所述应用层面数据流特征距离,所述终端层面数据特征距离以及所述权重矩阵,计算网络中任意两个数据流的特征距离;

所述协协同流聚类模块用于根据网络中任意两个数据流的特征距离,通过聚类算法将所述网络中的数据流分为若干个聚类集合,其中每一聚合流中的任意一个数据流与相同聚合流中任意另一个数据流的特征距离小于与不相同聚合流中任意一个数据流的特征距离,所述若干聚类集合中每一聚类集合为一协同流。

第三方面提供一种服务器,包括接收端口、处理器以及存储器,所述接收端口用于接收网络数据传输中的数据流报头信息;

所述处理器用于根据所述数据流的报头信息获取流层面数据特征、应用层面数据流特征以及终端层面数据特征以及根据网络中的历史数据学习获得权重矩阵,再根据所述数据流层面数据特征的度量、所述应用层面数据流特征距离,所述终端层面数据特征距离以及所述权重矩阵,计算网络中任意两个数据流的特征距离,最后根据网络中任意两个数据流的特征距离,通过聚类算法将所述网络中的数据流分为若干个聚类集合,所述若干聚类集合中每一聚类集合为一协同流;

所述存储器用于存储所述流层面数据特征、所述应用层面数据流特征、所述终端层面数据特征、所述网络中历史数据以及所述加权矩阵。结合第三方面,在第三方面的第一种实现方式中,所述数据流层面数据特征包括发送时间的距离度量、数据包长度平均值度量、数据包长度方差度量、数据包到达时间间隔的平均值度量、数据包到达时间间隔方差度量以及传输协议的距离度量中的至少一种,所述应用层面数据流特征包括应用层面数据流特征距离, 所述应用层面数据流特征距离用于指示数据传输的目的地地址和目的地端口的聚合程度或数据发送端ip地址集合的重叠程度,所述终端层面数据特征包括终端层面数据特征距离,所述终端层面数据特征距离用于指示数据流是否属于同一终端群落。

结合第三方面或第三方面的第一种实现方式,在第三方面的第二种实现方式中,所述权重矩阵用于使得从属于同一个协同流的数据流之间特征距离最小,而从属于不同协同流的数据流之间的特征距离最大,所述特征距离为所述数据流层面数据特征中的各度量、所述应用层面数据流特征距离以及述终端层面数据特征距离中的至少两种的加权距离。

第四方面提供一种协同流的识别装置,用于在网络数据传输过程中识别协同流,所述装置包括:

信息获取模块,用于获取网络数据传输中的数据流报头信息以及网路中的历史数据;

特征提取模块,用于根据所述数据流的报头信息获取流层面数据特征、应用层面数据流特征以及终端层面数据特征,其中所述数据流层面数据特征包括发送时间的距离度量、数据包长度平均值度量、数据包长度方差度量、数据包到达时间间隔的平均值度量、数据包到达时间间隔方差度量以及传输协议的距离度量中的至少一种,所述应用层面数据流特征包括应用层面数据流特征距离,所述应用层面数据流特征距离用于指示数据传输的目的地地址和目的地端口的聚合程度或数据发送端ip地址集合的重叠程度,所述终端层面数据特征包括终端层面数据特征距离,所述终端层面数据特征距离用于指示数据流是否属于同一终端群落;

权重学习模块,用于根据所述网络中的历史数据学习获得权重矩阵,所述权重矩阵用于使得从属于同一个协同流的数据流之间特征距离最小,而从属于不同协同流的数据流之间的特征距离最大,所述特征距离为所述数据流层面数据特征中的各度量、所述应用层面数据流特征距离以及述终端层面数据 特征距离中的至少两种的加权距离;

特征距离计算模块,用于根据所述数据流层面数据特征的度量、所述应用层面数据流特征距离,所述终端层面数据特征距离以及所述权重矩阵,计算网络中任意两个数据流的特征距离;

聚类模块,用于根据网络中任意两个数据流的特征距离,通过聚类算法将所述网络中的数据流分为若干个聚类集合,其中每一聚合流中的任意一个数据流与相同聚合流中任意另一个数据流的特征距离小于与不相同聚合流中任意一个数据流的特征距离,所述若干聚类集合中每一聚类集合为一协同流。

结合第四方面,在第四方面的第一种实现方式中,所述权重学习模块还用于根据网络中的历史数据获取多维特征距离向量,所述多维特征距离向量包括至少三个维度,所述至少三个维度包括发送时间的距离度量、数据包长度平均值度量、数据包长度方差度量、数据包到达时间间隔的平均值度量、数据包到达时间间隔方差度量以及传输协议的距离度量中的至少一种度量以及应用层面数据流特征距离和终端层面数据特征距离,每一度量或特征距离构成所述多维特征距离向量的一个维度;再根据网络中的历史数据学习获得所述多维特征距离向量的权重矩阵,以通过学习机制根据不同维度的特征距离对协同流识别有不同的作用来分配不同的权重,以使从属于同一个协同流的数据流之间特征距离最小,而从属于不同协同流的数据流之间的特征距离最大。

第五方面包括一种协同流的识别系统,包括第二、三四方面中任意一种实现方式的服务器和一从服务器,所述从服务器包括一个或多个流信息筛选模块,每一个流信息筛选模块用于获取至少一个终端的数据流的报头信息,并将所述数据流的报头信息发送给所述服务器。

上述协同流识别的方法、系统以及装置,对终端,应用以及所产生的数据流不同层面的行为模式,提取有效的特征向量,该特征向量涵括了终端群 落,应用的数据发送路径以及数据流的发送时间、发送间隔等流微观行为模式,为协同流识别提供了全面有效的信息,然后用这些特征构成特征向量,来作为聚类算法提供重要输入,再根据训练数据,全靠各个特征对协同流识别的作用不同而学习出特征向量中每一个维度的特征的权重,以提高协同流识别的准确率。

附图说明

图1为本发明实施例中一种协同流识别系统的示意图。

图2为本发明实施例一中一种协同流的识别方法的流程示意图。

图3a和3b为本发明实施例一中聚合流的通信模式示意图。

图4为本发明实施例一中协同流的识别方法的识别协同流效果实验数据图。

图5为本发明实施例一中协同流的识别方法中除去终端层面数据特征的识别协同流效果实验数据图。

图6为本发明实施例一中协同流的识别方法中除去权重学习模块的识别协同流效果实验数据图。

图7为本发明实施例三中协同流识别系统中的服务器示意图。

图8为本发明实施例四中协同流识别系统中的服务器示意图。

具体实施方式

下面通过附图和实施例,对本发明的技术方案做进一步的详细描述。

本发明主要涉及如何不通过修改终端的应用内核等情况下,根据数据流的特征以及产生数据流的应用及终端的行为特征,通过聚类的方法实时地将网络中数据流所属的协同流识别出来。

例如,针对终端,应用以及所产生的数据流不同层面的行为模式,提取有效的特征向量。该特征向量涵括了终端群聚模式,应用的数据发送模式以 及数据流的发送时间,发送间隔等流微观行为模式,为协同流识别提供了全面有效的信息,从而从三个不同模式或层次提取特征进行协同流识别。同时,本发明还通过训练数据,自动地学习出每一个维度的特征所对应的权重。根据所获得的不同层次特征以及相应的权重,采用聚类算法,对数据流进行聚类,获得网络中数据流的协同信息。

本发明主要包括以下特点:提出采用三个层面的特征包括从终端群聚模式,应用发送模式以及流微观行为模式中提取有效的特征,构成特征向量,作为聚类算法提供重要输入;根据训练数据,自动地学习出特征向量中每一个维度的特征的权重,以提高协同流识别的准确率;利用所获得的特征向量以及权重,采用聚类算法对网络中的数据流实现在线聚类,获得协同流信息。

实施例一

如图1所示,本发明实施例涉及一种协同流的识别方法,用于在网络数据传输过程中识别协同流,所述用于传输数据的网络,主要包括终端、从服务器以及主服务。

所述从服务器包括一个或多个流信息筛选模块,每一个流信息筛选模块对应一个终端,用于采集终端的数据流信息并通过携带在网络数据传输中的数据流报头信息中传送给主服务器。

在一些实施例中,可以不存在从服务,流信息筛选模块可以直接设置在主服务器上。

所述主服务器包括流层面数据特征提取模块、应用层面数据流特征提取模块、终端层面数据特征提取模块、权重学习模块、特征距离计算模块以及协同流聚类模块。

所述主服务器通过所述流层面数据特征提取模块、所述应用层面数据流 特征提取模块以及所述终端层面数据特征提取模块从所述从服务器发送的数据流报头信息中提取对应的流层面数据特征、应用层面数据流特征以及终端层面数据特征。

同时参阅图2所示,本发明实施例涉及一种协同流的识别方法,包括以下五大步骤101至105:

步骤101,服务器获取网络数据传输中的数据流的报头信息。

所述服务器可以直接通过截取网络中传输的数据获取所述数据流报头信息,也可说通过位于从服务器或终端中流信息采集模块来获取所述数据流报头信息。

所述流信息采集模块在新数据流到来时,提取数据流数据包报头的信息。其中,对协同流有关键作用的特征包括数据流的源ip地址(sourceipaddress),源端口(serverport),目的地ip地址(destinationipaddress),目的地端口(clientport),数据流发送时间(starttime),数据流使用的传输协议(protocol),然后,所述流信息采集模块再将获取的信息发送给所述服务器。

采集这些信息是因为在网络中,可能存在一些用户行为模式。比如某些源ip地址可能通过某些端口定期地向某些目的地ip地址发送使用某种传输协议的一组数据流,这些数据流可能属于同一个任务的协同流。

所述流信息采集筛选模块还将对数据流进行初筛,将完成传输和非tcp(transmissioncontrolprotocol)的数据流筛去,并且定期地将采集筛选得到的数据流信息上报给主服务器系统。

步骤102,根据所述数据流的报头信息获取流层面数据特征、应用层面数据流特征以及终端层面数据特征,其中所述数据流层面数据特征包括发送时间的距离度量、数据包长度平均值度量、数据包长度方差度量、数据包到达时间间隔的平均值度量、数据包到达时间间隔方差度量、传输协议的距离度量中的至少一种,所述应用层面数据流特征包括应用层面数据流特征距离,所述应用层面数据流特征距离用于指示数据传输的目的地地址和目的地端口 的重叠程度或数据发送端ip地址集合的重叠程度,所述终端层面数据特征包括终端层面数据特征距离,所述终端层面数据特征距离用于指示数据流是否属于同一终端群落,其中所述终端群落是指由具有某一共同属性或特性的至少一个终端组成的集合。

所述流层面数据特征中的发送时间的距离度量为两数据流发送时间的差值绝对值。

由于协同流中的数据流属于同一个任务,为了任务能够顺利完成,这些数据流往往是几乎同时发送的。因此,衡量两个数据流是否属于同一个协同流,一个重要的方法就是度量两个数据流的发送时间差。例如,从两个活跃数据流的数据包报头分别提取了时间戳si,time和sj,time。发送时间是一个简单的整数型变量,因此所述发送时间的距离度量可以定义为两个发送时间的差值绝对值。

所述根据所述数据流的报头信息获取流层面数据特征中的发送时间的距离度量的步骤如下:

所述发送时间的距离度量:dt(si,time,sj,time)=|si,time-sj,time|,si,time和sj,time为两数据流的发送时间。

所述流层面数据特征中的数据包长度平均值度量为两数据流在数据包长度上平均值差值的绝对值,而所述流层面数据特征中的数据包长度方差度量为两数据流在数据包长度上方差差值的绝对值。

由于属于同一个协同流的数据流,很多场景下是由同一个应用产生的,因此,这些数据流的数据包长度应该服从相似的概率分布。因此,在流层面特征提取模块中,提取数据流的数据包平均长度和方差:

数据流的数据包平均长度:

数据流的数据包长度方差:

其中,ni表示数据流i的数据包个数,lij表示数据流i的第j个数据包的长度。

根据计算得到的数据流的数据包平均长度和方差,可以计算任意两个活跃数据流在数据包长度平均值和方差度量的距离:

所述数据包长度平均值度量:dmsize(i,j)=|mi,size-mj,size|

所述数据包长度方差度量:dvsize(i,j)=|vi,size-vj,size|

所述数据包到达时间间隔的平均值度量为两数据流在数据包传输达到时间间隔上平均值差值的绝对值;所述数据包到达时间间隔方差度量为两数据流在数据包到达时间间隔上方差差值的绝对值。

相似地,由于协同流中的数据流很多情况下是由同一个应用产生的,因此这些数据流在数据包之间传输的时间间隔也应该服从相似的概率分布。因此,首先计算数据流的数据包传输时间间隔平均值以及方差。

所述数据包到达时间间隔的平均值度量:

所述数据包传输时间间隔方差度量:

其中,δtij表示第i个数据流的第j个时间间隔。

同样地,计算任意两个活跃数据流在数据包到达时间间隔的距离体现为:

所述数据包到达时间间隔的平均值度量:dmint(i,j)=|mi,int-mj,int|,

所述数据包到达时间间隔方差度量:dvint(i,j)=|vi,int-vj,int|。

所述传输协议的距离度量指示数据包传输协议是否相同,如果相同为一非零常数,不同则为零。

其中,同一个协同流中的数据流往往采用相同的传输协议,特别是tcp协议来传输数据。例如,在整个网络数据流中,总共有n种不同的传输协议,比如prtcl={p1,p2,…pn},可以用一个n维的0-1向量变量来表示某个数据流使用的协议。当该数据流使用的是第i种传输协议,则该向量的第i维为1,而其他维度均为0。比如在以下例子中,如果数据流使用的是第二种传输协议,则

定义两种协议的距离度量为:

dprtcl(i,j)=||pri-prj||2

因而,所述两种协议的距离度量取值为0或者

所述应用层面数据流特征包括应用层面数据流特征距离,下面描述具体如何提取应用层面数据流特征以及如何计算应用层面数据流特征距离:

所述应用层面数据流特征主要反映产生数据流的应用的行为模式特征。这对协同流识别有重要作用。根据对最可能产生协同流的应用进行分析,可以获得一些先验知识,比如协同流比较可能产生于聚合流之中,对不属于同一个聚合流的数据流,也有可能属于同一协同流,对于并行计算应用中不属于一个聚合流的数据流,它们往往具有一个特点就是这些数据流都来着某些共同的终端。因此在应用层面特征提取模块实现了聚合流的识别,以及利用jacard相似度衡量终端的重叠程度,以及根据聚合流信息和jacard相似度定义任意两个数据流在应用层面的特征距离。

应用层面的特征距离的计算,主要分为以下四个步骤实现:

第一步:将所述数据流根据源ip地址进行聚合,找出网络中的所有聚合流{aggk};

第二步:找出聚合流的源ip地址集合{srck};

第三步:对属于同一个聚合流的数据流,直接赋值应用层面的特征距离;

第四步:对不属于同一个聚合流的数据流,计算jacard相似度并且计算应用层面的特征距离。

应用层面的特征距离的计算原理是在并行计算应用如spark中,一个reduce节点可能会处理来着多个map节点的数据,因此,如果两个数据流的目的地ip地址和端口一致,则它们属于同一个协同流的机会比较大。

通过对mapreduce计算平台的应用比如spark的行为分析,在计算启动阶段,sparkcontext对象在不同的计算节点启动了执行器,将任务分配给不同的执行器,每一个执行器都会建立自己的链接管理器,并分配了固定地端口号给链接管理器。在reduce阶段,执行器需要从其他的执行器获取数据,因此在当前执行器和其他的执行器之间会通过连接管理器建立链接。因此,其他的执行器将发送数据到执行reduce任务的执行器的某个特殊的端口。因此,在此定义目的地地址和目的地端口一致的数据流为一个聚合流(flowaggregation)。如果两个数据流属于同一个聚合流,则它们属于同一个协同流的概率比较大。因此,第一步是找出网络中数据流的聚合流,如下式所示:

fi∈aggk,iffi,dst_ip=aggk,dst_ip&&fi,dst_port=aggk,dst_port;

其中,fi为一数据流,aggk为聚合流,fi,dst_ip,fi,dst_port表示数据流的目的地地址以及目的地端口,aggk,dst_port表示聚合流中数据流的目的地地址以及目的地端口。

计算出聚合流之后,对于任意两个活跃数据流,需要计算它们在应用层面特征之间的距离时,如果两个数据流属于同一个聚合流,则它们属于同一个协同流的可能性很高,也就是它们在应用层面特征距离很小,赋值为0。然而,对于不属于同一个聚合流的两个数据流,需要有区别的对待,如果它们的发送端ip地址集合重叠程度很高,那么它们属于同一个协同流的机会仍然 很大,否则它们属于同一个协同流的机会就很小。

根据上述分析,得到如下的应用层面特征距离计算公式:

其中,dapp(i,j)为应用层面特征距离,j(i,j)为对于不属于同一个聚合流的两个数据流的相似度。

所述相似度计算过程如下:

如图3a和3b所示,对于不属于同一个聚合流的数据流,也可能属于同一个协同流。正如前面所述,在mapreduce应用中,在数据shuffle阶段,往往会出现运行的应用服务器上的一种多对多的通信模式。

图3a所示的通讯模式在mapreduce的datashuffle中很常见,也就是虽然两个数据流不属于同一个聚合流,但是这些数据流往往从相同的发送端集合发送出来,而图3b所示的通讯模式在mapreduce中并不常见。因此,当两个数据流不属于同一个聚合流时,可以根据它们的发送端ip地址集合的重复程度来计算它们在应用层面的特征距离。

假设数据流i和数据流j所属的聚合流的发送端ip地址集合分别为{srci}和{srcj},则衡量两个发送端ip地址集合的重叠情况由如下的jacard相似度给出:

j(i,j)=|{srci}∩{srcj}|/|{srci}∪{srcj}|;

其中jarcard相似度越高,则两个数据流所属的聚合流的发送端ip地址集合重叠程度越高,则这两个聚合流来着同一个任务的可能性越大,属于同一个协同流的可能性也越大。

所述终端层面数据特征以及终端层面数据特征距离具体提取以及计算过程如下:

数据中心的流量矩阵往往是十分稀疏的,即是数据中心的终端具有群聚现象,可以定义有终端组成的群落为共同体。网络中大部分的流量产生在稳 定的共同体里面。根据这用网络行为模式,网络中虽然有数量众多的终端,实际场景中终端具有一定的群聚现象,这种群聚现象指的是在网络中所有的终端可能会分成若干个共同体,而网络的流量很大程度上都是由共同体内部的终端之间的通信产生的。而协同流很小概率会出现在跨共同体的数据流中间。因此,如果两个数据流属于同一个共同体内,它们属于同一个协同流的机会更大。相反,如果两个数据流分属于两个不同的共同体,或者是某一个数据流属于跨共同体数据流,则他们属于一个协同流的概率较低。因此,终端层面特征提取模块的最主要任务是从网络的过往发送行为中发现网络中的共同体

综合上面分析,获取终端层面数据特征距离包括四步骤:

第一步:周期性地获取网络中的流量属性信息,所述流量属性信息包括终端流量模式、终端在一时间段内的数据流量以及终端在一时间段流的数据流个数中的至少两个;

第二步:根据所获网络流量属性信息,构造加权流量矩阵,以区分所述终端流量模式、所述终端在一时间段内的数据流量以及所述终端在一时间段流的数据流个数在计算共同体中的作用以及权重不同,所述共同体为由至少两个终端组成的群落,每一所述群落中的终端具有所述终端流量模式、所述终端在一时间段内的数据流量以及所述终端在一时间段流的数据流个数中的至少一种流量属性相同;

第三步:根据加权流量矩阵,利用谱聚类算法获取网络中共同体信息;

第四步:根据数据流是否从属同一个共同体,确定当前网络中任意两个活跃数据流在共同体层面的距离。

其中构造加权流量矩阵,根据加权流量矩阵,利用谱聚类算法获取网络中共同体信息包括:

周期性地从数据流信息采集筛选模块获取网络在t时间段内的数据流信息,并计算在这个时间段内的加权流量矩阵,如下式所示:

m(i,j)=v(i,j)×n(i,j)

其中m∈rn×n表示网络中n个终端的流量模式;v(i,j)表示任意终端对(i,j)在上述时间段内的流量,n(i,j)表示任意终端对(i,j)在上述时间段内的数据流个数。

根据所获得的加权流量矩阵,利用谱聚类算法提取共同体信息,所述谱聚类算法如下:

如上文所述,协同流一般产生于共同体内部,对于任意两个数据流,可以根据它们是否属于同一个共同体,确定它们在终端层面的特征距离:

步骤103、根据网络中的历史数据学习获得权重矩阵,所述权重矩阵用于使得从属于同一个协同流的数据流之间特征距离最小,而从属于不同协同流的数据流之间的特征距离最大,所述特征距离为所述数据流层面数据特征中的各度量、所述应用层面数据流特征距离以及述终端层面数据特征距离中的 至少两种的加权距离。需要特别说明的是,所述特征距离为所述数据流层面数据特征中个度量中的每一度量作为加权距离中的一种。

上述根据网络中的历史数据学习获得权重矩阵的步骤包括:构建多维特征距离向量d(i,j),

其中所述多维特征距离向量包括至少两个维度或者三个维度,所述至少两个维度对应包括发送时间的距离度量dtime(i,j)、数据包长度平均值度量dmsize(i,j)、数据包长度方差度量dvsize(i,j)、数据包到达时间间隔的平均值度量dmint(i,j)、数据包到达时间间隔方差度量dvint(i,j)、传输协议的距离度量dprtcl(i,j)、应用层面数据流特征距离dapp(i,j)以及终端层面数据特征距离dcom(i,j)中的至少两种,或者所述至少三个维度包括发送时间的距离度量、数据包长度平均值度量、数据包长度方差度量、数据包到达时间间隔的平均值度量、数据包到达时间间隔方差度量以及传输协议的距离度量中的至少一种度量以及应用层面数据流特征距离和终端层面数据特征距离,每一度量或特征距离构成所述多维特征距离向量的一个维度;

根据网络中的历史数据学习获得所述多维特征距离向量的权重矩阵a,以通过学习机制根据不同维度的特征距离对协同流识别有不同的作用来分配不同的权重,以使从属于同一个协同流的数据流之间特征距离最小,而从属于不同协同流的数据流之间的特征距离最大。

上述权重矩阵的学习可在spark应用程序运行完成,网络中的历史数据 来源于收集网络追踪数据和从应用中收集协同流信息。

首先,将网络追踪数据中的数据流,按照是否属于同一个协同流,分为如下两个数据流对集合,所述两个数据对集合分别对应协同流数据集以及非协同流数据集。

s:(fi,fj)∈siffiandfjbelongtothesamecoflow;

d:(fi,fj)∈diffiandfjbelongtodifferentcoflows.

找出一个半正定矩阵a,使得以下的目标函数最小化。

s.t.a>0

这里,表示为任意两个数据流的特征距离,也就是所述数据流层面数据特征中的各度量、所述应用层面数据流特征距离以及述终端层面数据特征距离中的至少两种的加权距离。

所述目标函数表示通过找出一个最佳的权重矩阵a,使得从属于同一个协同流的数据流之间特征距离最小,而从属于不同协同流的数据流之间的特征距离最大。

步骤104、根据所述数据流层面数据特征的度量、所述应用层面数据流特征距离,所述终端层面数据特征距离以及所述权重矩阵,计算网络中任意两个数据流的特征距离。

上述步骤104具体包括:

获取网络数据传输中数据流的多维特征向量,其中所述网络数据传输中数据流为网络中当前传输的实时数据流,与用于训练权重矩阵的历史数据有所不同,历史数据为数据流过去的信息而不是当前的。

所述多维特征距离向量包括至少三个维度,所述至少三个维度包括发送时间的距离度量、数据包长度平均值度量、数据包长度方差度量、数据包到达时间间隔的平均值度量、数据包到达时间间隔方差度量以及传输协议的距离度量中的至少一种度量以及应用层面数据流特征距离和终端层面数据特征距离,每一度量或特征距离构成所述多维特征距离向量的一个维度;

根据所述多维特征距离向量以及权重矩阵计算网络中任意两个数据流的特征距离

也就是网络中任意两个数据流的特征距离等于多维特征距离向量的倒置矩阵d(i,j)t乘以权重矩阵a再乘以多维特征距离向量d(i,j)三者的乘积的开方数。

所述网络中任意两个数据流的特征距离越小,表明两个数据流的相似度约大,从属于同一个协同流的概率就越大。

步骤105、根据网络中任意两个数据流的特征距离,通过聚类算法将所述网络中的数据流分为若干个聚类集合,其中每一聚合流中的任意一个数据流与相同聚合流中任意另一个数据流的特征距离小于与不相同聚合流中任意一个数据流的特征距离,所述若干聚类集合中每一聚类集合为一协同流。

根据前面所述模块输出的网络中任意两个活跃数据流之间的距离,通过聚类算法,将数据流集合分为若干个聚类,而每一个聚类代表了协同流信息,其中聚类的方法是最小化聚类内部的数据流之间的距离,同时最大化不同聚类中数据流之间的距离。

上述聚类算法可以有多种聚类算法来实现,如采用一类聚类算法,具有如下特点的聚类算法:不需要预设聚类数目、基于个体之间相对距离以及不需要个体的绝对位置,同时允许噪声个体。本发明实施例中优选采用dbscan 聚类算法。

图4展示了本发明实施例一中的协同流的识别方法在实验平台上对网络中协同流的识别情况,其中横坐标表示时间而纵坐标表示协同流中的数据流被识别出来的百分比,由此我们可以看到所述协同流的识别方法提出的协同流识别方案能够很准确地识别出哪一些数据流属于协同流。

为了证明所述协同流的识别方法提出不同特征提取方式和权重矩阵学习的必要性,下面进行对照实验,如图5展示了除去终端层面数据特征的方案的协同流识别效果。从图5我们可以看到如果没有考虑终端层面数据特征提的情况下,协同流正确识别的百分比出现明显的下降。由此可证明,采用上述层次化多特征提取的有效性和必要性。

同样地,为了证明权重学习模块的必要性,可以将权重学习获取权重矩阵的步骤从方案中去除,如图6所示,可以发现方案的协同流识别效果出现严重的下降,由此可见采用权重学习方式获取权重矩阵的有效性和必要性。

可见,本发明实施例一中的协同流的识别方法通过对网络中活跃数据流进行多层面的特征提取,根据特征对数据流进行聚类获得数据流的协同关系,再通过多层面的特征提取和权重学习,显著提高协同流的识别正确率。

实施例二

如图1所示,本发明实施例涉及一种协同流的识别系统,包括终端、从服务器以及主服务。

所述从服务器包括一个或多个流信息筛选模块,每一个流信息筛选模块对应一个终端,用于采集终端的数据流信息并通过携带在网络数据传输中的数据流报头信息中传送给主服务器。

在一些实施例中,可以不存在从服务,流信息筛选模块可以直接设置在主服务器上。

一并参阅图8,所述主服务器包括流层面数据特征提取模块、应用层面数据流特征提取模块、终端层面数据特征提取模块、权重学习模块、特征距离计算模块以及协同流聚类模块。

所述主服务器通过所述流层面数据特征提取模块、所述应用层面数据流特征提取模块以及所述终端层面数据特征提取模块从所述从服务器发送的数据流报头信息中提取对应的流层面数据特征、应用层面数据流特征以及终端层面数据特征。

其中,所述数据流层面数据特征包括发送时间的距离度量、数据包长度平均值度量、数据包长度方差度量、数据包到达时间间隔的平均值度量、数据包到达时间间隔方差度量、传输协议的距离度量中的至少一种,所述应用层面数据流特征包括应用层面数据流特征距离,所述应用层面数据流特征距离用于指示数据传输的目的地地址和目的地端口的重叠程度或数据发送端ip地址集合的重叠程度,所述终端层面数据特征包括终端层面数据特征距离,所述终端层面数据特征距离用于指示数据流是否属于同一终端群落。

在本实施例中,数据流中报头信息中包含的信息、各个距离度量以及特征距离的获取以及计算方式和上一实施例的相同,在此不再重复叙述。

所述权重学习模块用于根据网络中的历史数据学习获得权重矩阵,所述权重矩阵用于使得从属于同一个协同流的数据流之间特征距离最小,而从属于不同协同流的数据流之间的特征距离最大,所述特征距离为所述数据流层面数据特征中的各度量、所述应用层面数据流特征距离以及述终端层面数据特征距离中的至少两种的加权距离。需要特别说明的是,所述特征距离为所述数据流层面数据特征中个度量中的每一度量作为加权距离中的一种。

所述权重学习模块具体学习方式以及过程和上一实施例的完全相同,在此也不再重复叙述。

所述特征距离计算模块用于根据所述数据流层面数据特征的度量、所述应用层面数据流特征距离,所述终端层面数据特征距离以及所述权重矩阵,计算网络中任意两个数据流的特征距离。

所述特征距离的各种计算方式均和上一实施例的相同,在此不再重复叙述。

所述协协同流聚类模块用于根据网络中任意两个数据流的特征距离,通过聚类算法将所述网络中的数据流分为若干个聚类集合,所述若干聚类集合中每一聚类集合为一协同流。

所述聚类算法、方式以及过程均与上一实施例相同,在此不再重复叙述。

实施例三

如图7所示,本发明实施例三中一种服务器,用于在网络中进行数据处理。所述服务器包括包括接收端口、处理器、存储器以及总线,其特征在于,

所述总线用于在接收端口、处理器以及存储器之间进行数据传输。

所述接收端口用于接收网络数据传输中的数据流报头信息;

所述处理器用于根据所述数据流的报头信息获取流层面数据特征、应用层面数据流特征以及终端层面数据特征以及根据网络中的历史数据学习获得权重矩阵,再根据所述数据流层面数据特征的度量、所述应用层面数据流特征距离,所述终端层面数据特征距离以及所述权重矩阵,计算网络中任意两个数据流的特征距离,最后根据网络中任意两个数据流的特征距离,通过聚类算法将所述网络中的数据流分为若干个聚类集合,所述若干聚类集合中每 一聚类集合为一协同流;

所述存储器用于存储所述流层面数据特征、所述应用层面数据流特征、所述终端层面数据特征、所述网络中历史数据以及所述加权矩阵。

所述数据流层面数据特征包括发送时间的距离度量、数据包长度平均值度量、数据包长度方差度量、数据包到达时间间隔的平均值度量、数据包到达时间间隔方差度量以及传输协议的距离度量中的至少一种,所述应用层面数据流特征包括应用层面数据流特征距离,所述应用层面数据流特征距离用于指示数据传输的目的地地址和目的地端口的聚合程度或数据发送端ip地址集合的重叠程度,所述终端层面数据特征包括终端层面数据特征距离,所述终端层面数据特征距离用于指示数据流是否属于同一终端群落。

所述权重矩阵用于使得从属于同一个协同流的数据流之间特征距离最小,而从属于不同协同流的数据流之间的特征距离最大,所述特征距离为所述数据流层面数据特征中的各度量、所述应用层面数据流特征距离以及述终端层面数据特征距离中的至少两种的加权距离。

所述数据流报头信息包括:数据流的源ip地址、数据流的源端口、数据流的目的地ip地址、数据流的目的地端口、数据流发送时间以及数据流的使用的传输协议。

所述处理器用于根据网络中的历史数据获取多维特征距离向量,并根据网络中的历史数据学习获得所述多维特征距离向量的权重矩阵,以通过学习机制根据不同维度的特征距离对协同流识别有不同的作用来分配不同的权重,以使从属于同一个协同流的数据流之间特征距离最小,而从属于不同协同流的数据流之间的特征距离最大,其中所述多维特征距离向量包括至少两个或三个维度,所述至少两个维度对应包括发送时间的距离度量、数据包长度平均值度量、数据包长度方差度量、数据包到达时间间隔的平均值度量、 数据包到达时间间隔方差度量、传输协议的距离度量、应用层面数据流特征距离以及终端层面数据特征距离中的至少两种,或者所述至少三个维度包括发送时间的距离度量、数据包长度平均值度量、数据包长度方差度量、数据包到达时间间隔的平均值度量、数据包到达时间间隔方差度量以及传输协议的距离度量中的至少一种度量以及应用层面数据流特征距离和终端层面数据特征距离,每一度量或特征距离构成所述多维特征距离向量的一个维度。

所述处理器用于根据所述多维特征距离向量以及权重矩阵计算网络中任意两个数据流的特征距离。

实施例四

如图8所示,本发明实施例四中的一种服务器,用于在网络数据传输过程中识别协同流。

所述服务器包括:

信息获取模块,用于获取网络数据传输中的数据流报头信息以及网络中的历史数据,其中在实际应用中网络数据传输中的数据流报头信息通过服务器或者网络中的从服务器的数据流信息采集筛选模块来采集获得的,所述信息获取模块其实是直接通过所述数据流信息采集筛选模块获取网络数据传输中的数据流报头信息或者经过服务器的缓存获取网络数据传输中的数据流报头信息;

特征提取模块,用于根据所述数据流的报头信息获取流层面数据特征、应用层面数据流特征以及终端层面数据特征,其中所述数据流层面数据特征包括发送时间的距离度量、数据包长度平均值度量、数据包长度方差度量、数据包到达时间间隔的平均值度量、数据包到达时间间隔方差度量以及传输协议的距离度量中的至少一种,所述应用层面数据流特征包括应用层面数据流特征距离,所述应用层面数据流特征距离用于指示数据传输的目的地地址和目的地端口的聚合程度或数据发送端ip地址集合的重叠程度,所述终端层面 数据特征包括终端层面数据特征距离,所述终端层面数据特征距离用于指示数据流是否属于同一终端群落;

权重学习模块,用于根据所述网络中的历史数据学习获得权重矩阵,所述权重矩阵用于使得从属于同一个协同流的数据流之间特征距离最小,而从属于不同协同流的数据流之间的特征距离最大,所述特征距离为所述数据流层面数据特征中的各度量、所述应用层面数据流特征距离以及述终端层面数据特征距离中的至少两种的加权距离,在实际应用中,所述网络中的历史数据一般由服务器的存储器来储存,所述权重学习模块可以所述信息获取模块从服务器存储器中获取所述网络中的历史数据,也可以直接从服务器存储器中获取所述网络中的历史数据;

特征距离计算模块,用于根据所述数据流层面数据特征的度量、所述应用层面数据流特征距离,所述终端层面数据特征距离以及所述权重矩阵,计算网络中任意两个数据流的特征距离;

协同流聚类模块,用于根据网络中任意两个数据流的特征距离,通过聚类算法将所述网络中的数据流分为若干个聚类集合,其中每一聚合流中的任意一个数据流与相同聚合流中任意另一个数据流的特征距离小于与不相同聚合流中任意一个数据流的特征距离,所述若干聚类集合中每一聚类集合为一协同流。

所述权重学习模块还用于根据网络中的历史数据获取多维特征距离向量,所述多维特征距离向量包括至少三个维度,所述至少三个维度包括发送时间的距离度量、数据包长度平均值度量、数据包长度方差度量、数据包到达时间间隔的平均值度量、数据包到达时间间隔方差度量以及传输协议的距离度量中的至少一种度量以及应用层面数据流特征距离和终端层面数据特征距离,每一度量或特征距离构成所述多维特征距离向量的一个维度;再根据网络中的历史数据学习获得所述多维特征距离向量的权重矩阵,以通过学习 机制根据不同维度的特征距离对协同流识别有不同的作用来分配不同的权重,以使从属于同一个协同流的数据流之间特征距离最小,而从属于不同协同流的数据流之间的特征距离最大。

所述各个特征的提取和计算,还有各个权重矩阵的获取、特征距离计算、相似度计算以及聚合方法均与实施例一的相同,在此不再赘述。

以上所述的具体实施方式,对本发明的目的、技术方案和有益效果进行了进一步详细说明,所应理解的是,以上所述仅为本发明的具体实施方式而已,并不用于限定本发明的保护范围,凡在本发明的精神和原则之内,所做的任何修改、等同替换、改进等,均应包含在本发明的保护范围之内。

当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1