APP下载

P2P网络体系及检测技术研究

2014-12-05谭红春

电脑知识与技术 2014年31期
关键词:结构化

谭红春

摘要:P2P网络是一个分布式网络模型,也叫对等网络,网络中的节点都有相同或相近的责任,其特点就是降低以服务器为核心的地位,充分整合分布在终端主机上的资源,如CPU资源、网络资源和存储资源等。跟传统的C/S模式有着巨大的区别,也就是说,在对等网络中,各个节点的地位是平等的,可以同时作为服务端又可以作为客户端。

关键词: P2P;结构化; 流量识别

中图分类号:TP393 文献标识码:A 文章编号:1009-3044(2014)31-7289-04

Abstract:Peer-to-peer is a distributed network, also called point-to-point, the nodes in the etwork have the same or similar duty, Its characteristic is reduced to the servers position, As far as possible to use the terminal host resources, such as CPU resources, networks and storage resources. It has a huge difference with the traditional C/S model.In a peer-to-peer network, all nodes are equal, it can be used as server and also can be used as a client.

Key words: peer-to-peer;structured;traffic identification

P2P(Peer-to-Peer)并非一种全新的技术,互联网最基本的协议 TCP/IP 并没有客户机和服务器的概念,所有的设备都是通讯平等的一端。由于受早期计算机性能、资源等因素的限制,大多数连接到互联网上的普通用户并没有能力提供网络服务,从而逐步形成了以少数服务器为中心的客户机/服务器(Client/Server)模式。但是,随着互联网跟人们生活的联系日益紧密和深入,人们需要更直接、更广泛的信息交流,P2P技术充分利用互联网广泛分布的资源,扩大了资源利用范围,改变共享方式,提高了资源共享效率,比C/S模式更具稳定性和健壮性,去中心化,使其应用日益丰富,流量迅速增长。

1 P2P基本概述

对等网络技术起源于最早的网络互联时代,当时的计算机可以不通过服务器而能直接互相访问,例如上世纪70年代的USENET和FidoNet网络就是基于资源共享的。随着计算机网络化进程的不断前进,互联网主要以客户机/服务器(C/S)为主体模式,在此应用中必须在网络中拥有服务器,信息则是通过服务器与客户端进行交流。服务器作为资源的拥有者,对各个客户端提供资源下载,这就是传统意义上的C/S模式。但是此种模式有一个共同的弊端:服务器端的资源有限,伴随着连接用户数的激增,服务器的性能和服务器的带宽将经受严重考验,这在一定程度上降低了服务质量,从而制约了客户数的增长。

对等网络的出现打破了传统C/S模式的概念,它允许各终端与另一个终端直接进行通信,上传或下载资源,并且随着加入P2P网络的节点的增多,上传或下载资源的速度就越快,这就远远增强了信息传输的速度和效率。所以,P2P网络是一种不通过中继设备直接交换资源和服务的技术,它允许网络用户直接获取对方的文件。所有的用户都能访问到别人的电脑资源,并进行文件的共享,而不需要链接到服务器上再进行浏览与下载。

2 P2P体系结构

P2P体系结构大致归纳为两种,一种是非结构化的P2P,另一种是结构化的P2P [1]。

结构化P2P采用纯分布式的消息传递机制和根据关键词查找的定位服务。分布式哈希表(DHT) [2]技术是如今主要采纳的技术,此类系统代表的有加州大学伯克利分校的CAN项目和TaPestry项目,麻省理工学院的Chord项目以及微软研究院的Pastry[3]项目等。

如今大多数P2P系统都是采用的非结构化的P2P网络,这种非结构化的P2P网络总共经历了四代的发展,现在就此四代的历程做以简述:

第三代混合式的结构。如图3所示,混合式P2P模型综合了以上两种结构的特点,在此模式中,依然去除集中服务器,只建立超级节点,也叫搜索节点,其他节点叫普通节点。搜索节点用来处理普通节点的搜索请求,拥有强大的处理器、硬盘空间、连接速率,和普通节点相互协作,共同管理整个网络,它们之间组成了一个自治的簇。所有的簇就构成了一个混合式的结构。每个簇内结构与集中服务器结构类似,如果普通节点要进行资源搜索,首先是在本地所在的簇内查询,仅当搜索结果不完全时,才在其他搜索节点之间采取有限的广播,得到查询的目的后,就可以同时对拥有资源的多个节点进行获取。这就要判断资源是否为相同资源,是的话就要对资源进行分片处理。

总的来说,采用这样的模式,普通节点受控于搜索节点,可以抑制病毒和恶意攻击等行为,并且可以减少网络堵塞,检索耗时等负面影响。

第四代P2P(发展中的P2P技术)。在对等网络经历了上面列举的三代P2P结构以后,在此基础上,P2P网络又出现了很多新的技术和措施,具体的有以下几个方面:

1)随机端口技术。以前的大部分P2P应用都使用固定的端口,随着以端口为检测手段的软件出现,P2P软件协议设计者开始采取动态选择随机端口进行传输数据,以达到防检测的目的。通常这些动态端口都选择在1024~4000之间,有可能一些P2P软件用80端口来躲避检测。这为检测软件带来非常大的难度,常规检测手段已经不能满足需求。

2)加密技术。同样是为了躲避检测,一些P2P软件开始对有效荷载部分进行加密传输,此技术另外一个好处就是起到保护使用者的隐私问题。目前,各大P2P软件运营商都非常重视此项技术。

3)双向下载。早期的对等网络需要先下载完成后才能将资源共享给其他用户,而现在一些P2P软件支持对文件或文件的一部分,进行多路并行下载和上载。文件的分发速度明显提高。

3 P2P流量检测手段

P2P流量检测是当前各研究人员重点的方向,通过历年的技术发展,P2P流量识别大致分为三类,端口识别、深度数据包识别和基于行为特征的识别方法。下面我们列出在P2P流量识别中常用到几种方法:

3.1 端口识别

我们所讲的端口是传输层里的范畴,即TCP或UDP端口。互联网数字分配机构将端口分为3种:知名端口、用户端口和动态端口。通过对端口的识别,可以区分出应用层的各种应用,其中包括使用固定端口的P2P应用,比如BT使用6881- 6889,E-Donkey使用4661和4662端口[5],表1列出了各种P2P软件使用的端口。可是随着P2P技术的发展,很多P2P技术采用非标准的端口,或者采用动态端口进行传输,达到躲避被网络管理者检测的目的。

3.3基于会话的分类

在数据流当中,每个数据包都有可能存在TCP/UDP端口,而一些高层协议的特征代码,只会出现在前几个数据报中,所以,通过会话包当中的某个数据报中找到P2P特征代码时,此会话包的其余数据报我们就认为是P2P流量,甚至存在有的P2P协议会采用几个会话包,因此检测软件在判断P2P流量时要能同时进行关联匹配,这样才能减少漏判率。

3.4 IP pair法识别

经过长期试验,我们发现,很大一部分的P2P流量都同时使用TCP和UDP协议,可是也不排除一些常规业务像IRC 、NETBIOS 、DNS及影视娱乐业务,也同时使用了上述两种协议,并且它们使用的端口是固定的,这些流量我们能根据端口匹配加以过滤,剩下的同时使用了TCP和UDP协议的业务,我们就认定为P2P流量。

3.5深层数据包检测技术(DPI)

DPI即深层数据包检测技术,它是基于应用层的“特征字”的检测方法,通过对IP 包头的解析,读取相应的荷载内容。此种方式需要维护一个payload特征库,此特征库可以建立在前人的基础上添加,也可以以人工的方式自动提取。表所示就是一些常用的特征库。根据解析出来的特征码,再加上适当的模式匹配算法,对符合的流量就可判断为P2P流量。典型的DPI技术有如下几类:

1)应用层网关识别技术。即信令流关联识别规则。在实际的流量中,不少协议业务流和控制流是分开的。其中的数据流是没有明显的特征,所有我们只能应用网关识别技术。具体的识别步骤是这样的:第一步,先识别出控制流,分别经过特殊的应用层网关对控制流协议进行分析,从分析结果中获取对应的数据流。

2)基于应用层特征字检测技术。根据每个应用对应每个协议的特点,我们分析应用层具有标识和行为交互的数据包开头部分的内容,这些特征我们定义为指纹,可提取的指纹特征为字符串,固定端口和特定的bit序列。随着检测的深入,我们可以对指纹信息进行更新改造,以适应对新P2P应用的检测。像对Bittorrent协议进行反向工程的方式分析,我们发现从握手报文开始,以后都是循环的消息流,其中都有代表消息长度的数字,进一步分析,我们可以观察到首先发送的数字19,其后是字符串”Bittorrent ProTocol”,于是这个字符串就是Bittorrent的关键词。

3)行为模式的识别技术。此种识别模式是根据节点目前的动作和未来将采取的动作,也就是根据节点已经实施的动作及行为进行判定,一般是通过协议分析无法得到结论的时候,才采取的识别技术。像垃圾邮件业务和一般邮件业务的区分,通常从内容上看都是一样的,可是当我们通过业务行为的分析,才能够区分出谁是垃圾邮件。

3.6 基于流量特征的检测技术(DFI)

为了弥补深度数据包检测在加密检测、未知的以及复杂的难以提取特征码的检测的不足,一种新的解决方案被提出,那就是深度流检测技术即DFI,同时也是为了解决DPI技术的频繁升级和无法检测等一系列难题。深度流检测技术,它是基于数据流的行为特征,依据的检测标准是不同的数据流具有不同的行为特征,即根据数据流或会话链接上呈现的不同的行为方式。

DFI检测的主要步骤分为:首先建立流量特征模型,选取具有代表性的特征;其次根据会话的包长、传输字节的大小、连接速度、包和包发送的时间差等,和建立的流量特征模式进行对比,从而达到检测的目的。根据实际情况,可以选择的特征模型也比较多,下面我们列举一些主要特征:

1)网络连接数量大。这是对等网络最明显的特征之一,通常处于P2P网络中的节点与其他节点连接数比较多,产生的流的数目也多。相对于一般的应用如Http业务,连接数大就是一个明显的区分条件。

2)流的持续时间长。P2P软件使用比较多的就是资源共享,并且这些共享资源占用的存储空间也比较大,像一些影视资源、安装软件、游戏、电子资源等,而且一般用户在下载完毕后,还继续保持与其他节点的连接,在对等网络中共享出已经下载好的资源。软件的设计原理就导致了流的持续时间长的特点。

3)上下行流量的比例大小。正常的网络应用,上下行流量都不对称,往往是上行小于下行,除了我们使用Ftp或其他上传软件,才会导致上行大于下行,可是在对等网络中,另一个明显的特征就是上下行流量是对称,基本上相等的。这也可以作为我们区分P2P应用和常规应用的标准。

4 结论

P2P应用已在互联网上已经占据大量资源,如何处理此流量带来的负面影响,已经成为亟待解决的问题。该文讨论的P2P体系和检测技术,目的都是为检测出P2P流量,而且各方法都有各自的优缺点。在具体实施过程中,不同的应用对应着不同的检测方法,因此我们需要综合运用才能带来更好的效果。

参考文献:

[1] 蒋成.混合式对等网络Kazaa模型结构及其分析研究[J].信息安全与技术,201(6):69.

[2] 熊殿华.一种结构化P2P网络中的动态协作缓存策略[J].计算机与数字工程,2010(1) :58.

[3] 龙坤,陈庶樵. P2P网络聚合流量识别技术研究[J].通信技术,2010(1):142.

[4] 梅红岩,张玉洁.非结构P2P网络受限搜索机制[J].软件学报,2013(9):2132.

[5] 李鑫,刘东林.基于统计特征的P2P流量检测方法[J].计算机工程,2010(5):114.

猜你喜欢

结构化
促进知识结构化的主题式复习初探
改进的非结构化对等网络动态搜索算法
结构化面试方法在研究生复试中的应用
左顾右盼 瞻前顾后 融会贯通——基于数学结构化的深度学习
基于图模型的通用半结构化数据检索
基于软信息的结构化转换