seed处读取文件;由于原始的文件,只有seed拥有,所以说,seed至少要上传原始文件的一份完整拷贝;
(4)另外一个peer加入进来,tracker负责帮助peer获取seed和其它peers的信息,peer利用这些信息和seed以及前一个peer建立连接,然后从这两者处获取文件,并上传自己拥有的文件片段。2BitTorrent工作原理
BitTorrent中文件下载相关的逻辑问题,通过peers之间的交互来解决。
2.1对等发布
BitTorrent下载部署过程中,一些关于下载和上传的速率的信息被发送给tracker。Tracker的职责被严格限定为“帮助peers相互发现对方”。BitTorrent将文件切割为固定大小的片段(典型的大小是256k)。Peers只有在检查了片段的完整性之后,才会通知其它peers它拥有这个片段。
2.2流水作业
BitTorrent协议,很重要的一点是同时发送多个请求,以避免单个请求的两个片段发送之间的延迟。BitTorrent协议将每个片段又进一步分为子片段,每个子片段的大小一般是16k,同时,它一直保持几个请求被同时发送。流水作业选择同时发送的请求数目的依据是能使得大多数连接变得饱和。
2.3片段选择
选择一个好的顺序来下载片段,对提高性能非常重要。一个差的片段选择算法可能导致所有的片段都处于下载中,或者另一种情况,没有任何片段被上载给其它 peers。
(1)严格的优先级
片段选择的第一个策略是:一旦请求了某个片段的子片段,那么该片段剩下的子片段优先被请求。这样,可以尽可能快的获得一个完整的片段
(2)最少优先
对一个下载者来说,在选择下一个被下载的片段时,通常选择的是它的peers们所拥有的最少的那个片段,也就是所谓的“最少优先”。这种技术,确保了每个peer都拥有其它的peers们最希望得到的那些片段,从而一旦有需要,上载就可以开始。
(3)随机的第一个片段BitTorrent“最少优先”的一个例外是在下载刚开始的时候。下载此时,下载者没有任何片段可供上传,所以,需要尽技快的获取一个完整的片段。因此,第一个片段是随机术研选择的,直到第一个片段下载完成,才切换到“最少究优先”的策略。
(4)最后阶段模式有时候,peers可能从一个速率很慢的peer那里请求一个片段。为了防止这种情况,在最后阶段,peer向所有的peers都发送某片段的子片段的请求,一旦某些子片段到了,那么就会向其它peers发送“取消”消息,取消对这些子片段的请求,以避免带宽的浪费。3BitTorrent的应用
BitTorrent已经被广泛的使用,它为许多并发的下载者提供成百兆的文件下载。但是,由于涉及到版权等法律和道德领域的问题,BitTorrent技术的进一步发展和应用尚需要规范化。参考文献
[1]Bram Cohen. Incentives Build Robustnessin BitTorrent,2003
[2]A.-L. Barab′asi. Linked. The New Sci-ence of Networks.Perseus Publishing, 2002.作者简介
王珏(1978年生),男(汉族),主要研究方向为计算机网络与信息管理
27
因篇幅问题不能全部显示,请点此查看更多更全内容