摘要:P2P网络是一个分布式网络模型,也叫对等网络,网络中的节点都有相同或相近的责任,其特点就是降低以服务器为核心的地位,充分整合分布在终端主机上的资源,如CPU资源、网络资源和存储资源等。跟传统的C/S模式有着巨大的区别,也就是说,在对等网络中,各个节点的地位是平等的,可以同时作为服务端又可以作为客户端。
关键词: P2P;结构化; 流量识别
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流量时要能同时进行关联匹配,这样才能减少漏判率。
小编推荐优秀电子期刊 《电力技术》期刊目录
《电力技术》杂志是由国家电力监管委员会主管,中国电力企业联合会科技开发服务中心主办,国内外公开发行的综合性专业刊物,也是中国电力企业联合会技术会刊。
转载请注明来自:http://www.lunwencheng.com/lunwen/dzi/7668.html