1
计算机网络技术理论与实践
1.9.4.1 8.4.1 P2P工作原理

8.4.1 P2P工作原理

P2P的发展可以大致划分为三代:第一代是以Napster为代表,使用中央服务器管理的P2P,这一代P2P的稳定性较差,一旦服务器故障,就无法正常运行;第二代是分布式P2P,没有中央服务器,但是速度较慢;而第三代为混合型,采用分布式服务器。下面我们以BT为例说明P2P的简单工作过程,如图8-8所示。

img199

图8-8 BT下载流程示意图

BT全称BitTorrent,是一种基于P2P方式将文件在大量互联网用户之间进行共享与传输的协议,对应的客户端软件有BitTorrent、BitComet和BitSpirit等。由于其实现简单、使用方便,在互联网用户中得到广泛使用。BT的客户端首先从Web服务器或者其他传统服务器下载种子文件,种子文件中存储了某文件资源的Tracker服务器的IP地址和服务端口号、部分Peer节点IP地址和服务端口号、文件名称、文件分片的长度、片数、文件创建者信息等。客户端解析种子文件后连接Tracker服务器,请求Peer列表和文件分片信息。获取Peer列表后,客户端顺次与列表中的每个Peer建立连接,以获取其需要的文件或者片段。本地客户端从数十、上百个远程客户端处获取某一文件的各个分片,在下载完成后将其组装还原为一个完整的文件。在文件下载过程中,客户端始终保持与Tracker服务器的链接,交互本地客户端已经上传或者下载的字节数、文件分片信息,以方便其他客户端连接本地客户端获取该文件资源。

P2P技术具有广阔的应用前景。Internet上各种P2P应用软件层出不穷,用户数量急剧增加。近几年来,许多P2P软件的用户使用数量从几十万、几百万到上千万。P2P网络应用可以分为以下几种类型:

·提供文件和其他内容共享的P2P网络。P2P文件共享是P2P应用中最为广泛的一种,它通过在不同用户间直接进行文件交换达到文件共享的目的,具有速度快、资源丰富等优势,例如Napster、Gnutella、eDonkey、emule、BitTorrent等;

·挖掘P2P对等计算能力和存储共享能力的P2P网络,例如SETI@home、Avaki、Popular Power等;

·基于P2P方式的协同处理与服务共享平台,例如JXTA、Magi、Groove、.NET My Service等;

·即时通信交流的P2P网络,包括ICQ、OICQ、Yahoo Messenger等;

·安全的P2P通信与信息共享网络,如Skype、Crowds、Onion Routing等;

·P2P搜索可以共享所有硬盘上的文件、目录乃至整个硬盘,用户搜索时无需通过Web服务器,不受信息文档格式的限制,可达到传统目录式搜索引擎无可比拟的深度;

·P2P流媒体服务通过在网络应用层建立一个重叠网实现应用层的组播功能,可以依赖于现有的互联网,网络基础设施不需要改动,并且流媒体用户不只是下载媒体流,还把媒体流上载给其他用户,一定程度上解决了服务器瓶颈问题,如CoolStreaming、PPLive和PPStream等。