基于BitTorrent文件可获得性策略.doc

上传人:仙人指路1688 文档编号:3924504 上传时间:2023-03-28 格式:DOC 页数:51 大小:1.48MB
返回 下载 相关 举报
基于BitTorrent文件可获得性策略.doc_第1页
第1页 / 共51页
基于BitTorrent文件可获得性策略.doc_第2页
第2页 / 共51页
基于BitTorrent文件可获得性策略.doc_第3页
第3页 / 共51页
基于BitTorrent文件可获得性策略.doc_第4页
第4页 / 共51页
基于BitTorrent文件可获得性策略.doc_第5页
第5页 / 共51页
点击查看更多>>
资源描述

《基于BitTorrent文件可获得性策略.doc》由会员分享,可在线阅读,更多相关《基于BitTorrent文件可获得性策略.doc(51页珍藏版)》请在三一办公上搜索。

1、分 类 号 学 号2005612100177学校代码 10487 密 级 硕士学位论文BitTorrent下基于文件可获得性的节点选择算法研究学位申请人: 贺记牢学科专业: 计算机软件与理论指导教师: 卢炎生 教 授答辩日期: 2007年6月2日A Thesis Submitted to Huazhong University of Science and Technology for the Degree of Master of EngineeringResearch of Peer Selection Algorithm Based on File Availability in Bit

2、Torrent SystemCandidate : He JilaoMajor : Computer Software and TheorySupervisor : Prof. Lu YanshengHuazhong University of Science and TechnologyWuhan 430074, P.R.ChinaJune, 2007独创性声明本人声明所呈交的学位论文是我个人在导师指导下进行的研究工作及取得的研究成果。尽我所知,除文中已经标明引用的内容外,本论文不包含任何其他个人或集体已经发表或撰写过的研究成果。对本文的研究做出贡献的个人和集体,均已在文中以明确方式标明。本

3、人完全意识到,本声明的法律结果由本人承担。 学位论文作者签名:日期: 年 月 日学位论文版权使用授权书本学位论文作者完全了解学校有关保留、使用学位论文的规定,即:学校有权保留并向国家有关部门或机构送交论文的复印件和电子版,允许论文被查阅和借阅。本人授权华中科技大学可以将本学位论文的全部或部分内容编入有关数据库进行检索,可以采用影印、缩印或扫描等复制手段保存和汇编本学位论文。本论文属于 保密 ,在_年解密后适用本授权书。不保密。(请在以上方框内打“”)学位论文作者签名: 指导教师签名:日期:年 月 日 日期:年 月日摘要对等计算(P2P)相关的应用在因特网上非常成功。BitTorrent系统是目

4、前因特网上最大的P2P文件共享系统,据统计2004年,BitTorrent协议相关的流量占了因特网总流量的35%。BitTorrent系统区别于其他P2P系统的关键特点是将文件分成粒度更小的数据分块。只拥有部分文件的用户节点也能向其他用户提供数据分块。这个特性释放了处于下载过程中的用户节点的服务能力,整个BitTorrent系统中服务提供者的数量大大增加,系统的服务能力随着用户数的增加呈指数级增长,可扩展性好。BitTorrent协议中的核心算法是分块选择算法和邻居节点选择算法。大量研究工作表明BitTorrent协议中分块副本数量最少优先(rarest first)策略和阻塞(choke)算

5、法在实际运行中接近于最优,是BitTorrent系统成功的关键因素。分块副本数量最少优先(rarest first)策略使各数据分块的副本在peer节点之间均匀分布,尽可能的增大peer之间交换数据的可能性,避免了数据瓶颈的出现。阻塞(choke)算法则帮助peer找到合适的服务提供者,加快下载速率。BitTorrent协议中分块选择算法只考虑了数据分块副本的数量,而忽视了数据分块的可获得性。邻居节点选择算法则近似于一种盲目寻找的策略,可能需要很长的搜寻时间才能找到合适的服务提供者,算法的不确定性、随机性很强。针对文件可获得性,改进了peer选择服务提供者的策略,帮助peer在尽可能短的时间内

6、找到更合适、更优秀的服务提供者,提高下载速率。实验证明,改进策略在实际运行中比标准策略能提高平均下载速率20%-30%。关键词: 对等计算; 文件共享; BitTorrent协议AbstractPeer-to-Peer applications are extensively used on internet nowadays, and BitTorrent is one of the most successful P2P file sharing system. Statistics indicates that by the end of 2004, 35% of the interne

7、t traffics are caused by BitTorrent protocol.The characteristic that BitTorrent differs from other P2P systems is that it splits the files into smaller pieces. Clients that do not have the whole file can also provide some pieces to other node. So the clients who are in the process of downloading can

8、 also be service providers. This remarkably increases the quantities of service providers in BitTorrent system, and thus greatly improves the performance of the system.The key algorithms in BitTorrent protocols are piece selection and node selection. Plenty of studies show that the rarest first stra

9、tegy and the choke algorithm work well. The first balances the number of copies of each data piece among the BitTorrent nodes to help peers exchange data, and to avoid the bottle-neck. The latter is used by peers to find the appropriate service provider and speed up their downloading.We propose the

10、concept of file availability based on investigations of the BitTorrent protocol. The rarest first piece selection algorithm of BitTorrent protocol only takes the number of piece copies into consideration regardless of their availability. Neighbor nodes selection algorithm is a strategy that search i

11、ts neighbor peer blindly, and may take quite a long time to reach its appropriate service providers. Based on file availability, we improve the service provider selection strategies to help peers find the right service providers in a relatively short time. Experiment results show that this approach

12、can speed the downloading rates up to 30%.Keywords: P2P computing; file sharing; BitTorrent protocol目 录摘要IAbstractII1绪言1.1研究背景(1)1.2国内外研究现状(3)1.3本课题研究的目标和意义(6)1.4本文结构 (6)2BitTorrent协议概论 2.1BitTorrent网络概览(8)2.2BitTorrent协议(10)2.3BitTorrent特点分析(14)2.4本章小结(18)3分块和节点选择算法3.1分块选择算法(19)3.2邻居节点选择算法(21)3.3基于

13、文件可获得性的改进策略(24)3.4本章小结(27)4原型系统设计与实现4.1原型系统设计思想(28)4.2原型系统设计与实现关键技术(28)4.3实验与性能分析(34)4.4本章小结(36)5结束语5.1本文总结(37)5.2下一步工作(38)致谢(39)参考文献(40)1 绪言1.1 研究背景1.1.1 对等计算(peer-to-peer,P2P)现在,互联网上各种对等计算(P2P)的应用早已屡见不鲜。但是在业界,却始终没有一个对P2P的统一的定义。P2P相关的概念几乎同时在计算机研究界和产业界产生。1999年,Zhang Hui1和Paul Francis分别由IP层多播研究提出了应用层

14、多播(application multicast)的概念。应用层多播的概念出现后不久,计算机网络研究界又提出了覆盖网(overlay)的概念。几乎在同一时期,计算机产业界中出现了几个非常有影响力的系统,Napster和Gnutella,其里面用到的技术就是现在对等计算技术的前身。应用层多播和覆盖网在随后的研究中相互渗透,慢慢融合,并和计算机产业界的技术相结合,产生了对等计算技术。对等计算技术的涵义十分广泛,从不同角度可以得到不同的理解。Intel将P2P计算定义为“通过系统间的直接交换所达成的计算机资源与信息的共享”,这些资源与服务包括信息交换、处理器时钟、缓存和磁盘空间等;IBM则给P2P赋

15、予更广阔的定义,把它看成是由若干互联协作的计算机构成的系统并具备如下若干特性之一:系统依存于边缘化(非中央式服务器)设备的主动协作,每个成员直接从其他成员而不是从服务器的参与中受益;系统中成员同时扮演服务器与客户端的角色;系统应用的用户能够意识到彼此的存在构成一个虚拟或实际的群体。从已有的研究成果来看2,3,4,5,6,7,大致可以归纳出P2P技术具有以下一些共同特性: (1)分布式对等网络由分布在各处的节点组成,节点之间没有任何联系。节点之间可以直接建立连接,传播消息和数据,不需要中间实体或者服务器的介入,属于纯分布式系统。(2)规模大,可扩展性好在P2P网络中,peer之间通过消息维护一种

16、松散的连接状态,peer完全通过自组织(self organize)构成系统。随着用户的不断加入,服务的需求随之增加,而同时,整个系统的资源和服务能力也得到了扩充。因此,P2P网络不会出现随着用户增加而服务容量也迅速饱和的情况。理论上来说,P2P网络的服务容量是无限的。(3)动态性强在P2P网络中,peer可以随时加入和退出网络。且由于peer节点多是普通用户,和专门配置的服务器相比,主机故障和网络故障的概率较高,节点可靠性差。P2P网络必须能快速调整拓扑结构,适应网络的动态变化。P2P技术打破了传统的客户机/服务器模式,在对等网络中每个节点的地位都是相同的,具备客户端和服务器双重身份,可以同

17、时作为服务的使用者和服务的提供者而存在。1.1.2 因特网数据传输数据传输是因特网的核心应用。广义的数据包括所有二进制形式的数据,狭义的数据包括文本、图片、语音、多媒体等各种格式的文件。早期的数据传输基本上都是客户/服务器模式。一个或多个服务器给大量的客户提供服务。随着客户数量的快速增长,数据量的极速膨胀,服务器端的负载越来越重,不堪重负。服务器处理性能和出口带宽的增长远远落后于客户请求增长的速度。内容分发网络(content delivery network, CDN) 8,9技术的出现一度缓解了客户端和服务器日益扩大的供需矛盾。通过在因特网上配置大量的边缘服务器,将用户请求定向或重定向到相

18、应的边缘服务器,实现了在大量边缘服务器之间负载均衡,(扩展)提升了整个服务器群的处理请求能力,大大提高了服务器群可同时服务的客户端数,提高了服务质量。随着各种新的应用的出现,在大文件分发给CDN网络带来了巨大的挑战。一个文件动则数百兆,服务一个用户通常需要数小时,这种情形大大限制了CDN网络服务的用户数。仅仅依靠服务器,再多的服务器也会被飞速增加的用户蚕食。服务器端性能再次成为数据传输的瓶颈。对等计算技术能有效的解决这个问题。通过把终端客户自组织起来,利用终端客户之间的协作,peer之间相互提供服务,系统总服务能力随着终端客户的数量成指数级增长,有效的对抗了客户请求的增长。1.1.3 对等计算

19、技术的主要应用当前对等计算(P2P)技术主要应用在以下领域:流媒体分发:利用对等计算技术来分发实时性很强的流媒体数据,P2P直播和点播技术目前已非常成熟,有大量的商用系统出现,提供可靠、稳定的服务。还有VOIP,通过P2P技术,在因特网中传输实时话音数据,虽然和电信骨干网能提供的话音服务尚有差距,但当前VOIP系统的服务质量已大大改善,已能满足大多数用户的需求。文件存储:将对等计算技术和传统的文件系统技术相结合,利用P2P网络中终端用户的带宽和硬盘空间资源,可以构造出一个容量和服务能力巨大的存储系统。文件共享:利用对等计算技术来分发大文件,在大量终端用户之间共享文件。将大量终端用户组织在一起,

20、形成应用层覆盖网(overlay),peer之间通过应用层消息来定位文件和传输文件数据,构成一个大型的文件共享、分发系统。1.2 国内外研究现状本文的研究对象是BitTorrent这一当前因特网上最大,最成功的P2P文件共享系统。2003年,BitTorrent协议的创造者Bram Cohen10在BitTorrent软件发布一年多之后,发表了一篇短文,详细介绍了他在BitTorrent协议中采用的核心算法。自此之后,BitTorrent系统因其巨大的成功在计算机软件产业界和研究界产生重大的影响,越来越引起研究界的关注,相关的研究工作大致可以分为如下几个方面。(1) 系统整体性能建模和测量Qi

21、u11等在以前研究12基础上提出用流体模型(fluid model)对BitTorrent类似系统建模,理论上分析了BitTorrent系统在系统处于稳态时的性能。他们的分析结果表明大量peer节点加入BitTorrent系统并不会影响peer的平均下载完成时间,单个peer从系统中获得的下载服务并没因其他peer的加入而降低,说明整个系统的服务能力随着peer节点的增加在随之增长,BitTorrent系统充分利用了系统中所有peer的服务能力和上传带宽,可扩展性非常好。Guo13等做了大量的测量工作,他们和因特网服务提供商ISP和因特网用户接入端合作,截获了大量BitTorrent协议的流量

22、数据,对数据进行分析和理论回归,得到了BitTorrent系统的各种系统参数,并利用这些参数对Qiu等提出的模型进行了改进。指出随着加入某一torrent的用户数越来越少,下载完成的用户逐渐退出系统,分发某一文件的Torrent会慢慢死亡,即该Torrent内不再拥有一份完整的文件数据副本,不能给用户提供完整的下载服务。针对这一缺点,他们提出在多个Torrent之间协作,延缓torrent的死亡,提升BitTorrent系统的性能。香港中文大学的Tian14等对从BitTorrent系统peer拥有数据量多少的角度出发,对处于不同下载阶段peer数的分布进行了建模分析,他们的模型结果揭示了系统

23、处于不同下载状态的peer数呈U型分布,即系统中处于下载初期,拥有数据少的peer和下载末期,拥有数据多,快结束下载的peer占很大部分比例,处于下载过程中期的peer数则相对较少。(2) 系统核心算法的研究Arnauld Legout15等大量的实际测量数据出发,提出了BitTorrent协议中核心算法在实际运行中接近于最优的观点,并详细分析大量实际测量数据证明其观点。他们开发了一个功能增强的BitTorrent协议客户端。从实际因特网中挑选代表性比较强的下载任务,把他们的客户端加入到实际的数据分发网络中,主动的收集BitTorrent协议相关的消息和数据,观测BitTorrent协议实际运

24、行的数据。他们的实验证明rarest-first的分块选择算法和tit-for-tat的阻塞和解除阻塞的算法在真实因特网环境中表现十分优异,接近于最优。由于在真实因特网环境下,实际测量很难覆盖整个完整的BitTorrent系统。Ashwin Bharambe16等完全从仿真的角度出发,构造了一个BitTorrent协议仿真平台。通过改变仿真系统的各种参数,分析了各种情形下BitTorrent系统的各种性能指标。他们的仿真研究虽然与实际运行结果有区别,但更详细的揭示了BitTorrent协议中各种系统实际参数对系统性能的影响,对理解BitTorrent协议的运行情况大有帮助。(3) 激励机制和安

25、全性研究大量的研究工作表明,现存的P2P文件共享系统,如Gnutella,天网Maze等,大多存在节点自私行为(free rider)的问题17,18,19,20,即部分peer节点只从P2P系统中获取服务,下载数据,却从不向系统贡献他们的数据和带宽。自私节点(free rider)的存在,严重影响P2P文件共享系统的整体服务能力和性能。因此,对于P2P文件共享系统,协议中很重要的一部分就是通过各种激励机制来对抗节点的自私行为,提高系统服务能力。最近一两年有许多关于BitTorrent协议的激励机制和安全性工作20-26。Arnauld Legout等的研究工作和实际测量表明BitTorren

26、t协议中基于tit-for-tat的阻塞和解除阻塞算法是一种目前比较有效的激励机制,能有效的增强系统中peer之间的相互贡献,相互协作。也有其他一些研究工作证实BitTorrent协议中基于tit-for-tat的阻塞和解除阻塞算法并不能完全杜绝节点的自私行为。N.Liogkas24和Michael Sirivianos等分别报告了多种BitTorrent协议的漏洞,这些漏洞可被恶意peer节点用来实现他们的自私行为。国内关于P2P文件共享系统的研究也非常多。北京大学计算机网络和分布式系统实验室,以教育网内最大的文件共享系统Maze为实验研究平台20,27。Maze系统是该实验室完全自主研制和

27、运营的P2P文件共享系统,在教育网内拥有广泛的用户群。通过对整个Maze系统的控制和监测,该实验室获得了因特网上P2P文件共享系统运行行为的大量真实数据,在系统数据的基础上,对系统中用户的动态加入、退出特性变化,用户自私行为(free ride),和文件共享系统激励机制等方面研究很深,取得了国内领先的成就。1.3 本课题研究的目标和意义本课题来源于海装预研项目,网格环境下信息管理和发布技术的研究。块数据传输和文件分发一直是因特网数据传输相关研究的热点。BitTorrent系统是当前因特网上最成功的P2P文件共享系统,有大量的研究工作与之相关28,29,30。本文对BitTorrent系统展开了

28、详细的研究,先分析了系统整体服务模型,然后分析和评价BitTorrent协议中的核心算法,并对核心算法进行改进。通过详细的研究,试图回答以下问题:(1) BitTorrent系统服务能力强,整体性能好的原因?(2) BitTorrent系统用哪些核心技术来对抗因特网数据传输面临的问题?(3) BitTorrent系统存在的缺点和改进。(4) BitTorrent协议的成功对今后因特网数据传输协议设计的启示。1.4 本文结构本文第一章介绍P2P技术,当前P2P技术的核心应用领域。详细介绍了BitTorrent系统相关的国内外研究现状和本文的研究目标。第二章介绍BitTorrent协议,该协议元数

29、据文件的生成,客户端和追踪服务器通信协议,客户端之间通信协议三部分。然后分析了BitTorrent系统的特点。第三章介绍BitTorrent协议中的核心算法,并提出文件可获得性的概念,针对文件可获得性对核心算法进行改进。第四章实现改进策略的BitTorrent协议客户端。并设计了一系列实验来验证改进策略的有效性。第五章总结全文,指明今后的研究方向。2 BitTorrent协议概论2.1 BitTorrent网络概览BitTorrent内容分发网络是一个基于BitTorrent文件分发协议的应用平台,是目前世界上最大的P2P文件共享系统,据统计2004年因特网上70%多的网络流量由P2P应用占用

30、,40%的网络流量由BitTorrent协议数据,同时在线的BitTorrent用户达数千万。BitTorrent网络是2003年由Bram Cohen设计的,一经问世,便以其简单、稳定、高效率的数据传输模式而风靡全球,和其他P2P文件分发协议如Napster,Gnutella,Edonkey/emule和Kazaa等一起成为因特网文件共享和分发的杀手级应用(killer application),在业界引起了巨大的反响。以BitTorrent为代表的P2P应用在因特网上的巨大成功,引发了计算机网络研究界对P2P内容分发技术的研究热潮。研究界广泛而深入的从各个角度和侧面来分析、研究和改进P2P

31、系统。近7年来,各类学术会议和杂志上研究P2P相关技术的学术论文已达数千篇之多,直接以BitTorrent系统为研究目标的高档论文也有数十篇。这些论文涵盖了BitTorrent相关的各个议题,诸如BitTorrent系统测量与建模,系统动态性分析,BitTorrent核心协议分析与扩展,P2P系统安全和BitTorrent协议漏洞分析等等。2.1.1 BitTorrent网络的基本组成一个Web服务器;一个描述该共享文件的元数据文件;一个BitTorrent追踪服务器(tracker);一个拥有完整文件的上传者;下载该文件的所有下载客户;下载客户端Web浏览器。2.1.2 客户端下载流程终端用

32、户加入BitTorrent内容分发网络的目的是下载其他用户所共享的文件。终端用户下载文件的过程如下:(1) 终端客户浏览Web站点,下载.torrent元数据文件;(2) 启动BitTorrent协议客户端,解析.torrent文件,连接追踪服务器(tracker),并定时从tracker处获得处于当前torrent中其他peer节点信息。(3) BitTorrent客户端通过客户端之间数据传输协议和其他peer处上传和下载,交换数据,直至下载完成或客户端主动退出。2.1.3 相关术语BitTorrent协议:一种对等计算(P2P)的文件分发协议。BitTorrent系统:所有运行BitTor

33、rent协议的peer节点相互连接所构成的网络系统。Torrent:同时下载某一文件的peer节点构成一个torrent,只有同一torrent内的peer节点之间才能相互交换该文件数据。Seed:种子,指已下载完成整个文件,给其他下载用户上传文件数据的peer节点。Leech:普通下载peer节点。Piece:BitTorrent协议中,文件被分成粒度更小的分块(piece),分块大小一般为256K。Interested (or not):BitTorrent协议中,若peer B有peer A所需要的数据分块,则peer A对peer B的数据感兴趣,反之则不感兴趣。Choke(or no

34、t):BitTorrent协议中,若peer A不愿向peer B提供数据,则阻塞(choke)peer B,不接受peer B的数据请求,反之则解除阻塞(unchoke)peer B。Peer set:所有和peer A建立了BitTorrent协议连接的peer都属于peer A的peer节点集,也称为邻居peer节点集。Local peer:本地peer,即本地的BitTorrent协议客户端或本地下载客户。Remote peer:和本地peer建立了BitTorrent协议连接的peer,连接的另一方,也称对方peer。Active peer set:每个本地peer只和其邻居peer

35、集中的少量peer交换数据,邻居peer集的这一子集被称为活跃peer集。本文中peer、节点和终端用户等术语之间不做严格区分,可互相替代、混用。2.2 BitTorrent协议BitTorrent协议是一个简单、开放的应用层文件分发协议。协议包含三部分:元数据信息编码格式,元数据文件格式;客户端和追踪服务器(tracker)通信协议;客户端之间数据传输协议。2.2.1 元数据信息编码格式元数据文件里面只有四种格式的元素,分别是字符串元素,整型元素,列表元素和字典元素。字符串元素由前缀十进制字符串长度加冒号再跟原字符串组成,比如4:spam就代表着字符串“spam”。整型元素的表示是前面加i,

36、后面加e,中间是十进制数。比如i3e就相当于3,i-3e就是-3。0只有一种编码方式i0e。整型元素没有长度限制。列表元素的表示以字符l开头,结尾字符e,中间是一系列编码后的元素,子元素可以是字符串元素、整型元素、列表元素和后面将要描述的字典元素。例如l4:spam4:eggse代表字符串列表“spam”, “eggs”。字典元素以字符d开头,结尾字符e,中间包含一系列键值(key),和与键值对应的元素值。字典元素中的子元素值也可以是字符串元素、整型元素、列表元素和字典元素。例如d3:cow3:moo4:spam4:eggse代表着“cow”: “moo”, “spam”: “eggs”,d4

37、spaml1:a1:bee相当于“spam”:“a”, “b” 。字典元素键值(key)必须是字符串元素。2.2.2 元数据文件的格式元数据文件被编码成字典元素,且必须包含以下键值(key),和该键值所对应的元素。l announce:该键值所对应的元素值是追踪服务器(tracker)的URL地址。当有多个追踪服务器的时候,应包含announce-list键值和对应的追踪服务器列表。l info:该键值对应的元素是所共享文件的相关信息。该键值对应的值是一个字典元素。该子字典元素必须包含如下键值:u name:其元素值是一个字符串元素,代表默认的共享文件(或保存目录)的名字。该名字只是纯粹建议性

38、的。u piece length:其元素值是整数,代表所共享文件分块后的每个分块的字节数。除了最后一块可能被文件尾截断一些外(剩下的大小不足一个分块),所有的分块大小都相同。分块大小一般都是2的幂值,通常是218=256K。u pieces:该元素值是字符串元素,由各分块的SHA1字符串依次连接而成。每个分块数据的SHA1校验码是长度为20的字符串,该字符串元素的长度是20的整数倍。u length和files,这两个键值只能出现一个,且只能出现一个。当length出现时说明该元数据文件代表单个文件共享,否则说明共享了多个文件。单文件情况下,length键值所对应元素的值是所共享文件的大小,以

39、字节数表示。若共享的文件有多个,files键值对应一个文件列表,所有的文件按文件列表中的顺序连成一个大文件看待。每个所共享的文件包含一个length键值,代表该文件的大小,一个path键值,代表该文件所在的子目录和文件名。元数据文件中还可以包含其他一些键值,如相关注释(comment),创建日期(create-date)之类。2.2.3 客户端和追踪服务器交互协议客户端和追踪服务器(tracker)之间的消息传输使用http协议。客户端向追踪服务器按GET方式发送一个http请求,客户端提交的http请求中必须包含如下信息:info_hash:该值是对元数据文件info键值所对应元素值的SHA

40、1 校验码。对所有加入同一个torrent,使用同一个.torrent元数据文件的客户端而言,该info_hash值是一致的。追踪服务器用该info_hash值来唯一标识一个torrent。peer_id:该客户端标识,20字节长的字符串,是每个客户端开始下载时随机生成的标识。ip:该客户端的ip地址。port:该客户端网络服务监听的端口。uploaded:该客户端已累计上传的字节数,编码格式为十进制ASCII码。downloaded:该客户端已累计下载的字节数,编码格式为十进制ASCII码。left:该客户端剩余所需下载的字节数。这个数不能通过文件长度和已下载计算出来的,因为文件可能是续传的

41、,还可能有一些已经下载的数据不能通过完整性检查必须被重新下载。event:可选键值,代表客户端的下载状态。追踪服务器(tracker)给客户端返回的数据被编码成一个字典元素。如果出错,则该字典元素包含一个failure reason的键值和其对应的出错原因。通常则包含如下键值:interval:其值是一个整型元素,是客户端给追踪服务器发送请求的时间间隔,以秒为单位。peers:其值为一个列表元素,包含下载同一文件的torrent中其他peer节点的信息。对每一个peer节点,包含peer_id,ip和port,分别对应peer标识、IP地址和监听端口号。2.2.4 客户端之间数据传输协议客户端

42、定期从追踪服务器(tracker)处获得当前torrent中其他peer节点信息,然后与一些peer节点建立应用层连接,交换应用层消息和传输数据。Peer节点之间交换消息和传输数据时使用TCP作为网络传输层协议。Peer之间的应用层连接是对称的,消息可以在两个方向上传递,数据也可以在任何一个方向流动。在每个peer端,有2个比特位来指示连接状态:阻塞与否(choke or not),是否感兴趣(interested or not)。阻塞与否指本地peer是否被对方peer阻塞了,若被阻塞(choke),则不能向对方请求数据,除非对方peer解除阻塞(unchoke)。是否感兴趣(interes

43、ted or not)指对方peer拥有本地peer所需要的分块数据。如果本地peer状态变为感兴趣(interested),且对方peer解除阻塞(unchoke)本地peer,本地peer就可以向对方peer发送请求数据分块的消息,双方开始数据传输。BitTorrent协议定义了如下几种Peer之间的消息:l Handshake:peer节点之间的握手消息,也是peer之间所发的第一个消息。Peer之间相互发送一次握手消息,才算握手成功。l Keepalive:peer之间每隔2秒,发送一次keepalive消息,表示双方仍是活跃状态。与数据传输相关的消息有:l Choke:本地peer阻

44、塞对方peer。l Unchoke:本地peer解除阻塞对方peer。l Interested:对方peer拥有本地peer所需要的分块数据。l Not interested:对方peer没有本地peer所需要的分块数据。l Have:本地peer下载完一个数据分块后,向所有建立了连接的邻居peer发送一个拥有该分块的have消息,通知对方。l Bitfield:标示本地peer所拥有的数据分块的状态。若本地peer拥有某一个数据分块,用一个比特1来表示,否则用比特0表示。本地peer和对方peer建立连接,握手成功之后,所发的第一个消息就是Bitfield消息,双方交换各自所拥有的数据分块的

45、状态。l Request:本地peer向对方peer请求某一数据分块或数据分块的一部分。l Piece:本地peer在收到对方peer的request消息后,向对方peer发送其所请求的文件数据。l Cancel:本地peer向对方peer发送cancel消息,撤销之前所发request消息中对某一数据分块的请求。2.3 BitTorrent特点分析快速、有效的数据传输是因特网的核心应用。广义的数据包含文件、语音、图片等。对文件传输而言,其过程可分为两部分,一是文件的定位,二是文件数据传输。文件的定位是定位文件在因特网上存在的地址。文件数据传输是通过网络将文件从源地址传输到目的地址。有大量应用

46、层协议来解决文件传输的问题,如http,ftp,smtp等,还有P2P相关的应用层协议如Gnutella,Edonkey/emule,BitTorrent等。2.3.1 客户机/服务器模式http、ftp等是传统客户机/服务器(C/S)模式下的应用层文件传输协议。在C/S模式下,服务器负责处理所有用户的请求,当客户数量不断增加时,服务器端的负载增长的非常快,要求服务器有非常高的处理能力和出口带宽。由于负载主要集中在服务器端,服务器往往成为整个系统的瓶颈,服务器的处理能力和出口带宽限制了其可以服务客户机的数量和客户机的下载速率。服务器是系统中唯一的服务提供者,系统服务能力的提升全部依赖于服务器性

47、能的提升,系统可扩展性差,当服务器出现故障时,整个系统也随之瘫痪,系统健壮性差。客户机/服务器系统服务模式见图2.1。图 2.1客户机/服务器系统服务模式2.3.2 P2P模式P2P模式的核心理念是终端用户之间的协作(cooperation)。通过各终端用户之间的协作,终端用户之间相互服务,降低服务器在整个系统中地位的重要性,服务器不再是系统中唯一的服务提供者,大量的终端用户也可以向其他终端用户提供服务,整个系统的服务能力大大提高,服务器的性能和带宽不再是系统中的瓶颈,系统可扩展性高,能服务更多的用户,系统健壮性也大大加强。早期的P2P系统,如Gnutella,DHT(Distributed Hash Table) 31,32等,终端用户间的协作体现两方面,一是如何进行定位文件这一过程。P2P文件搜索算法有洪泛式(flood-like),随机漫步式 (random walk),DHT文件路由(file routing)等。各peer节点之间通过各种协议,中

展开阅读全文
相关资源
猜你喜欢
相关搜索
资源标签

当前位置:首页 > 办公文档 > 其他范文


备案号:宁ICP备20000045号-2

经营许可证:宁B2-20210002

宁公网安备 64010402000987号