P2P技术原理及利弊
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
P2P技术原理及相关利弊
引言
P2P技术是近几年来发展较快的技术,它直接将人们联系起来,让人们通过互联网直接交互。P2P使得网络上的沟通变得容易、更直接共享和交互,真正地消除中间商。人们可以直接连接到其他用户的计算机、交换文件,而不是像过去那样连接到服务器去浏览与下载。
1.P2P技术原理
P2P技术属于覆盖层网络的范畴,是相对于客户机/服务器(C/S)模式来说的一种网络信息交换方式。在C/S模式中,数据的分发采用专门的服务器,多个客户端都从此服务器获取数据。这种模式的优点是:数据的一致性容易控制,系统也容易管理。但是此种模式的缺点是:因为服务器的个数只有一个,系统容易出现单一失效点;单一服务器面对众多的客户端,由于CPU能力、内存大小、网络带宽的限制,可同时服务的客户端非常有限,可扩展性差。P2P技术正是为了解决这些问题而提出来的一种对等网络结构。在P2P网络中,每个节点既可以从其他节点得到服务,也可以向其他节点提供服务。这样,庞大的终端资源被利用起来,一举解决了C/S模式中的两个弊端。
P2P网络有3种比较流行的组织结构,被应用在不同的P2P应用中。
1.1分布式哈希表结构
分布式哈希表结构[1]是一种功能强大的工具,它的提出引起了学术界一股研究DHT的热潮。虽然DHT具有各种各样的实现方式,但是具有共同的特征,即都是一个环行拓扑结构,在这个结构里每个节点具有一个唯一的节点标识(ID),节点ID是一个128位的哈希值。每个节点都在路由表里保存了其他前驱、后继节点的ID。如图1(a)所示。通过这些路由信息,可以方便地找到其他节点。这种结构多用于文件共享和作为底层结构用于流媒体传输。
1.2树形结构
P2P网络树形结构如图1(b)所示。在这种结构中,所有的节点都被组织在一棵树中,树根只有子节点,树叶只有父节点,其他节点既有子节点也有父节点。信息的流向沿着树枝流动。最初的树形结构多用于P2P流媒体直播。
1.3网状结构
网状结构如图1(c)所示,又叫无结构。顾名思义,这种结构中,所有的节点无规则地连在一起,没有稳定的关系,没有父子关系。网状结构为P2P提供了最大的容忍性、动态适应性,在流媒体直播和点播应用中取得了极大的成功。当网络变得很大时,常常会引入超级节点的概念,超级节点可以和任何一种以上结构结合起来组成新的结构,如KaZaA。[1]
2.P2P技术特点
2.1非中心化
网络中的资源和服务分散在所有结点上,信息的传输和服务的实现都直接在结点之间进行,可以无需中间环节和服务器的介入,避免了可能的瓶颈。P2P的非中心化基本特点,带来了其在可扩展性、健壮性等方面的优势。
2.2可扩展性
在P2P网络中,随着用户的加入,不仅服务的需求增加了,系统整体的资源和服务能力也在同步地扩充,始终能比较容易地满足用户的需要。理论上其可扩展性几乎可以认为是无限的。例如:在传统的通过FTP的文件下载方式中,当下载用户增加之后,下载速度会变得越来越慢,然而P2P网络正好相反,加入的用户越多,P2P网络中提供的资源就越多,下载的速度反而越快。
2.3健壮性
P2P架构天生具有耐攻击、高容错的优点。由于服务是分散在各个结点之间进行的,部分结点或网络遭到破坏对其它部分的影响很小。P2P网络一般在部分结点失效时能够自动调整整体拓扑,保持其它结点的连通性。P2P网络通常都是以自组织的方式建立起来的,并允许结点自由地加入和离开。
2.4高性价比
性能优势是P2P被广泛关注的一个重要原因。随着硬件技术的发展,个人计算机的计算和存储能力以及网络带宽等性能依照摩尔定理高速增长。采用P2P架构可以有效地利用互联网中散布的大量普通结点,将计算任务或存储资料分布到所有结点上。利用其中闲置的计算能力或存储空间,达到高性能计算和海量存储的目的。目前,P2P在这方面的应用多在学术研究方面,一旦技术成熟,能够在工业领域推广,则可以为许多企业节省购买大型服务器的成本。
2.5隐私保护
在P2P网络中,由于信息的传输分散在各节点之间进行而无需经过某个集中环节,用户的隐私信息被窃听和泄漏的可能性大大缩小。此外,目前解决Internet隐私问题主要采用中继转发的技术方法,从而将通信的参与者隐藏在众多的网络实体之中。在传统的一些匿名通信系统中,实现这一机制依赖于某些中继服务器节点。而在P2P中,所有参与者都可以提供中继转发的功能,因而大大提高了匿名通讯的灵活性和可靠性,能够为用户提供更好的隐私保护。
2.6负载均衡
P2P 网络环境下由于每个节点既是服务器又是客户机,减少了对传统C/S结构服务器计算能力、存储能力的要求,同时因为资源分布在多个节点,更好的实现了整个网络的负载均衡。[2]
3.P2P技术缺陷
3.1伪造数据
在P2P网络中,都需要一个描述文件信息的Metadata数据,该数据包含了要下载文件的分块大小和每块数据的完整性检验值,以及Tracker服务器的地址。而Tracker在文件的P2P网络传输过程中,跟踪P2P节点拥有的文件块信息,用于其他节点及时获取拥有需要的内容块的其他节点的地址。
在破解了P2P协议的情况下,黑客能够在P2P网络中传递Metadata数据时,将其修改
为另外一个伪造的文件信息,并同时修改Tracker服务器的地址,同时用伪造的Tracker 服务器代替原来的Tracker。那么,P2P网络中的节点会向伪造的Tracker服务器查询P2P 网络中其他节点,Tracker服务器会把拥有伪造数据的节点信息发送给该节点。这些节点就会下载到伪造的数据中。这些数据在最后进行完整性检验的时候,也不能被发现出来,因为Metadata中文件的检验信息就是该伪造数据的信息。
P2P网络中由于缺乏统一的管理,在发现伪造的数据后,不能控制P2P节点不下载伪造的数据或者阻止P2P网络中伪造数据的传输,从而导致伪造的数据在P2P网络中肆意传播,且会处于完全失控状态。
在P2P网络中,由于任何节点都是可以加入的,同时也为网络中的其他节点提供转发服务。从网络攻击的角度来看,一个“恶意”节点故意将正常的数据替换成伪造的数据,在转发的整个P2P网络中,完全可以欺骗其他P2P的节点而不被发现。
3.2易受攻击
从主流P2P实现来看,虽然数据共享与传送是在用户节点之间直接进行,但在大规模的网络应用中都选择了构建索引服务器进行资源查询与定位。例如,BT应用中设置了Tracker 服务器,用户通过资源描述的Torrent 文件得到Tracker的地址之后,连接到Tracker,得到用户节点列表。eMule的客户端通过内置的Tracker地址列表能实现资源的搜索与查找。当然,在KazaA模型中的超级节点也充当了索引服务器的角色。目前,许多网络黑客不约而同地选择了以上的索引服务器连接过程,作为攻击服务器的入手点。P2P的众多用户无形之中成为了网络攻击的发起者。
假定攻击者通过其他途径(例如木马、病毒、网络信息截获、端口扫描)获取了某个服务器的端口信息,就可以欺骗P2P用户对服务器发动拒绝服务攻击DDoS。这里的欺骗手段是多样化的:在局域网内可通过ARP欺骗的方式;BT应用中客户端通过HTTP的方式连接到Tracker,随后发起Get_peerList的会话。因此,攻击者可以伪装一个虚假的Tracker服务器,设置热门资源的虚假PeerList信息指向目标服务器的端口。由于PeerList信息指出热门资源在目的服务器上,则上千台用户计算机尝试与目标服务器进行连接,从而实现了拒绝服务攻击。
DDoS攻击一直是网络安全的一个难题。传统的DDoS攻击需要伪造数据包或者控制大规模的计算机来发动。在P2P规模日益扩大的今天,攻击者不需具体入侵用户终端,就能毫不费力地借助网络中的P2P用户发动攻击,这给网络安全提出了新的挑战。
事实上,通过欺骗P2P客户端不但能形成大规模的网络攻击,而且这种情况下大量用户始终处于请求连接的状态,使原有的P2P应用也受到了很大影响。例如,许多P2P流媒体应用中采用了预置索引服务器的方式,受到以上重定向手段的影响后,用户将无法获取到正确的节点列表,从而无法获得媒体服务。同时在用户节点发起数据分片请求时,如果伪装的热点资源服务器伪造数据包进行响应,这使得用户节点接收到的数据分片总是解码失败。
3.3信息泄露
P2P技术使得用户信息和私有网络信息的安全性面临挑战。通常企业或者用户都需要构建自己的私有网络,公网用户不能直接与私网用户建立直接连接进行数据交换。入侵者总是要想方设法得到私有网络内部的信息,通常都是采用带毒邮件、网络插件携带木马等方式使私网内部的用户在不知情的状态下泄漏内部网络的信息。
P2P软件的盛行,使这一过程变得更加难以控制。P2P软件通常都具备私网穿越的功能。例如BT客户端在连接Tracker的时候,请求消息中客户端会对网络地址进行判断;如果客户端在私网内,客户端就会将私网用户的私网地址、端口号,及其所对应的公网地址、端口号