日期:2023-01-24 阅读量:0次 所属栏目:计算机应用
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.