迅雷同时下载的人数越多,BT下载越快的奥秘——另辟蹊径的P2P应用

同时下载的人数越多,BT下载越快的奥秘——另辟蹊径的P2P应用

BT大家或许不熟,但迅雷下载大家一定知道。通过BT下载同一文件的人数越多,BT下载的速度就越快,这跟我们通常所理解的有些不一样。要说明原因,我们不妨先分析一下传统下载的瓶颈在什么地方。

传统的客户-服务器下载方式的分析

传统的文件下载,即我们平时下载应用软件、歌曲的方式是,文件存放在应用服务器,用户通过客户端软件向服务器请求资源,服务器把相应的资源发给我们。原理图如下:

download

用户A、B、C、D都通过网络向服务器请求文件,服务器则向网络传送文件。假设A、B、C、D从网络上下载的速率分别为U1、U2、U3、U4,服务器向网络上传的速率为S,要传送的文件大小为F,所有用户中最慢的主机接收速率为Umin,则可以得出所有主机都下载完文件F的最少时间是:

T = Max( NF/S , F/Umin )

在上面公式中,若第一项远大于第二项,则T近似与主机数N成正比。如果主机数增大1000倍,那么文件的分发时间也要增大1000倍。

所有的用户都向服务器请求文件,则网络瓶颈在服务器到网络的链路上,这段链路的负担会加重,拥塞情况也会加重。

什么是P2P应用

P2P是Peer-to-peer的缩写,中文翻译是“对等的”。P2P应用也就是对等通信应用。什么是对等通信呢?对等通信是指,在通信过程中,没有客户和服务器的区分,所有的用户都是同等的。在P2P网络应用中,没有(或只有极少数的)固定的服务器,但每个用户都是服务器。P2P应用的网络示意图如下:

p2p

假设A想要下载文件Z,那么它的执行过程大致是这样的:

  1. 向追踪器查询,得到用户B、C、F有文件Z。
  2. A同时与B、C、F建立连接。
  3. A分别向B、C、F请求文件Z的不同部分,如向B请求Z的前25%,向C请求中间50%,向F请求剩下的部分。
  4. 将请求得到的数据组装成文件Z。
  5. 下载完毕。

在上面这个例子中,A是请求方,而B、C、F就是A的对等方。由于P2P对等用户的数量非常多,因此,从不同的对等方获得不同的数据块,然后组装成整个文件,一般要比仅从一个地方下载整个的文件要快很多。

目前在互联网流量中,P2P工作方式下的文件分发已占据了最大的份额,比万维网应用所占的比例大得多。因此但从流量的角度看,P2P文件分发应当是互联网上最重要的应用。比特洪流BT(Bit Torrent)就是P2P应用中的佼佼者。

总结

本文是一个原理性的介绍,只提及了P2P应用的大概工作方式,但这其中还用很多的细节问题值得思考,如:

  • 追踪器会不会成为P2P应用新的瓶颈?
  • 网络中的用户可能随时会退出
  • 哪些文件块应当优先请求?
  • P2P应用的安全问题?
  • P2P搜索对等方的方式?
  • ……

参开文献:

  1. 《计算机网络》第7版 谢希仁 编著
  2. 百度百科
相关文章
相关标签/搜索