P2p流量识别方法、装置、设备和系统的制作方法

文档序号:7973302阅读:222来源:国知局
专利名称:P2p流量识别方法、装置、设备和系统的制作方法
技术领域
本发明涉及网络通信技术领域,尤其涉及一种P2P流量首报文识别的方法、装置、 设备和系统。
背景技术
近年来,计算机网络中的各种对等网络(Peer-to-Peer,P2P)应用越来越丰富, 出现了许多新的应用类型和协议,这些P2P应用消耗了大量的网络带宽。由于不同的网络应用对带宽资源的需求不一样,如网络游戏、网络电话(VOIP,Voice over Internet Protocol)、视频会议等实时应用对网络传输时延、抖动等特性较为敏感,当网络上有P2P 应用流量等高流量型应用时,实时应用的使用就会受很大的影响。为了解决上述问题,现有技术中,通过为企业、网吧租用两条或多条广域网链路, 其中一条高质量线路用于传输对网络传输时延、抖动等特性敏感的关键应用,另一条低质量线路用于传输P2P应用等。此种情况,需要出口网关设备能够根据应用类型进行策略路由。由于出口网关设备通常部署网络地址转换(NAT,Network Address Translation)功能,连接一旦建立,虽然能够根据应用类型的识别结果修改上行流量的线路,但是真正消耗带宽的下行流量仍然占用连接建立时选择的线路。因此,为了有效地利用网络资源,必须对 P2P应用流量进行有效地管理,而其前提是能够实现对P2P流量的高效、准确的识别。传统的P2P流量识别方法可以分为三类端口映射(Port Mapping)、深度数据包检测(DPI,De 印 Packet Inspection)、流量特征检测(DFI,De 印 Flow Identify)。其中端口映射方法是根据各种P2P应用所使用的传输层端口进行识别,但现有的P2P 应用为了躲避检测,都已经开始使用动态端口,甚至使用其它网络应用的端口,如HTTP的 80端口,因此该方法无法准确地识别P2P流量;深度数据包检测方法是通过分析应用层载荷、提取各种P2P应用的特征串进行识别,该方法准确性高、易于实现,其缺点是只能对以明文方式传输的P2P应用进行检测,而大多数P2P应用已经开始采用模糊加密协议传输数据。对于TCP连接,当获取到应用层载荷的时候,已经经过了三次握手过程,因此无法在连接建立时识别出P2P流量;流量特征检测方法是通过对网络流量中所有数据包进行统计分析,如数据包大小、间隔时间、连接数量等,利用机器学习、数据挖掘等方法,发现P2P应用的流量特征,以此来检测P2P应用的流量。这种方法能够检测未知和加密的P2P流量,但是需要对大量数据包进行统计分析才能做出判断,处理的数据量较大,且存在一定的误判率,同时,流量特征检测方法只能在连接建立以后提取P2P应用的流量特征,而无法在连接建立时识别出P2P 流量。另外,这类方法的检测依据是P2P应用的流量特征,这是一个统计量,无法准确区分各种具体的P2P应用流量。除了以上三种方法,近年来出现了一种利用主动探测识别P2P流量的方法。该方法首先通过深度数据包检测识别明文P2P流量,然后结合流量特征检测方法,标记出疑似 P2P流的未知连接,接着向外网对端发送特定P2P应用协议的交互报文进行主动探测(如发送电驴edonkey协议的Hello报文),如果对端的回应报文是该特定P2P协议交互报文的回应(如回应电驴edonkey协议的Hello answer报文),则可以判断出该流量为P2P流量。当所有P2P协议的交互特征库都尝试探测后,仍然无法收到相应P2P应用协议的应答报文,则认为该连接为未知应用。相比于流量特征检测方法,主动探测方法能够准确地识别出加密P2P流量,并且区分各种具体的P2P应用。但是,这种识别方式是在连接建立以后进行的探测,无法做到在建立连接时识别出P2P流量,等到识别出来后,可能这条连接已经进行了一定量的下载。另外,一个内网P2P用户通常向数量庞大的外网对端请求资源,随着加密P2P流量和P2P应用协议种类的增加,需要发送的主动探测流量可能消耗大量的出口带宽,无法实现有效的流量管理。综上所述,如何在连接建立时对P2P流量进行准确识别,称为现有技术中亟待解决的技术问题之一。

发明内容
本发明实施例提供一种P2P流量识别方法、装置、网关设备和系统,用以在连接建立时对P2P流量进行准确识别,从而满足根据应用类型进行策略路由的需要,达到充分利用多条线路、保障关键应用正常运行的目的。本发明实施例提供一种P2P流量识别方法,包括在用户与来源客户端建立连接时,获得包含未知数据流量的首报文数据包,并提取所述首报文数据包中的来源客户端信息,所述未知数据流量为除已知类型数据流量和明文P2P流量以外的数据流量;判断所述来源客户端信息是否存在于预先建立的对等网络P2P客户端列表中;在判断结果为是时,确定所述未知数据流量为P2P流量;在判断结果为否时,确定所述未知流量为非P2P流量。较佳地,本发明实施例中,按照如下过程建立P2P客户端列表当所述用户向外网客户端请求资源时,获取包含明文P2P流量的交互数据包,并确定所述明文P2P流量对应的P2P应用类型;根据确定出的P2P类型解析所述交互数据包,提取所述用户所请求资源的资源标识;从预先存储的报文模板库中,选择所述P2P应用类型对应的来源交换报文模板;利用所述来源交换报文模板和所述资源标识构造来源交换报文,并向所述用户发送所述来源交换报文;从所述用户返回的来源交换报文的应答报文中,提取每个来源客户端的IP和端口号建立P2P客户端列表。本发明实施例提供一种P2P流量识别装置,包括密文处理单元,用于在用户与来源客户端建立连接时,获得包含未知数据流量的首报文数据包,并提取所述首报文数据包中的来源客户端信息,所述未知数据流量为除已知类型数据流量和明文P2P流量以外的数据流量;判断单元,用于判断所述来源客户端信息是否存在于预先建立的对等网络P2P客户端列表中;
确定单元,用于在所述判断单元的判断结果为是时,确定所述未知数据流量为P2P 流量;在判断结果为否时,确定所述未知流量为非P2P流量。本发明实施例提供一种网关设备,包括上述P2P流量识别装置。本发明实施例提供一种P2P流量识别系统,包括网关云服务器和至少一个网关设备,其中所述网关设备,用于存储来源交换报文模板,并针对每一个来源交换报文模板,分别统计利用该来源交换模板构造的来源交换报文被用户成功响应次数和失败响应次数,将该来源交换模板对应的成功响应次数和失败响应次数上报给所述网关云服务器;当用户向外网客户端请求资源时,利用存储的来源报文模板构造来源交换报文,并向所述用户发送所述来源交换报文;从所述用户返回的来源交换报文的应答报文中,提取每个来源客户端的IP和端口号建立P2P客户端列表;当用户与来源客户端建立连接时,获得包含未知数据流量的首报文数据包,并提取来源客户端信息,所述未知数据流量为除已知类型数据流量和明文对等网络P2P流量以外的数据流量;判断所述来源客户端信息是否存在于预先建立的P2P客户端列表中;在判断结果为是时,确定所述未知数据流量为P2P流量;在判断结果为否时,确定所述未知流量为非P2P流量;所述网关云服务器,用于根据各网关设备上报的各来源交换模板对应的成功响应次数确定来源交换报文模板的优先级,以及根据各来源交换模板对应的失败响应次数确定各来源交换模板的有效性,并将各来源交换报文模板的优先级和有效性同步给所述网关设备。本发明实施例提供的P2P流量识别方法、装置、网关设备和系统,在用户与来源客户端建立连接之前,预先建立P2P客户端列表,当用户与来源客户端建立连接时,提取包含未知流量的首报文数据包中的来源客户端信息,并判断该来源客户端信息是否在预先建立的P2P客户端列表中,如果在,则将该首报文数据包包含的未知流量确定为P2P流量,否则, 将该首报文数据包包含的未知流量确定为非P2P流量,这样,实现了在用户与来源客户端建立连接时,对P2P流量进行准确识别。本发明的其它特征和优点将在随后的说明书中阐述,并且,部分地从说明书中变得显而易见,或者通过实施本发明而了解。本发明的目的和其他优点可通过在所写的说明书、权利要求书、以及附图中所特别指出的结构来实现和获得。


图1为本发明实施例中,P2P流量识别方法的实施流程示意图;图2为本发明实施例中,建立P2P客户端列表的实施流程示意图;图3为本发明实施例中,P2P流量识别系统的结构示意图;图4为本发明实施例中,对P2P客户端列表进行更新的实施流程示意图;图5为本发明实施例中,用户A下载P2P资源的实施流程示意图;图6为本发明实施例中,P2P流量识别装置的结构示意图。
具体实施例方式为了达到在用户与来源客户端建立连接时对P2P流量进行准确地识别,本发明实施例提供一种P2P流量识别方法、装置、网关设备和系统。内网用户从P2P客户端下载资源可以包括以下两个步骤步骤一、向外网客户端(可以为P2P客户端或者P2P服务器)请求资源,即查询那些外网客户端能够提供该资源,为了便于描述,本发明实施例中将能够提供资源的外网客户端称为来源客户端;步骤二,与来源客户端(可以为多个)建立连接,以下载所需资源。本发明实施例中,即是通过在步骤一中获取内网用户与外网客户端之间的交互数据包,并对获取到的交互数据包进行分析,根据分析结果建立内网用户可能发起连接的P2P 客户端列表,从而对该内网用户可能发起的P2P数据下载连接进行预期,当内网用户在步骤二中与来源客户端建立连接时,获得内网用户与该来源客户端之间的首报文数据包并进行分析,从而准确识别密文P2P流量,进而对P2P流量进行有效管理,满足多链路情况下的应用策略路由。与利用主动探测识别P2P流量的方法相比,该方法是针对有限的内网用户发起连接,因此流量较小,不消耗出口带宽。以下结合说明书附图对本发明的优选实施例进行说明,应当理解,此处所描述的优选实施例仅用于说明和解释本发明,并不用于限定本发明,并且在不冲突的情况下,本发明中的实施例及实施例中的特征可以相互组合。如图1所示,为本发明实施例提供的P2P流量识别方法的实施流程示意图,包括以下步骤S101、在用户与来源客户端建立连接时,获得包含未知数据流量的首报文数据包, 并提取该首报文数据包中的来源客户端信息;其中,未知数据流量为除已知类型数据流量(非P2P流量)和明文P2P流量以外的数据流量;S102、判断该来源客户端信息是否存在于预先建立的P2P客户端列表中,如果是, 执行步骤S103,如果否,执行步骤S104 ;S103、确定未知流量为P2P流量;S104、确定未知流量为非P2P流量。其中,步骤SlOl中,可以按照如下步骤提取首报文数据包中的来源客户端信息步骤一、确定该首报文数据包的传输方向;其中,数据包的传输方向包括上行方向和下行方向,其中,上行方向为内网客户端发送给来源客户端的数据包,下行方向为来源客户端发送给内网客户端的数据包。步骤二、当数据包的传输方向为上行方向时,分别提取该首报文数据包中的目的 IP和目的端口号作为来源客户端信息;当该首报文数据包的传输方向为下行方向时,分别提取该首报文数据包中的源IP和源端口号作为来源客户端信息。具体的,在获取到首报文数据包后,可以提取该首报文数据包的五元组信息,五元组信息包括源IP、目的IP、源端口号、目的端口号和传输层协议号,其中,传输层协议号用于标识该数据包为采用TCP协议传输的数据包还是采用UDP协议传输的数据包。具体实施中,可以按照如下过程确定获得的数据包中是否包含未知数据流量初级过滤设备从网络转发设备获取用户与外网客户端之间的数据包。其中,初级过滤设备可以作为网络转发设备的一个功能模块,也可以是一个独立设备挂接或串联在网络转发设备上。网络转发设备通常是出口网关或路由器设备,也可以是三层交换机、二层交换机等具备数据包转发功能的设备;初级过滤设备对数据包进行初级过滤,具体是要滤除两类数据包 一类是因传输干扰问题而发生错误的数据包,如校验和错误的数据包、小于64字节的数据包等;另一类是传输层以下的数据包,由于P2P应用的数据包是应用层的数据包,因此传输层以下的数据包不可能是P2P应用的数据包。通过初级过滤处理后,再对数据包进行深度数据包检测,分离出非P2P流量和明文P2P流量以及未知流量。对于未知流量需要进一步判断是否为加密P2P流量,对于明文P2P流量,需要对其进一步进行分析,并根据分析结果建立P2P客户端列表。具体实施时,对于建立P2P客户端列表的方式不进行限定,例如,可以通过以下方式建立P2P客户端列表(1)直接向P2P服务器请求;( 通过分布式哈希表, 如电驴的Kad网络和BT的分布式哈希表(DHT,Distributed Hash Table)网络获取。较佳地,如图2所示,还可以按照如下步骤建立P2P客户端列表S201、当用户向外网客户端请求资源时,获取包含明文P2P流量的交互数据包,并确定该明文P2P流量对应的P2P应用类型;在本步骤中,可以以五元组标识的流为单元,对于同一五元组标识的流,只处理每条流的第一个数据包,这样,可以提高处理效率。由于不同的P2P应用有其对应的特征串, 在获取到交互数据包之后,对交互数据包进行深度数据包检测,以提取该交互数据包中包含的明文P2P流量对应的P2P应用的特征串,根据提取到的P2P应用的特征串能够确定该明文P2P流量对应的P2P应用类型。S202、根据确定出的P2P应用类型解析数据包,提取该用户所请求资源的资源标识;其中,常见的P2P应用类型包括电驴、迅雷和比特精灵(BT)等,不同的P2P应用类型对应的传输层协议号不同,根据传输层协议号能够确定P2P应用类型,进而能够对数据包进行解析,在对数据包进行解析之后,能够获得用户的相关信息,包括用户标识(IP)、TCP 监听端口和UDP监听端口及该用户所请求的资源的资源标识。S203、从预先存储的报文模板库中,选择该P2P应用类型对应的来源交换报文模板;S204、利用该来源交换报文模板和资源标识构造来源交换报文,并向该用户发送所述来源交换报文;具体的,可以模拟P2P客户端向该用户发起连接,并向该用户发送构造的来源交换报文; S205、从该用户返回的来源交换报文的应答报文中,提取每个来源客户端的IP和端口号建立P2P客户端列表。具体的,解析用户返回的应答报文,获取该用户可能发起连接的来源客户端列表, 并提取每个来源客户端的IP和端口号信息,并根据提取到的来源客户端的IP和端口号信息建立P2P客户端列表。其中,步骤S203中,可以按照以下步骤选择来源交换报文模板步骤一、针对该P2P应用类型对应的每一个来源交换报文模板,统计利用该来源交换报模板和资源标识构造的来源交换报文被用户成功响应次数;步骤二、选择成功响应次数最多的来源交换报文模板作为该P2P应用类型对应的来源交换报文模板。为了保证报文模板库中存储的来源交换报文模板能够保持长期有效,本发明实施还提供一种更新机制,用于及时发现并更新失效的来源交换报文模板。如图3所示,为本发明实施例中,P2P流量识别系统的结构示意图,包括网关云服务器301,至少一个网关设备302,其中网关设备302,用于存储来源交换报文模板,并针对每一个来源交换报文模板,分别统计利用该来源交换模板构造的来源交换报文被用户成功响应次数和失败响应次数,将该来源交换模板对应的成功响应次数和失败响应次数上报给网关云服务器301 ;当用户向外网客户端请求资源时,利用存储的来源报文模板构造来源交换报文,向该用户发送构造的来源交换报文;从用户返回的来源交换报文的应答报文中,提取每个来源客户端的IP和端口号建立P2P客户端列表;当用户与来源客户端建立连接时,获得包含未知数据流量的首报文数据包,并提取来源客户端信息,其中,未知数据流量为除已知类型数据流量和明文对等网络P2P流量以外的数据流量;判断该来源客户端信息是否存在于预先建立的P2P客户端列表中;在判断结果为是时,确定未知数据流量为P2P流量;在判断结果为否时,确定未知流量为非P2P流量;网关云服务器301,用于根据各网关设备上报的各来源交换模板对应的成功响应次数确定来源交换报文模板的优先级,以及根据各来源交换模板对应的失败响应次数确定各来源交换模板的有效性,并将各来源交换报文模板的优先级和有效性同步给所述网关设备。具体的,网关设备302能够通过解析和跟踪内网用户与外网客户端之间的来源交换报文交换过程,构造或者更新来源交换报文模板并存储,并统计利用该来源交换报文模板构造的来源交换报文被内网用户成功响应次数和失败响应次数,然后定期反馈给网关云服务器301 ;网关云服务器301,用于接收网关设备302的反馈信息,并定期报文模板库进行整理,根据成功响应次数调整各个来源交换报文模板的优先级,并根据各来源交换报文模板的失败响应次数确定各来源交换报文模板的有效性,及时发现失效的来源交换报文模板和最新生效的来源交换报文模板,在整理完成后,网关云服务器301可以向网关设备302发布最新的来源交换报文模板。其中,网关设备302可以定期向云服务器301反馈自身的报文模板库信息,也可以定期向网关云服务器301请求报文模板库信息,用于本地报文模板库的更新。由于网关设备302将自身的获得的各来源交换报文模板的相关信息上报给网关云服务器301,使得网关云服务器301能够根据相关信息确定各来源报文交换模板的优先级,并及时发现失效的来源交换报文模板,为网关设备301准确建立P2P客户端列表奠定基础,进一步保证了 P2P流量识别的准确性和可靠性。具体实施时,对于内网用户与外网客户端之间的数据包进行抓包分析,利用深度检测方法确定该数据包的P2P应用类型,并根据P2P应用类型解析该数据包,进而构造初始的报文模板库,并设置报文模板库中的每个来源交换报文模板的缺省优先级,初始化每个来源交换报文模板的成功响应次数和失败响应次数(初始化时可以均设置为0),并分别存储于网关设备302和网关云服务器301上;当在步骤205中,利用来源交换报文模板和资源标识构造来源交换报文,并向用户发送构造的来源交换报文之后,确定在预设时间内能否接收到用户返回的应答报文,如果能,则将该来源交换报文模板对应的成功响应次数加1, 否则,将该来源交换报文模板对应的成失败响应次数加1,根据成功响应次数由多至少确定来源交换报文模板的优先级,成功响应次数越多,优先级越高。具体实施中,当用户与P2P客户端建立连接,开始下载资源之后,将定期向外网客户端请求资源,即查找新的可能提供该资源的来源客户端,而该来源客户端可能不存在于已经建立的P2P客户端列表中,从而,需要对已经建立的P2P客户端列表进行更新。基于此, 如图4所示,本发明实施例提供的P2P流量识别方法还可以包括对P2P客户端列表进行更新的步骤S401、分别建立该用户对应的用户标识与P2P应用类型之间的关联关系和该用户对应的用户标识与资源标识之间的对应关系;具体的,建立P2P客户端列表的过程中,在解析用户与外网客户端之间包含明文 P2P流量的交互数据包时,能够获得相关的用户信息,包括用户标识(可以为IP)、TCP监听端口、UDP监听端口、P2P应用类型以及用户请求资源的资源标识等,根据上述信息,便能够分别建立用户标识与P2P应用类型之间的关联关系和该用户对应的用户标识与资源标识之间的对应关系。S402、在用户下载资源过程中,再次向外网客户端请求资源时,从预先存储的报文模板库中,选择该用户标识对应的P2P应用类型对应的来源交换报文模板;S403、利用该来源交换报文模板和该用户标识对应的资源标识构造来源交换报文,并向该用户发送所述来源交换报文;S404、根据用户返回的来源交换报文的应答报文中包含的来源客户端的IP和端口号更新P2P客户端列表。具体的,对于该用户来说,由于在之前建立P2P客户端列表的过程中已经能够确定该用户需要下载资源的资源标识和该用户对应的P2P应用类型,因此,当用户再次向外网客户端请求资源时,无需对用户与外网客户端之间的交互数据包进行深度数据包检测确定P2P应用类型并解析该交互数据包,通过保存用户标识与资源标识及用户标识与P2P应用类型的对应关系便能够准确构造来源交换报文,获取用户可能发起连接的P2P客户端列表。为了便于理解本发明,以下以用户A下载P2P资源为例,对本发明实施例的实施过程进行说明。本发明实施例中,假设用户A对应的P2P应用类型为电驴,即用户A通过电驴软件下载ID为1234567890AB⑶EF的资源文件,用户A的用户标识为10. 1. 1. 1。如图5所示,为用户A下载P2P资源的实施步骤 S501、获取用户A与外网客户端之间包含明文P2P流量的交互数据包,并确定P2P 应用类型;具体的,当用户A向外网客户端请求资源时,获取包含明文P2P流量的交互数据包,具体的,对于明文电驴流量来说,其通常包含E3、E4、C5、D4和E5等电驴协议号等电驴应用的特征串,通过协议号便能够识别明文P2P流量对应的P2P类型。S502、根据确定出的的P2P应用类型解析获取到的交互数据包,提取该用户所请求资源的资源标识;具体的,从解析后的数据包中提取用户A的用户信息,包括用户标识(IP)、UDP监听端口 7550和TCP监听端口 7551。同时,由于电驴用户通常定期使用明文UDP报文向电驴服务器查询所需资源文件的来源客户端,其查询报文格式如下E3 9A 12 34 56 78 90 AB⑶EF,其中E3是电驴协议号,12 34 56 7890 AB⑶EF即为用户A请求的资源的资源标识,从而从解析后的查询报文中能够提取到用户A所请求资源的资源标识。当然,从用户 A与外网客户端之间的其它交互报文中,也能够提取到用户A所请求资源的资源标识,这里不做限定。S503、从预先存储的报文模板库中,选择电驴应用对应的来源交换报文模板;S504、利用提取到的资源标识和选取的来源交换报文模板构造来源交换报文;S505、模拟电驴客户端向用户A发起连接,将构造的来源交换报文发送给用户A ;具体的,向用户A的TCP端口 7551发起连接,与用户A进行正常的电驴Hello报文(E301)和安全认证报文(C581)交互,并将构造的来源交换报文发送给用户A。S506、用户A返回自身关于该资源的完整来源客户端列表;提取该来源客户端列表中的每个来源客户端的IP和端口号建立P2P客户端列表。 假设该来源客户端列表中包含客户端B,其IP为20. 1. 1. 1,TCP端口号为4242。S507、用户A向客户端B发起加密TCP连接,请求下载资源标识为 1234567890ABCDEF 数据;S508、获取该TCP连接的首报文数据包,并提取该首报文数据包中的来源客户端 fn息;其中,该来源客户端信息即为客户端B的IP和TCP端口号。S509、判断该来源客户端信息是否在建立的P2P客户端列表中,如果是,执行步骤 S510,如果否,执行步骤S511 ;S510、确定该首报文数据包中包含P2P流量;由于外网P2P客户端B的IP和TCP端口号存在与建立的P2P客户端列表中,因此, 能够确定该首报文数据包中包含P2P流量。S511、确定该首报文数据包中不包含P2P流量。具体实施时,用户A在下载该资源的过程中,将定期地向外网客户端继续请求资源,即查找新的可以提供该资源的来源客户端,当查找到到新的能够提供该资源的来源客户端时,用户A将与该来源客户端建立连接,下载资源,但是,该新的来源客户端不在已建立的P2P客户端列表中,因此,为了保证P2P流量识别的准确性,还可以包括如下步骤步骤一、分别建立用户A与电驴应用之间的关联关系和用户A与其下载的资源 12;34567890ABCDEF之间的对应关系;步骤二、用户A向来源客户端列表中的客户端下载资源1234567890AB⑶EF的过程中,向外网客户端请求新的能够提供资源1234567890AB⑶EF的来源客户端;步骤三、从报文模板库中选择电驴应用对应的来源交换报文模板;步骤四、利用该来源交换报文模板和资源标识1234567890AB⑶EF构造来源交换报文;步骤五、模拟电驴客户端向用户A发起连接,并将构造的来源交换报文发送给用户A;步骤六、用户A返回自身关于该资源的完整来源客户端列表;
步骤七、根据用户A返回的新的来源客户端列表更新更新已建立的P2P客户端列表。具体的,提取新的来源客户端列表中的每个来源客户端的IP和端口号,添加至已建立的P2P客户端列表中。假设更新后的P2P客户端列表包含客户端C,当用户A向客户端C发起TCP连接,请求从客户端C下载资源1234567890AB⑶EF时,获取该TCP连接的首报文数据包,并提取其中的来源客户端信息,由于客户端C存在于更新后的P2P客户端列表中,因此,便能够准确地识别出首报文数据包中包含P2P流量。在首报文数据包中的P2P流量被正确识别出之后,网关设备能够对P2P进行有效的流量控制,并且能够根据P2P应用类型选择不同的出口链路,达到利用多条线路、保障关键应用正常运行的目的。本发明实施例提供的方法可以应用于出口网关或者路由器等网络转发设备上,用于利用首报文识别所有支持来源交换特性的P2P应用协议。基于同一发明构思,本发明实施例中还提供一种P2P流量识别装置,由于该装置解决问题的原理与上述P2P流量识别方法相似,因此该装置的实施可以参见上述P2P流量识别方法的实施,重复之处不再赘述。如图6所示,为本发明实施例提供的P2P流量识别装置的结构示意图,包括密文处理单元601,用于在用户与来源客户端建立连接时,获得包含未知数据流量的首报文数据包,并提取该首报文数据包中的来源客户端信息,其中,未知数据流量为除已知类型数据流量和明文P2P流量以外的数据流量;判断单元602,用于判断来源客户端信息是否存在于预先建立的对等网络P2P客户端列表中;确定单元603,用于在判断单元602的判断结果为是时,确定未知数据流量为P2P 流量;在判断单元602的判断结果为否时,确定未知流量为非P2P流量。具体实施中,密文处理单元601,可以包括第一确定子单元,用于确定首报文数据包的传输方向;第一提取子单元,用于当首报文数据包的传输方向为上行方向时,分别提取首报文数据包中的目的IP和目的端口号作为来源客户端信息;第二提取子单元,用于当首报文数据包的传输方向为下行方向时,分别提取首报文数据包中的源IP和源端口号作为来源客户端信息。具体实施时,P2P流量识别装置,还可以包括明文处理单元,用于建立所述P2P客户端列表。较佳地,明文处理单元,可以包括第二确定子单元,用于当用户向外网客户端请求资源时,获取包含明文P2P流量的交互数据包,并确定该明文P2P流量对应的P2P应用类型;解析子单元,用于根据第二确定子单元确定出的P2P应用类型,解析该交互数据包,提取用户所请求资源的资源标识;选择子单元,用于从预先存储的报文模板库中,选择该P2P应用类型对应的来源交换报文模板;构造子单元,用于利用该来源交换报文模板和该资源标识构造来源交换报文,并向该用户发送来源交换报文;P2P客户端列表建立子单元,用于从用户返回的来源交换报文的应答报文中,提取每个P2P来源客户端的IP和端口号建立P2P客户端列表。其中,选择子单元,可以包括统计模块,用于针对该P2P应用类型对应的每一个来源交换报文模板,统计利用该来源交换报模板和资源标识构造的来源交换报文被用户成功响应次数;选择模块,用于选择成功响应次数最多的来源交换报文模板作为P2P应用类型对应的来源交换报文模板。具体实施中,P2P流量识别装置,还可以包括关系建立单元,用于分别建立该用户对应的用户标识与该P2P应用类型之间的对应关系和该用户对应的用户标识与该资源标识之间的对应关系;选择单元,用于在用户下载资源过程中,再次向外网客户端请求资源时,从预先存储的报文模板库中,选择该用户标识对应的P2P应用类型对应的来源交换报文模板;构造单元,用于利用该来源交换报文模板和该用户标识对应的资源标识构造来源交换报文,并向该用户发送所述来源交换报文;更新单元,用于根据用户返回的来源交换报文的应答报文中包含的P2P来源客户端的IP和端口号更新P2P客户端列表。为了描述的方便,以上P2P流量识别装置的各部分按照功能划分为各模块(或单元)分别描述。当然,在实施本发明时可以把各模块(或单元)的功能在同一个或多个软件或硬件中实现。在本发明实施例中,P2P流量识别装置装置一般设置在网关设备中,由网关设备实现P2P流量识别。需要说明的是,将上述P2P流量识别装置设置在网关设备中只是一种较佳实施方式,具体实施中,可以根据实际的需要将上述P2P流量识别装置设置在其它设备或者新增设备中。本领域内的技术人员应明白,本发明的实施例可提供为方法、系统、或计算机程序产品。因此,本发明可采用完全硬件实施例、完全软件实施例、或结合软件和硬件方面的实施例的形式。而且,本发明可采用在一个或多个其中包含有计算机可用程序代码的计算机可用存储介质(包括但不限于磁盘存储器、CD-ROM、光学存储器等)上实施的计算机程序产品的形式。本发明是参照根据本发明实施例的方法、设备(系统)、和计算机程序产品的流程图和/或方框图来描述的。应理解可由计算机程序指令实现流程图和/或方框图中的每一流程和/或方框、以及流程图和/或方框图中的流程和/或方框的结合。可提供这些计算机程序指令到通用计算机、专用计算机、嵌入式处理机或其他可编程数据处理设备的处理器以产生一个机器,使得通过计算机或其他可编程数据处理设备的处理器执行的指令产生用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的装置。这些计算机程序指令也可存储在能引导计算机或其他可编程数据处理设备以特定方式工作的计算机可读存储器中,使得存储在该计算机可读存储器中的指令产生包括指令装置的制造品,该指令装置实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能。
1
这些计算机程序指令也可装载到计算机或其他可编程数据处理设备上,使得在计算机或其他可编程设备上执行一系列操作步骤以产生计算机实现的处理,从而在计算机或其他可编程设备上执行的指令提供用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的步骤。尽管已描述了本发明的优选实施例,但本领域内的技术人员一旦得知了基本创造性概念,则可对这些实施例做出另外的变更和修改。所以,所附权利要求意欲解释为包括优选实施例以及落入本发明范围的所有变更和修改。本发明实施例提供的P2P流量识别方法、装置、网关设备和系统,在用户与来源客户端建立连接之前,预先建立P2P客户端列表,当用户与来源客户端建立连接时,提取包含未知流量的首报文数据包中的来源客户端信息,并判断该来源客户端信息是否在预先建立的P2P客户端列表中,如果在,则将该首报文数据包包含的未知流量确定为P2P流量,否则, 将该首报文数据包包含的未知流量确定为非P2P流量,这样,实现了在用户与来源客户端建立连接时,对P2P流量进行准确识别。显然,本领域的技术人员可以对本发明进行各种改动和变型而不脱离本发明的精神和范围。这样,倘若本发明的这些修改和变型属于本发明权利要求及其等同技术的范围之内,则本发明也意图包含这些改动和变型在内。
1权利要求
1.一种P2P流量识别方法,其特征在于,包括在用户与来源客户端建立连接时,获得包含未知数据流量的首报文数据包,并提取所述首报文数据包中的来源客户端信息,所述未知数据流量为除已知类型数据流量和明文对等网络P2P流量以外的数据流量;判断所述来源客户端信息是否存在于预先建立的P2P客户端列表中; 在判断结果为是时,确定所述未知数据流量为P2P流量;在判断结果为否时,确定所述未知流量为非P2P流量。
2.如权利要求1所述的方法,其特征在于,提取所述首报文数据包中的来源客户端信息,具体包括确定所述首报文数据包的传输方向;当所述首报文数据包的传输方向为上行方向时,分别提取所述首报文数据包中的目的 IP和目的端口号作为来源客户端信息;当所述首报文数据包的传输方向为下行方向时,分别提取所述首报文数据包中的源IP 和源端口号作为来源客户端信息。
3.如权利要求1所述的方法,其特征在于,按照如下过程建立P2P客户端列表当所述用户向外网客户端请求资源时,获取包含明文P2P流量的交互数据包,并确定所述明文P2P流量对应的P2P应用类型;根据确定出的P2P类型解析所述交互数据包,提取所述用户所请求资源的资源标识; 从预先存储的报文模板库中,选择所述P2P应用类型对应的来源交换报文模板; 利用所述来源交换报文模板和所述资源标识构造来源交换报文,并向所述用户发送所述来源交换报文;从所述用户返回的来源交换报文的应答报文中,提取每个来源客户端的IP和端口号建立P2P客户端列表。
4.如权利要求3所述的方法,其特征在于,选择所述P2P应用类型对应的来源交换报文模板,具体包括针对该P2P应用类型对应的每一个来源交换报文模板,统计利用该来源交换报模板和资源标识构造的来源交换报文被用户成功响应次数;选择成功响应次数最多的来源交换报文模板作为所述P2P应用类型对应的来源交换报文模板。
5.如权利要求3或4所述的方法,其特征在于,还包括分别建立所述用户对应的用户标识与所述P2P应用类型之间的关联关系和所述用户对应的用户标识与所述资源标识之间的对应关系;在所述用户下载资源过程中,再次向外网客户端请求资源时,从预先存储的报文模板库中,选择用户标识对应的P2P应用类型对应的来源交换报文模板;利用所述来源交换报文模板和用户标识对应的资源标识构造来源交换报文,并向所述用户发送所述来源交换报文;根据所述用户返回的来源交换报文的应答报文中包含的P2P来源客户端的IP和端口号更新所述P2P客户端列表。
6.一种P2P流量识别装置,其特征在于,包括密文处理单元,用于在用户与来源客户端建立连接时,获得包含未知数据流量的首报文数据包,并提取所述首报文数据包中的来源客户端信息,所述未知数据流量为除已知类型数据流量和明文对等网络P2P流量以外的数据流量;判断单元,用于判断所述来源客户端信息是否存在于预先建立的P2P客户端列表中; 确定单元,用于在所述判断单元的判断结果为是时,确定所述未知数据流量为P2P流量;在判断单元的判断结果为否时,确定所述未知流量为非P2P流量。
7.如权利要求6所述的装置,其特征在于,所述密文处理单元,包括 第一确定子单元,用于确定所述首报文数据包的传输方向;第一提取子单元,用于当所述首报文数据包的传输方向为上行方向时,分别提取所述首报文数据包中的目的IP和目的端口号作为来源客户端信息;第二提取子单元,用于当所述首报文数据包的传输方向为下行方向时,分别提取所述首报文数据包中的源IP和源端口号作为来源客户端信息。
8.如权利要求6所述的装置,其特征在于,还包括 明文处理单元,用于建立所述P2P客户端列表。
9.如权利要求8所述的装置,其特征在于,所述明文处理单元,包括第二确定子单元,用于当所述用户向外网客户端请求资源时,获取包含明文P2P流量的交互数据包,并确定所述明文P2P流量对应的P2P应用类型;解析子单元,用于根据第二确定子单元确定出的P2P应用类型,解析所述交互数据包, 提取所述用户所请求资源的资源标识;选择子单元,用于从预先存储的报文模板库中,选择所述P2P应用类型对应的来源交换报文模板;构造子单元,用于利用所述来源交换报文模板和所述资源标识构造来源交换报文,并向所述用户发送所述来源交换报文;P2P客户端列表建立子单元,用于从所述用户返回的来源交换报文的应答报文中,提取每个来源客户端的IP和端口号建立P2P客户端列表。
10.如权利要求9所述的装置,其特征在于,选择子单元,包括统计模块,用于针对该P2P应用类型对应的每一个来源交换报文模板,统计利用该来源交换报模板和资源标识构造的来源交换报文被用户成功响应次数;选择模块,用于选择成功响应次数最多的来源交换报文模板作为所述P2P应用类型对应的来源交换报文模板。
11.如权利要求9或10所述的装置,其特征在于,还包括关系建立单元,用于分别建立所述用户对应的用户标识与所述P2P应用类型之间的对应关系和所述用户对应的用户标识与所述资源标识之间的对应关系;选择单元,用于在所述用户下载资源过程中,再次向外网客户端请求资源时,从预先存储的报文模板库中,选择用户标识对应的P2P应用类型对应的来源交换报文模板;构造单元,用于利用所述来源交换报文模板和用户标识对应的资源标识构造来源交换报文,并向所述用户发送所述来源交换报文;更新单元,用于根据所述用户返回的来源交换报文的应答报文中包含的P2P来源客户端的IP和端口号更新所述P2P客户端列表。
12.一种网关设备,其特征在于,包括权利要求6 11任一权利要求所述的装置。
13.—种P2P流量识别系统,其特征在于,包括网关云服务器和至少一个网关设备,其中所述网关设备,用于存储来源交换报文模板,并针对每一个来源交换报文模板,分别统计利用该来源交换报文模板构造的来源交换报文被用户成功响应次数和失败响应次数,将该来源交换模板对应的成功响应次数和失败响应次数上报给所述网关云服务器;当用户向外网客户端请求资源时,利用存储的来源交换报文模板构造来源交换报文,向所述用户发送所述来源交换报文;从所述用户返回的来源交换报文的应答报文中,提取每个来源客户端的IP和端口号建立P2P客户端列表;当用户与来源客户端建立连接时,获得包含未知数据流量的首报文数据包,并提取来源客户端信息,所述未知数据流量为除已知类型数据流量和明文对等网络P2P流量以外的数据流量;判断所述来源客户端信息是否存在于预先建立的P2P客户端列表中;在判断结果为是时,确定所述未知数据流量为P2P流量;在判断结果为否时,确定所述未知流量为非P2P流量;所述网关云服务器,用于根据各网关设备上报的各来源交换报文模板对应的成功响应次数确定来源交换报文模板的优先级,以及根据各来源交换模板对应的失败响应次数确定各来源交换模板的有效性,并将各来源交换报文模板的优先级和有效性同步给所述网关设备。
14.如权利要求13所述的系统,其特征在于,所述网关设备,具体用于获取用户与来源客户端之间的来源交换报文,根据所述来源交换报文构造或者更新来源交换报文模板并存储。
全文摘要
本发明公开了一种P2P流量识别方法、装置、网关设备和系统,用以在连接建立时对P2P流量进行准确识别。其中,所述P2P流量识别方法,包括在用户与来源客户端建立连接时,获得包含未知数据流量的首报文数据包,并提取所述首报文数据包中的来源客户端信息,所述未知数据流量为除已知类型数据流量和明文P2P流量以外的数据流量;判断所述来源客户端信息是否存在于预先建立的P2P客户端列表中;在判断结果为是时,确定所述未知数据流量为P2P流量;在判断结果为否时,确定所述未知流量为非P2P流量。
文档编号H04L12/26GK102404396SQ20111036016
公开日2012年4月4日 申请日期2011年11月14日 优先权日2011年11月14日
发明者潘云登, 陈朝晖 申请人:北京星网锐捷网络技术有限公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1