一、什么是P2P
对等网络(PeertoPeer,简称P2P)也称为对等连接,是一种新的通信模式,每个参与者具有同等的能力,可以发起一个通信会话。
这个定义有点抽象,下面就来简单地解释一下。粗略地讲,应用程序可以设计成采用客户机/服务器体系结构或对等体系结构(P2P)。我们日常生活中的许多应用程序,包括web、电子邮件和DNS,都是使用客户机/服务器体系结构;而文件分发,例如大家熟悉的迅雷下载等,就是使用P2P文件分发的技术,使用的就是对待体系结构(P2P)。
对于客户机/服务器体系结构,它要求总是打开的基础设施服务器。相反,使用P2P体系结构,对总是打开的基础设施服务器有最小的(或者没有)依赖,任意间断连接的主机对都称为对等方,各个对等方直接通信。对等方并不为服务提供商所有,而是为用户控制的设备。
二、P2P文件分发
下面通过一个具体的应用来研究P2P,这个应用是从单一服务器向大量主机(对等方)分发大文件。
在客户机/服务器文件分发中,服务器必须向每个客户机发送该文件的一个拷贝,这同时给服务器造成了极大的负担,并且消耗了大量的服务器带宽。在P2P文件分发中,每个对等方(即对应客户机/服务器体系结构中的客户机)都能够重新分发其所有的该文件的任何部分,从而协助服务器进行分发。
1、客户机/服务器体系结构 VS P2P体系结构
首先我们假设文件的长度为F,服务器上传的速率为U,下载速率为D,而客户机有N台,每台的上传速率为ui(i=1、2...N),每台的下载速率为di(i=1、2...N)。
由于每一次文件的分发都涉及服务器上传文件和客户机(或对等方)下载文件。在下面的讨论中,我们假设F、U、D、ui、di均不变,而N,即对等方数量却是可变的。
首先,
对于客户机/服务器体系结构,服务器上传N个文件(因为有N个客户,每个客户一个文件的副本)所需要的时间至少为NF/U。而下载速率最小(用dmin表示