一种大流量环境下基于行为的p2p检测方法

文档序号:7740836阅读:105来源:国知局

专利名称::一种大流量环境下基于行为的p2p检测方法
技术领域
:本发明属于互联网
技术领域
,具体涉及一种P2P检测方法。
背景技术
:随着Internet的迅速发展,对等网络技术(Peer-to-Peer,P2P)已成为Internet上重要的应用之一。传统文件下载或流媒体服务都是客户端/服务器(C/S)模式,即用户连接服务器,然后服务器以单播方式把数据推送给用户。如果采用上述模式,所有的客户端全部连接到同一台服务器上,则服务器的压力会非常大,会影响用户的视听效果。内容分发网络(ContentDeliveryNetwork,CDN)技术虽然可以在一定程度上加速数据传输,但其核心仍然是基于集中服务器的架构,在高峰时期对突发流量的适应性、容错性等方面仍然存在一定缺陷。P2P技术的引入带来了新的机遇。在P2P方式下,每个对等实体(peer)既是服务的提供者,又是服务的享用者。通过将服务器的负载分散到众多peer中,从而有效地减轻服务器的负载和网络带宽占用。基于P2P方式的数据传输的研究也逐步引起了人们的重视,相关技术或原型系统不断出现,如BitTorrent,EMule,PPStream、PPLive等。在风险投资的推动下,已有多个商用系统投入运营,2006中央电视台春节联欢晚会也开始使用P2P流媒体技术对全球直播,使用P2P技术已经成为网络应用发展的趋势。然而,P2P技术在给人们带来娱乐和方便的同时,也带来了隐忧。因为众多peer代替了原有的集中服务器提供服务,这就给管理部门的监管带来了巨大的困难;同时随着P2P应用所产生的流量日益增大,占据了大量的互联网带宽,对其它应用的服务质量也形成了威胁,因此识别P2P应用并对其进行监控成为亟待解决的问题。通过对国际上各种P2P流量检测技术的调查发现,各种P2P流量检测技术都可以归结为如下三类检测技术基于端口的检测技术(PortbasedIdentification),深层数据包检测技术(DPI,De印PacketInspection)和基于流量行为特征的检测技术(TrafficBehaviorbasedldentification)。基于端口的检测技术就是根据使用的端口号来判断应用类别的技术。其弊端是,如果P2P应用通过动态变化的端口来传输数据,那么基于端口的方法检测就无能为力了,因此这种方法虽然效率比较高,但准确性太差,并没有被广泛的应用。深层数据包检测技术主要是通过对数据包的应用层数据进行特征匹配来识别P2P流量。目前深层数据包检测技术已经发展得非常成熟。SubhabrataSen等人于2004年初提出基于应用签名的P2P流量检测方法,实际上是深层数据包检测方法的一种,该方法把负载(Payload)特征分为固定偏移量(fixedoffset)特征和变化偏移量(variableoffset)特征,第一步检查固定偏移量,第二步检查变化偏移量,在性能和精度上都取得了令人满意的效果。但是对于采用了内容加密的P2P应用,基于深层数据包检测技术就变得无能为力了。另外,基于深层数据包检测不能适用于大流量的环境。基于流量行为特征的检测技术就是利用流量特征(如IP地址,端口等)信息进行P2P检测的技术,该技术不需要任何关于应用层协议的信息,主要针对网络流量在一段时间内的某些统计特征进行检测和分析,以此为基础检测P2P。ThomasKaragiannis等人在仔细研究了P2P流量的传输层特征后于2004年提出一种基于传输层特征的P2P流量检测方法,该方法以P2P流量在传输层所表现出来的两种一般性特征为依据,结合传统的端口检测技术,能够有效地检测到新的P2P应用和加密的P2P应用,但是该方法过于复杂且不能适用于国内的P2P应用环境。在国内,虽然目前对于P2P技术的研究和应用都进行得如火如荼,但是提出的检测方法基本上主要也是基于深层数据包检测技术。国内部分网络设备生产商已经推出了P2P流量监控的相关产品,如华为的SecPath1800F防火墙和Eudemon500/1000防火墙以及国都兴业(CAPTECH)的网络管理软件——网络慧眼。这些产品采用的都是深层数据包检测技术。综上所述,目前对P2P的识别与检测技术的实际应用主要是基于端口或基于深层数据包检测,一些基于流量行为特征的识别方法准确性和性能都不能满足要求。因此在大流量环境下(lGbit/s以上流量),开展基于流量行为特征的P2P识别技术的研究,设计能实际应用的基于流量行为特征的实时检测算法,具有非常重要的理论意义和实用价值。
发明内容本发明的目的在于克服已有的基于端口及基于深层数据包检测方法的不足以及当前的基于行为特征的检测方法实时性差且不能适于大流量环境等缺点,采用反馈算法,提供一种新的基于流量行为特征的P2P节点检测方法。—种基于流量行为的P2P检测方法,包括如下步骤(1)对网络流量进行采样;(2)对采样的流量进行连接(Connection)信息哈希表的构建,然后根据连接信息哈希表构建节点(IP)信息哈希表;(3)对节点信息哈希表中的节点(IP)进行角色识别,找出具有服务器特性的节点;(4)对上述具有服务器特性的节点利用多支持向量机(Multi-SVM)算法检测出P2P节点。进一步,所述的多支持向量机算法基于多个流量特征向量来实现,其中,流量特征包括连接持续时间,连接负载,连入连出比和服务率,每一个流量特征向量由相应流量特征的统计属性即最大值,最小值,平均数和分位数组成。进一步,所述的利用多支持向量机算法的检测包括(A)离线训练阶段通过在网络中实际运行各种P2P软件,捕获相应的P2P流量后生成训练集,对每个所述流量特征向量构建一个支持向量机(SVM),通过训练集来测试该支持向量机的误报率与漏报率,并根据所述的漏报率与误报率确定所述支持向量机(SVM)的权重参数;(B)在线检测阶段利用离线训练阶段确定的各支持向量机(SVM)及其权重参数构建多支持向量机F0q,X2,X3,X4):F(x"x2,x3,x4)=JiA(x》+3i2F2(x2)+3i3F3(x3)+3i4F4(x4),当满足F(Xpx2,x3,x4)>0时,该节点即为P2P节点,其中,Xi代表流量特征向量,Fi(Xi)表示每种特征向量构成的SVM,i=1,2,3,4,hi表示各SVM的权重参数,且Z",=1。进一步,所述的连接信息哈希表的构建过程为首先建立一个空的哈希表ConHashTable,再通过以下步骤的循环实现所述哈希表ConHashTable的更新,构建出所述的连接信息哈希表(I)从采样的流量中读取一个数据包;(II)在哈希表ConHashTable中查找此数据包对应的连接信息是否已经存在,如果存在转到步骤(III),否则转到步骤(IV);(III)更新哈希表ConHashTable中相应的连接信息,转步骤(I);(IV)新建一条连接信息记录并插入到哈希表ConHashTable中,转步骤(I)。进一步,所述的节点哈希表的构建过程为首先建立上述连接信息哈希表在一定时间内的副本,并建立一个空的哈希表IPHashTable,再通过以下步骤的循环实现所述哈希表IPHashTable的更新,最终构建出所述的节点哈希表1)从所述副本中获取一条连接信息记录;2)获取所述连接信息记录中的源IP及目的IP;3)判断所述源IP在哈希表IPHashTable中是否存在,如果存在转步骤4),否则转步骤5);4)更新哈希表IPHashTable中相应的节点信息记录,转步骤6);5)新建一条节点信息记录并插入到IPHashTable中;6)判断所述目的IP在哈希表IPHashTable中是否存在,如果存在转步骤7),否则转步骤(8);7)更新哈希表IPHashTable中相应的节点信息记录,转步骤9);8)新建一条IP信息记录并插入到哈希表IPHashTable中;9)判断所述副本是否遍历完毕,如果是,转步骤10),否则转步骤2);10)所述节点哈希表构建完成。进一步,对网络流量的采样包括基于时间的流量采样和基于空间的流量采样,从而过滤掉冗余的流量,降低P2P检测的时间与空间复杂度。进一步,所述的基于时间的流量采样即采用间隔采样的方法,在降低数据采集量的情况下能检测出P2P流量,间隔时间t通过以下公式确定尸0*5^*F(""0),,>~~^T^i-'=0其中,R(t)表示系统检测率与检测间隔时间t的函数关系,F(X)为P2P节点在线时间的互补累积分布函数,A,为任选的单位时间t。内节点的到达数,P。为对已捕获的流量中的P2P节点的识别率。进一步,所述的基于空间的流量采样指的是在空间的层面上,采用建立哈希表的方法来降低数据比对带来的额外消耗,具体为6建立非P2P节点哈希表和P2P节点哈希表,分别记录在上一个检测周期中已经检测出的非P2P节点和在上一个周期中已经检测出的P2P节点,再通过将待检测数据与两哈希表中数据分别进行查找对比,如果查找成功则代表该节点在先前的检测中已被识别为非P2P节点或P2P节点,无需进行重复检测,故将该数据包丢弃,而在两个哈希表中都查找不到的IP包则进行检测。进一步,所述的角色包括作为客户端、作为服务器或同时作为客户端和服务器,所述的具有服务器特性的网络节点指作为服务器或同时作为客户端和服务器的网络节点。进一步,为提高检测的性能,该方法还包括反馈步骤,即在上一轮中检测出P2P节点后,将检测结果反馈到所述的非P2P节点哈希表和P2P节点哈希表中,对其进行更新,再开始新一轮的检测。从服务器功能出发进行检测就使得需要检测的节点的数量大大降低,有助于提高监测的效率。基于Multi-SVM的方法提高了检测的准确率。图1双哈希表过滤结构图2双哈希表结构更新方法图3过滤节点哈希表结构图4双Hash表结构中,节点到达队列更新过程图5系统整体结构图图6网络数据镜像示意图图7连接(Connection)哈希表的构建与更新图8连接(Connection)哈希表表副本建立与分析时序图图9节点(IP)哈希表建立流程图图10多支持向量机训练过程图11多支持向量机检测过程具体实施例方式下面结合附图和具体实施例对本发明作进一步说明。由于P2P最根本的思想,同时也是它与客户/服务器模型(C/S)最显著的区别在于网络中的节点既可以获取其他节点的资源或服务,同时又是资源或服务的提供者,即兼具客户端(Client)和服务器(Server)的双重身份。首先,通过实际运行各种P2P软件的方式捕获各种P2P应用的数据,基于这些数据对P2P应用的流量特征进行分析,然后,用随机变量来表示流量特征,并通过统计建模的方法求得这些随机变量的概率分布函数。一般P2P网络中每一个节点所拥有的权利和义务都是对等的,包括通信、服务和资源消费。因此,只需从众多节点中找到具有服务器特性的节点,然后通过区分C/S模式中服务器节点与P2P节点的不同特征就可以较容易地检测出P2P节点。因此,从服务器角度出发,基于这些流量统计特征,采用多支持向量机(Multi-SVM)算法,对通过网关设备的流量进行行为特征的判定,以确定其为P2P节点或非P2P节点。此外,本发明考虑了系统的可扩展性,为了使其能够在大流量的环境下使用,采用了一种新的基于时间及空间的采样算法,使系统具有可7扩展性。本发明的目的通过如下措施来达到1.P2P流量特征的统计建模对每一种流量特征,如连接持续时间(ConnectionDuration),连接负载(ConnectionPayload)等,均采用分布拟和的方法将实验累积分布函数(cumulativedistributionfunction,CDF)曲线与理论CDF曲线相拟合的方式求其概率分布函数。首先,依次采用各种理论分布(如Weibull,Pareto,Log-Logistic等)的CDF来拟合实验CDF,采用极大似然法来计算对应理论CDF的参数值;最后通过柯尔莫诺夫_斯米尔诺夫检验(Kolmogorev-Smirnovtest,K_Stest)选择一种拟和实验CDF最好的理论CDF作为相应标准的理论分布。如果理论分布模型的K-S检测的显著水平小于5X,就认为其能够拟合实验分布。为了验证理论分布与实验分布的差异,通过绘制两者的分位数_分位数(Quantile-Quantile,Q-Q)图进行比较。如果理论CDF能充分的拟合实验CDF,那么Q-Q图就应大致为一条直线。2.通过流量采样算法及反馈算法提高系统速度,满足在Gbit流量环境下进行实时P2P检测。当前基于流量行为特征的P2P检测方式基本是采用捕获全部数据的方式进行P2P分析,这严重影响了系统的性能及实时性需求。本发明通过基于时间和空间的采样两方面进行流量过滤,同时引入反馈的方式,大幅度提高了系统的处理效率。(1)基于时间的流量采样根据P2P流持续时间长的特点,本发明采用间隔采样的方法,使P2P检测算法在降低数据采集量的情况下能检测出P2P流量。基于时间的流量采样方法基本思想如下在连续采样分析的情况下,用Ai表示第i次检测出的P2P节点的集合,记录每次检测出的P2P节点,假设共进行了n次检测,检测出的P2P节点的集合分别记为(A15A2A3...An)。比较各集合中记录的P2P节点的重合度,如果AUA2U...UAn=^UAn,U表示集合的并运算,那么第2n-1次测量就为冗余的测量。因此,本发明根据P2P节点在线时间及节点到达率的分布特征,选取合适的流量采样的间隔时间达到降低冗余计算,提高系统性能的目的。设节点在线时间的互补累积分布函数(ComplementaryCumulativeDistributionFunction,CCDF)为F(X)=P(X>x)。设单位时间t。内(在实际中为30s)节点的到达数为入t,P。为P2P检测算法对已捕获的流量中的P2P节点的识别率。本发明给到了系统检测率(检测出的P2P节点与实际存在的P2P节点的比值)与检测间隔时间t的函数关系尸0*<formula>formulaseeoriginaldocumentpage8</formula>(1)特别的,当两次采样的时间间隔为0时,<formula>formulaseeoriginaldocumentpage8</formula>,根据CCDF函数的定义F(O)=1,这时R。二P。,表示在连续采样的情况下,捕获到了所有的P2P流量,P2P节点的检测率R(t)只与具体检测算法的识别率P。有关。由公式(1)可以看出,采用P2P流量特征的统计建模方法,只需知道P2P节点在线时间与P2P节点到达率的统计分布函数,就可以根据公式(1)选择适当的采样间隔时间。(2)基于空间的流量采样在P2P节点检测的过程中,在空间的层面上,可采用流量过滤的方法,去掉冗余的流量,降低流量检测的时间复杂度。本发明采用建立哈希(Hash)表的方法来降低数据比对带来的额外消耗。具体来讲,主要是对以下两种流量进行过滤a)对已知非P2P流量的过滤,即网络中已确认的其他应用的流量进行过滤,例如Mail,FTP,HTTP,DNS等。b)对已检测出的P2P流量的过滤,即对之前检测出的P2P流量进行过滤。双Hash表流量过滤结构图如图1所示。本发明分别采用两个Hash表即非P2P节点表(Non-P2PTable)和P2P节点表(KnownP2PTable)分别记录在上一个检测周期中已经检测出的非P2P节点和在上一个周期中已经检测出的P2P节点。当一个数据包到来时,首先对其IP地址进行Hash操作,然后再在第一个Hash表Non-P2PTable中进行查找,如果查找成功则表示此节点已在先前的检测中被识别为非P2P节点,则无需进行重复检测,直接将该数据包丢弃,否则根据该Hash值到第二个Hash表KnownP2Ptable中进行查找,如果查找成功则代表该IP在先前的检测中已被识别为P2P节点,也无需进行重复检测,故将该数据包丢弃。最后,在两个hash表中都查找不到的IP包则进入P2P检测算法进行检测。已知的非P2P节点及在检测过程中检测出的P2P节点众多,不可能将所有的节点全都保存在第一个Hash表Non-P2PTable中。同时,随着检测系统的运行,检测出的P2P节点的增多,第二个Hash表KnownP2PTable也中将存储大量信息,这会增加内存的占用量及Hash匹配的时间复杂度。因此,根据局部性原理,第一个Hash表Non_P2Ptable及第二个Hash表KnownP2Ptable只保存最近一段时间内的IP值。3.基于服务器特征的Multi-SVM检测方法当前基于行为的P2P检测算法多从P2P节点作为客户端时的行为特征进行识别,本发明则从P2P节点的服务器端特征进行识别,能够获得更好的检测效果。一般P2P网络中每一个节点所拥有的权利和义务都是对等的,包括通信、服务和资源消费。因此,只需从众多节点中找到具有服务器特性的节点,然后通过区分C/S模式中服务器节点与P2P节点的不同特征就可以较容易地检测出P2P。由于在C/S结构中服务器节点要远远少于客户端节点,那么首先排除纯客户端节点,本发明提出了一种新的节点角色识别方法用来判断一个网络节点当前的角色,作为服务器(Server),作为客户端(Client)或同时作为服务器和客户端(Server&Client)。然后,通过该方法排除纯粹作为客户端角色的网络节点。接着,对那些具有服务器特征的网络节点,分析基于连接(Connection)的流量特征连接持续时间(ConnectionDuration),连接负载(ConnectionPayload),连入连出比(RatioofRequestConnectionsandResponseConnections,RQP)和服务率(ServiceRatio)。这四个流量特征可以很好的反映节点的服务器角色的特点。接着,对这四个流量特征分别用四个流量特征向量来表示,每一个流量特征向量均由各自流量特征的统计属性组成(最大值,最小值,平均数,分位数)。最后,本发明提出一种新的基于Multi-SVM的P2P节点识别方法。该方法分为两个阶段——训练阶段和识别阶段。在训练阶段,构建P2P流量的训练集及测试集。对每个流量特征向量均构建一个SVM,通过训练集来测试其误报率与漏报率,并根据每个SVM的漏报率与误报率情况确9定其权重参数,使误报率与漏报率越低的SVM在Multi-SVM检测中起到越大的作用。这样就构成了一个基于不同权重的Multi-SVM的检测方法。具体实施方法如下系统的整体结构如图5所示。从整体上看,系统共分为三大模块流量采样模块,P2P节点识别模块和反馈模块。流量采样模块主要采用了基于时间和基于空间的流量采样方法;P2P节点识别模块主要采用了基于服务器特征的Multi-SVM检测方法;反馈模块则将上一个检测周期检测出的非P2P节点与P2P节点反馈到流量采样模块中。步骤l.网络流量镜像为了不对监控网络本身造成影B向,系统采用被动测量(流量镜像)的方式来检测P2P流量。另外,为了便于流量的过滤与下一步中hash表的构建,如图6所示,系统采用出\入(TX\RX)两个方向分别镜像的策略从核心交换机上捕获网络流量。其中核心交换机位于内部网与Internet之间,TX/RX两个方向的流量均通过此交换机。步骤2.网络流量的采样与过滤在P2P检测的过程中,可采用基于时间与空间的流量采样方法,过滤掉冗余的流量,降低流量检测的时间与空间复杂度。步骤2.1基于时间的采样方法在镜像数据流量的过程中,采取间隔一定时间捕获网络流量的方式进行。具体间隔时间可参照公式(1)及实际的网络流量情况来设定。例如,当在流量相对较小及硬件处理能力较强的环境中可设间隔时间为O,即连续捕获;当在流量较大的环境中,可根据公式(1)设定较长的时间间隔以满足算法处理的要求。步骤2.2基于空间的流量采样对于每一次流量的镜像,本发明采用建立双Hash过滤表(Non-P2PTable,Know-P2PTbale)的方法过滤掉一部分网络流量,从空间的角度来降低数据比对带来的额外消耗。具体来讲,主要是对以下两种流量进行过滤(l)对已知非P2P流量的过滤,即网络中已确认的其他非P2P应用的流量进行过滤,例如Mail,FTP,HTTP,DNS等;(2)对已检测出的P2P流量的过滤。如图1所示。双Hash表过滤及更新过程待检测网络流量通过双Hash表的过滤后,进入P2P检测模块进行P2P节点检测,并输出检测结果,最后根据此结果对双Hash表进行更新。此过程如图2所示。为了防止双Hash表对内存占用的无限扩大及节点状态的改变(例如,从P2P节点变为一个正常节点或右一个正常节点变为一个P2P节点),本发明将双hash表中存储的节点数设定了一个上限同时对每一个Hash表的每个节点设定了一个超时移出时限。根据先进先出的原则,当下一轮检测中检测到的P2P及非P2P节点对Hash表进行更新时,只替换掉最先进入Hash表的那部分节点。在具体实现中,可采用链式结构将Hash表中节点串联起来,并保留头,尾指针,如图3所示。同时,为了避免节点长时间滞留在hash表中,对节点设定超时机制,即超过一定时限的节点需要移出双hash表过滤结构。具体更新过程1)在检测模块检测出的P2P节点,组成一个节点信息存储块(Peerlnfo)。Peerlnfo主要由识别时间,节点IP地址及节点释放标志位等组成。2)将该Peerlnfo插入到Hash表过滤结构中。3)将其加入到节点到达队列的尾部。4)判断链表中的节点数是否超过了设置的上限,如果没有则将Hash表中的节点数加l,返回l),如果超过上限则删除队头的节点,但暂不释放空间,返回1)。更新过程如图4所示。特别的,在节点移出过程中,并不直接将该节点记录的存储空间释放,而是采用一个节点释放标记位,将其标记为需要释放状态,然后间隔一段时间后进行批量释放。步骤3:基于连接(Connection)的Hash表的构建(检测算法)本发明采用自定义连接的方式,使其能够含有更大的信息量并更具有针对性,从而可更好的分析数据。—条流(Flow)由源IP(SIP),目的IP(DIP),源端口(Sport),目的端口(Dport)及协议(Proc)来表示。艮卩Flow(SIP,Sport,DIP,Dport,Proc)。在流的定义中,一条流是有5个元素组成的,在流的定义中可以看出流是有方向性的。我们将发起连接的流及回应的流分别定义为连接发起流(reqFlow)和连接回应流(r印Flow)。两条流Flowl及Flow2,如果Flowl.SIP=Flow2.DIP&Flowl.Sport=Flow2.Dport&Flowl.DIP=Flow2.SIP&Flow2.Dport=Flowl.Sport&Flowl.Proc=Flow2.Proc,那么我们将Flowl与Flow2中发起连接的那条流称为发起流reqFlow,另一条回应的流称为回应流r印Flow。将(reqFlow,r印Flow)称为一条连接(Connection),即Connection(reqFlow,r印Flow)。步骤3.1连接哈希表(ConHashTable)的构建连接信息的Hash表的构建过程,首先建立一个空的连接信息哈希表(ConHashTable),再通过以下步骤的循环实现所述哈希表ConHashTable的更新,构建出所述的连接信息哈希表1)从采样的流量中读取一个数据包;2)在ConHashTable中查找此数据包对应的连接信息是否已经存在,如果存在转到(3),否则转到(4);3)更新此条连接信息,如连接持续时间,上行流量,下行流量等,转(1);4)新建一条连接信息记录并插入到ConHashTable中,转(1)。基于连接的Hash表的构建如图7所示。步骤3.2建立连接哈希表(ConHashTable)的副本。本发明以五分钟为周期进行数据分析。在实时获取5分钟的数据并生成连接哈希表后,开启新的线程建立连接哈希表副本并进行进一步的分析,与此同时,主线程依然在实时捕获数据建立新一轮的连接哈希表。只要能够满足连接哈希表副本的创建与分析在五分钟内完成,即使在连续流量捕获的情况下,系统依然实时的运行下去,如图8所示。步骤4建立节点哈希表(IPHashTable)由于要在节点层面上进行P2P的检测,因此还需要在节点层面上进行分析。系统采用节点哈希表来存储各节点信息。节点哈希表的构建过程如下首先建立一个空的节点信息哈希表(iraashTable),再通过以下步骤的循环实现所述哈希表IPHashTable的更新,最终构建出所述的节点哈希表1)从所述副本中获取一条连接信息记录;2)获取所述连接信息记录中的源IP及目的IP;3)判断所述源IP在哈希表IPHashTable中是否存在,如果存在转步骤4),否则转步骤5);4)更新哈希表IPHashTable中相应的节点信息记录,转步骤6);5)新建一条节点信息记录并插入到IPHashTable中;6)判断目的IP在哈希表IPHashTable中是否存在,如果存在转步骤7),否则转步骤(8);7)更新本条节点信息记录,转步骤9);8)新建一条IP信息记录并插入到哈希表IPHashTable中;9)判断所述副本是否遍历完毕,如果是,转步骤10),否则转步骤2);10)所述节点哈希表构建完成。构建过程如图9所示。步骤5节点角色识别本发明采用一个新的方法来识别节点的角色作为服务器,作为客户端或同时作为服务器和客户端。对于一个节点(以IP地址表示),Nsp。rt和Ndp。rt分别代表此节点自身开放的端口数以及其连接的其他IP的端口数,N工p代表与此节点建立了连接关系的不同的IP总数,通过以下公式确定两个比值Rs和Rd:Rs=Nsport/NIP在传统的C/S结构下。服务器(Server)通常开放一定的端口,例如S0,25,等待客户端的连接。客户端(Client)则开放一系列连续的端口向服务器发起连接。在实际中发现,C/S模式下服务器节点Rs的值一般在(O,l)范围,而Rd的值通常大于l;而客户端节点的Rs值则在通常大于1,Rd值在(O,l)范围内。在P2P应用中,Rs和Rd则通常全大于1或全小于1。在实际应用中,我们着重从备选节点中选取具有服务器特征的节点,然后通过P2P节点与普通服务器节点的不同来判断一个节点是普通C/S模式中的服务器节点还是P2P节点。在实际中,我们仅仅分析连接(Connection)数超过10的节点。同时,本发明通过设定域值的方式来过滤单纯的客户端节。具体客户端节点过滤域值设定如下Rs>10orRd<5or(Rs>1andRd<0)步骤6基于多支持向量机(Multi-SVM)的检测算法在节点哈希表的基础上,本发明采用基于服务器端特征的多支持向量机(Multi-SVM))的P2P节点发现算法,主要内容包括1)基于节点的服务器特征的选取,2)采用Multi-SVM的方式来检测判断P2P节点。步骤6.1节点的服务器流量特征(Features)的选取本发明选取以下四个流量特征(1)连接持续时间(ConnectionDuration)连接持续时间表示一条连接的存在时间。connection,r印flow.Endtime表示一条连接中回应流(r印Flow)结束的时间,connection.reqFlow.Endtime表示一条连接中发起流(reqFlow)结束的时间。Connection.reqFlow.Begintime表示一条连接中发起流开始的时间也即这条连接开始的时间。Max表示取最大值,那么,连接持续时间就可以通过下式进行计算max(connection.repFlow.Endtime,connection.reqFlow.Endtime)-connection.reqFlow.Begintime.(2)连接负载(ConnectionPayload)连接负载是指一条连接中所传输的数据总量。(3)连入连出比(RQP)对于某一个网络节点,其包含着两种类型的连接1)由自身发起的连接(requestconnections);2)由其他节点发起的连接(responseco皿ections)。如果用N,estcomections表不requestconnections白勺数目,Nresponsecomections表不responseconnections白勺数目。那一个主机的连入连出比可定义为<formula>formulaseeoriginaldocumentpage13</formula>(4)月艮务率(ServiceRatio)服务率主要描述一台主机的对其他节点提供服务的情况。主要通过一台主机对其他主机发起的连接(responseconnections)的回应情况。NMspondedresponsecomections表示这台主机对responseconnections的回应次数,即,这台主机中所有建立起连接的responseconnections.Ntotalrraponsecomections表示这台主丰几所有白勺responseconnections白勺数目。那么一台主机的服务率可定义为<formula>formulaseeoriginaldocumentpage13</formula>步骤6.2采用Multi-SVM的方式来检测判断P2P节点。公式(2)及公式(3)描述了一个多SVM机,公式(4)与公式(5)则给出了各SVM权值的计算方法。<formula>formulaseeoriginaldocumentpage13</formula><formula>formulaseeoriginaldocumentpage14</formula>Xi代表本发明选取的四种特征向量,Fi(Xi)表示每种特征向量构成的SVM,i表示各SVM的权值,ai,|3i分别表示各SVM单独检测P2P节点时的误报率与漏报率,i=1,2,3,4。基于Multi-SVM的P2P节点判断方法主要由两个阶段构成1)训练阶段,2)检测阶段。Multi-SVM的训练过程阶段主要是由训练集确定各SVM即Fi(Xi)(i=1,2,3,4)及各SVM的权值=1,2,3,4)。其中训练集通过在网络中实际运行各种P2P软件并捕获相关流量后生成,SVM的权值由公式(4)和(5)计算出来。这样就构成了一个Multi-SVM:F(Xl,x2,x3,x4).如公式(2)所示。训练阶段的主要流程如下1)通过运行实际真实的P2P软件捕获相应流量。2)计算4个流量特征向量Xi(i=1,2,3,4)。具体地,连接持续时间的统计数据由5分钟内与某节点的所有连接的持续时间组成;连接负载的统计数据由5分钟内与该节点相关的所有连接的负载数据组成;连入连出比统计数据是在5分钟内,对该节点每30s计算一次,形成一组数据。服务率统计数据是在5分钟内对该节点每30s计算一次,形成一组数据。每一个流量特征向量均由各自流量特征的统计数据的统计属性组成(最大值,最小值,平均数,分位数),即取连接持续时间的统计数据的最大值,最小值,平均数和分位数组成相应的流jt特征向量,其余三组统计数据同理也形成相应的沒右,t特征向量。:1,2,3,4)3)根据不同的特征向量训练相应的SVM(Xi)(i4)计算各SVM的权值=1,2,3,4)。训练阶段的流程如图10所示。Multi-SVM的检测阶段则是将待检测的未知P2P由步骤1,2,3,4,5进行处理后生成4个特征向量,进入Multi-SVM,如果F(Xpx2,x3,x4)>0则表示该节点为P2P节点,否则为非P2P节点,如公式(3)所示。检测阶段的主要流程如下1)根据前述步骤获取每个待测节点的流量特征向量的值Xi(i=1,2,3,4)。2)对每个待测节点,进入Multi-SVM进行测试,如果F(Xl,x2,x3,x4)>0判定其为P2P节点,如果F(Xl,x2,x3,x4)<0判定其为非P2P节点。检测阶段的流程如图11所示。这里需要说明的是,训练阶段是在检测过程之外进行的,也即是说每个SVM及其权值的确定是通过离线的方式计算出来。然后再进行P2P节点的在线检测。步骤7.系统反馈本发明利用局部性原理,利用反馈的方式进行P2P节点的检测以提高检测系统的性能。具体流程如图5所示在上一轮中检测出P2P节点后,将检测结果反馈到非P2P节点哈希表和P2P节点哈希表中,对其进行更新,再开始新一轮的检测。权利要求一种基于流量行为的P2P检测方法,包括如下步骤(1)对网络流量进行采样;(2)对采样的流量进行连接(Connection)信息哈希表的构建,然后根据连接信息哈希表构建节点(IP)信息哈希表;(3)对节点信息哈希表中的节点(IP)进行角色识别,找出具有服务器特性的节点;(4)利用多支持向量机(Multi-SVM)算法对上述具有服务器特性的节点进行检测,找出其中的P2P节点,完成检测。2.根据权利要求1所述的方法,其特征在于,所述的多支持向量机算法基于多个流量特征向量来实现,其中,流量特征包括连接持续时间,连接负载,连入连出比和服务率,每一个流量特征向量由相应流量特征的统计属性即最大值,最小值,平均数和分位数组成。3.根据权利要求2所述的方法,其特征在于,所述的利用多支持向量机算法的检测包括(A)离线训练阶段通过在网络中实际运行各种P2P软件,捕获相应的P2P流量后生成训练集,对每个所述流量特征向量构建一个支持向量机(SVM),通过训练集来测试该支持向量机的误报率与漏报率,并根据所述的漏报率与误报率确定所述支持向量机(SVM)的权重参数;(B)在线检测阶段利用离线训练阶段确定的各支持向量机(SVM)及其权重参数构建多支持向量机F0q,X2,X3,X4):F(x"x2,x3,x4)=31&(x》+3i2F2(x2)+3i3F3(x3)+3i4F4(x4),当满足F(x"x2,x3,x4)>0时,该节点即为P2P节点,其中,Xi代表流量特征向量,Fi(Xi)表示每种特征向量构成的SVM,i=1,2,3,4,^表示各SVM的权重参数,且Z^=1。/=i4.根据权利要求1所述的方法,其特征在于,所述的连接信息哈希表的构建过程为首先建立一个空的哈希表ConHashTable,再通过以下步骤的循环实现所述哈希表ConHashTable的更新,构建出所述的连接信息哈希表(I)从采样的流量中读取一个数据包;(II)在哈希表ConHashTable中查找此数据包对应的连接信息是否已经存在,如果存在转到步骤(III),否则转到步骤(IV);(III)更新哈希表ConHashTable中相应的连接信息,转步骤(I);(IV)新建一条连接信息记录并插入到哈希表ConHashTable中,转步骤(1)。5.根据权利要求l-4之一所述的方法,其特征在于,所述的节点哈希表的构建过程为首先建立上述连接信息哈希表在一定时间内的副本,并建立一个空的哈希表IPHashTable,再通过以下步骤的循环实现所述哈希表IPHashTable的更新,最终构建出所述的节点哈希表1)从所述副本中获取一条连接信息记录;2)获取所述连接信息记录中的源IP及目的IP;3)判断所述源IP在哈希表IPHashTable中是否存在,如果存在转步骤4),否则转步骤5);4)更新哈希表IPHashTable中相应的节点信息记录,转步骤6);5)新建一条节点信息记录并插入到IPHashTable中;6)判断所述目的IP在哈希表IPHashTable中是否存在,如果存在转步骤7),否则转步骤(8);7)更新哈希表IPHashTable中相应的节点信息记录,转步骤9);8)新建一条IP信息记录并插入到哈希表IPHashTable中;9)判断所述副本是否遍历完毕,如果是,转步骤10),否则转步骤2);10)所述节点哈希表构建完成。6.根据权利要求l-5之一所述的方法,其特征在于,对网络流量的采样包括基于时间的流量采样和基于空间的流量采样,从而过滤掉冗余的流量,降低P2P检测的时间与空间复杂度。7.根据权利要求6所述的方法,其特征在于,所述的基于时间的流量采样即采用间隔采样的方法,在降低数据采集量的情况下能检测出P2P流量,间隔时间t通过以下公式确<formula>formulaseeoriginaldocumentpage3</formula>其中,R(t)表示系统检测率与检测间隔时间t的函数关系,F(X)为P2P节点在线时间的互补累积分布函数,A,为任选的单位时间t。内节点的到达数,P。为对已捕获的流量中的P2P节点的识别率。8.根据权利要求6或7所述的方法,其特征在于,所述的基于空间的流量采样指的是在空间的层面上,采用建立哈希表的方法来降低数据比对带来的额外消耗,具体为建立非P2P节点哈希表和P2P节点哈希表,分别记录在上一个检测周期中已经检测出的非P2P节点和在上一个周期中已经检测出的P2P节点,再通过将待检测数据与两哈希表中数据分别进行查找对比,如果查找成功则代表该节点在先前的检测中已被识别为非P2P节点或P2P节点,无需进行重复检测,故将该数据包丢弃,而在两个哈希表中都查找不到的IP包则进行检测。9.根据权利要求1所述的方法,其特征在于,所述的角色包括作为客户端、作为服务器或同时作为客户端和服务器,所述的具有服务器特性的网络节点指作为服务器或同时作为客户端和服务器的网络节点。10.根据上述权利要求8所述的方法,其特征在于,为提高检测的性能,该方法还包括反馈步骤,即在上一轮中检测出P2P节点后,将检测结果反馈到所述的非P2P节点哈希表和P2P节点哈希表中,对其进行更新,再开始新一轮的检测。全文摘要一种大流量环境下基于流量行为的P2P检测方法,属于互联网
技术领域
。通过在大流量环境下,对流量进行基于时间和基于空间的采样,过滤掉冗余流量,降低检测的时间复杂度和空间复杂度,接着对网络节点进行角色识别,识别出具有服务器特征的网络节点,然后从连接持续时间,连接负载,连入连出比和服务率等四个流量特征出发,建立相关的特征向量,并采用多支持向量机的方法识别出P2P节点。本发明适用于大流量环境下P2P的检测,能检测出P2P文件共享应用及P2P流媒体应用等当前主流的P2P应用。文档编号H04L29/08GK101795214SQ201010100528公开日2010年8月4日申请日期2010年1月22日优先权日2010年1月22日发明者刘峰,周丽娟,周智昊,彭晓天,李芝棠,柳斌,涂浩,王世福,马晓静,黄立辉申请人:华中科技大学
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1