学位论文-—2015年bt下载工具的设计和实现最终修订版.doc
《学位论文-—2015年bt下载工具的设计和实现最终修订版.doc》由会员分享,可在线阅读,更多相关《学位论文-—2015年bt下载工具的设计和实现最终修订版.doc(60页珍藏版)》请在咨信网上搜索。
1、哈尔滨工业大学BT下载工具设计与实现摘 要BitTorrent是当今Internet上非常流行的基于P2P技术的内容分发系统,它能够快速、有效地在Internet的网络结点上分发大的文件,而不会给源服务器带来过大负载。BitTorrent协议是一个网络文件传输协议,它能够实现点对点文件分享的技术。BitTorrent协议是用在对等网络中文件分享的网络协议程序,它是用户群对用户群,下载同一文件的人越多,且下载后,继续维持上传的状态,就可以分享,成为其用户端节点下载的种子文件,下载该档案的速度越快。本文的主要工作内容:深入研究了BitTorrent协议及BitTorrent协议的工作原理,QT的信
2、号与槽机制,种子文件的解析过程,客户端和Tracker服务器通信,Peer与Peer之间的通信,DHT网络的实现方法以及BT的关键学法和策略,对软件的系统设计进行论述。 关键字:BitTorrent协议;信号与槽机制;torrent文件解析;哈尔滨工业大学BT download tool design and RealizationAbstractBitTorrent is very popular in todays Internet-based P2P content distribution system technology, it is able to quickly and eff
3、iciently distribute large files over the network nodes of the Internet, rather than the source server will bring excessive load. BitTorrent protocol is a network file transfer protocol that enables peer file sharing technology. BitTorrent protocol is used in peer to peer network file sharing network
4、 protocol procedures, it is the user group for users, download the same file more people, and after downloading, continue to maintain the status of the upload, you can share, as its clients node torrent file, download the file faster. The main content of the paper: in-depth study of the working prin
5、ciple of the BitTorrent protocol and BitTorrent protocol for communication, DHT network QT signals and slots mechanism, the seed file parsing process, the client and server communications Tracker, Peer and Peer between BTs key methods and the study of law and policy, the system design software are d
6、iscussed.Key words:The BitTorrent protocol;Signal and slot mechanism;Torrent file parsing;目 录摘 要IAbstractII1 绪论11.1 国内外BitTorrent的发展状况11.2 发展BitTorrent的目的和意义11.2.1 发展BitTorrent的目的11.2.2 发展BitTorrent的意义12 BitTorrent的原理分析22.1 综述BitTorrent的相关技术22.1.1 BitTorrent协议22.1.2 BitTorrent的专业术语22.1.3 种子的解析32.1.4
7、 BitTorrent运行原理62.1.5 BitTorrent下载流程72.1.6 BitTorrent协议的发展72.2 BitTorrent的软件要求82.2.1 软件系统设计要求82.2.2 软件系统实现83 需求分析103.1 种子文件解析功能分析103.2 Tracker服务器功能分析103.3 Torrent服务器功能分析103.4 软件需求分析104 概要设计114.1.1 种子解析模块114.1.2 连接模块114.1.3 Peer管理模块114.1.4 出错处理模块114.1.5 窗口界面模块115 详细设计135.1 系统功能模块135.2 QT的信号与槽机制145.3
8、BT的算法与策略195.3.1 阻塞算法195.3.2 超级种子算法195.3.3 结束算法205.3.4 防冷落算法205.3.5 最佳无阻塞算法205.3.6 最稀有算法215.4 BT软件的模块的实现215.4.1 种子解析模块的实现21哈尔滨工业大学5.4.2 Client与Traceker通信模块的实现215.4.3 Peer之间的通信模块的实现225.4.4 软件出错模块的实现225.4.5 下载任务状态的实现225.4.6 软件主界面模块的实现225.5 代码实现245.5.1 添加种子代码245.5.2 解析种子代码255.5.3 Peer通信代码275.5.4 窗体中任务代码
9、276 系统测试326.1 测试概述326.2 测试特性326.3 测试种类33结论34参考文献35致谢36外文原文37中文翻译49哈尔滨工业大学1 绪论1.1 国内外BitTorrent的发展状况说到BitTorrent可能有人还不知道是什么东西,但是说到种子可谓是无人不知无人不晓啊!那么在这个下载过程是通过什么支撑的,或者说下载客户端与服务器之间是怎么预定通信的呢,那就是BitTorrent协议,用来进行对种子文件管理和规范。BitTorrent协议是一个网络文件传输协议,它能够实现点对点文件分享的技术。比起其他点对点的协议,它更有多点对多点的特性,这个特点简单的说就是:下载的人越多,速度
10、越快。下载完不马上关闭BitTorrent软件,就可以成为种子即拥有完整的档案者分流让其他人下载,或者说BitTorrent一种分发文件的协议。它通过URL来识别内容,并且可以无缝的和web进行交互。它基于HTTP协议,它的优势是:如果有多个下载者并发的下载同一个文件,那么,每个下载者也同时为其它下载者上传文件,这样,文件源可以支持大量的用户进行下载,而只带来适当的负载的增长。1.2 发展BitTorrent的目的和意义1.2.1 发展BitTorrent的目的 BitTorrent是一种P2P模式,对于P2P模式相对C/S模式,具有很多优点,但是随着P2P应用的不断增多,P2P技术也开始面临
11、一些问题,例如路由效率低下、维护开销过大、系统稳定性差、安全性无法保证以及服务不可靠等问题。因此,在提高现有P2P网络资源定位的效率,降低其维护开销,增强P2P系统的稳定与安全性,提高P2P各个节点提供服务的可靠性等方面都需要做深入的研究。深入研究P2P资源定位技术有重要的理论和现实意义。一方面,随着P2P应用的不断增长,P2P资源定位技术遇到的一系列问题迫切需要我们对它进行更加深入的研究,这将有助于它的进一步推广和使用;另一方面,把P2P资源定位技术与其它的技术相结合,可以达到相互促进的效果,如把P2P资源定位技术引入到通讯领域,把P2P资源定位技术与网格技术相结合,都可以促进彼此的发展。1
12、.2.2 发展BitTorrent的意义发展BitTorrent的意义对于大多数网民是不言而喻的。在平时的生活或学习大多数下载是下载一些音乐,电影和一些软件,尤其是电影,现在是已经进入了高清时代,一部高清电影动辄几个G,在中国的平均网速相对发达国家相对较低的情况下,在以前没有BT技术前,要下载高清电影简直是想都不敢想,占有很高的带宽,文件大,下载时间延长,势必会影响其他工作,而有了BT的迅速发展,通过互联网用户下载这个影片的数量大大加增,下载用户越多,速度越快!甚至有些公司提供离线下载服务,公司通过强大的服务器先通过BitTorrent协议把文件先下载到公司服务器,然后用户再从服务器取回到本地
13、,可靠且速度快。Bitorrent技术广泛应用与电视直播,网络视频和在线游戏中。很多网络游戏的在线更新,比如说如魔兽世界就是采用BT的技术,所以当每次有改版时,动辄数百MB的更新包,通过游戏厂商所提供的更新程序,以BitTorrent协议的方式进行下载分流。这为以往的其他种在线游戏,每次重大改版就必须重新压制光盘,或是等待单一下载点的下载方式,带来另一种节省成本的经营模式。2 BitTorrent的原理分析2.1 综述BitTorrent的相关技术2.1.1 BitTorrent协议对于普通的HTTPFTP下载使用TCP/IP协议,BitTorrent协议是架构于TCP/IP协议之上的一个P2
14、P文件传输协议,处于TCP/IP结构的应用层。 BitTorrent协议本身也包含了很多具体的内容协议和扩展协议,并在不断扩充中。根据BitTorrent协议,文件发布者会根据要发布的文件生成提供一个.torrent文件,即种子文件,也简称为“种子”,可以通过一些种子软件进行种子文件生成。种子文件本质上是文本文件,文本的内容包含Tracker信息和文件信息两部分。Tracker信息主要是BT下载中需要用到的Tracker服务器的地址和针对Tracker服务器的设置,也就是下载软件通过解析种子文件,通过Tracker信息然后和Tracker建立连接,进行通信,从服务器获取到Peer的列表,即你从
15、其他客户端下载文件时建立连接需要的信息,同时也把你的主机的信息上传到Tracker供其他客户端下载。文件信息是根据对目标文件的计算生成的,即根据BitTorrent协议内的Bencode规则进行提供下载文件进行编码。主要是把提供下载的文件虚拟分成大小相等的块,块大小必须为2k的整数次方,由于是虚拟分块,硬盘上并不产生各个块文件,并把每个块的索引信息和Hash验证码写入种子文件中,确保块不被重复下载所以,种子文件就是被下载文件的“索引”。下载时,BT客户端首先解析种子文件得到Tracker地址,然后连接Tracker服务器。Tracker服务器回应下载者的请求,提供下载者其他下载者包括发布者的I
16、P。下载者再连接其他下载者,根据种子文件,两者分别告知对方自己已经有的块,然后交换对方所没有的数据。此时不需要其他服务器参与,分散了单个线路上的数据流量,因此减轻了服务器负担。下载者每得到一个块,需要算出下载块的Hash验证码与种子文件中的对比,如果一样则说明块正确,不一样则需要重新下载这个块。这种规定是为了解决下载内容准确性的问题。一般的HTTP/FTP下载,发布文件仅在某个或某几个服务器,下载的人太多,服务器的带宽很易不胜负荷,变得很慢。而BitTorrent协议下载的特点是,下载的人越多,提供的带宽也越多,下载速度就越快。同时,拥有完整文件的用户也会越来越多,使文件的“寿命”不断延长。为
17、了解决某些用户“下完就跑”的现象,在非官方BitTorrent协议中还存在一种慢慢开放下载内容的超级种子的算法。2.1.2 BitTorrent的专业术语Tracker:收集下载者信息的服务器,并将此信息提供给其他下载者,使下载者们相互连接起来,传输数据。种子:指一个下载任务中所有文件都被某下载者完整的下载,此时下载者成为一个种子。发布者本身发布的文件就是原始种子。也指.torrent文件。做种:发布者提供下载任务的全部内容的行为;下载者下载完成后继续提供给他人下载的行为。2.1.3 种子的解析如图所示为种子文件内容。图2-1 BT种子文件结构图BT种子文件使用了一种叫bencoding的编码
18、方法来保存数据。bencoding现有四种类型的数据:strings(字符串),integers(整数),lists(列表),dictionaries(字典)(1)strings(字符串)编码为:例如:4:test 表示为字符串test,表示长度为4个字节的字符串testStrings类型是没有没开始或结束标记(2)integers(整数)编码为:ie开始标记i,结束标记为e例如:i1234e 表示为整数1234 i-1234e 表示为整数-1234整数没有大小限制(3)lists(列表)编码为:le开始标记为l,结束标记为e列表里可以包含任何bencoding编码类型,包括整数,字符串,列表
19、,字典。例如: l4:test5:abcdee 表示为二个字符串test,abcde(4)dictionaries(字典)编码为de开始标记为d,结束标记为e关键字必须为bencoding字符串值可以为任何bencoding编码类型例如:d3:agei20ee 表示为age=20d4:path3:C:8:filename8:test.txt表示为path=C:,filename=test.txt(5)具体文件结构如下:全部内容必须都为bencoding编码类型。整个文件为一个字典结构,包含如下关键字announce:tracker服务器的URL(字符串)announce-list(可选):备用
20、tracker服务器列表(列表)creation date(可选):种子创建的时间,Unix标准时间comment(可选):备注(字符串)created by(可选):创建人或创建程序的信息(字符串)info:一个字典结构,包含文件的主要信息,分为单文件结构或多文件结构。单文件结构:length:文件长度,单位字节(整数)md5sum(可选):长32个字符的文件的MD5校验(字符串)name:文件名(字符串)piece length:每个块的大小,单位字节(整数)pieces:每个块的20个字节的SHA1 Hash的值(二进制格式)多文件结构如下:files:一个字典结构length:文件长度
21、,单位字节(整数)md5sum(可选):同单文件结构中相同path:文件的路径和名字,是一个列表结构name:最上层的目录名字(字符串)piece length:同单文件结构中相同pieces:同单文件结构中相同综上,多文件Torrent的结构的树形图。图2-2 多文件结构图图2-3 单文件结构图2.1.4 BitTorrent运行原理BT原理普通的HTTP/FTP下载使用TCP/IP协议,BitTorrent协议是架构于TCP/IP协议之上的一个P2P文件传输协议,处于TCP/IP结构的应用层。BitTorrent协议本身也包含了很多具体的内容协议和扩展协议,并在不断扩充中。根据BitTor
22、rent协议,文件发布者会根据要发布的文件生成提供一个.torrent文件,即种子文件,也简称为“种子”。torrent文件本质上是文本文件,包含Tracker信息和文件信息两部分。Tracker信息主要是BT下载中需要用到的Tracker服务器的地址和针对Tracker服务器的设置,文件信息是根据对目标文件的计算生成的,计算结果根据BitTorrent协议内的B编码规则进行编码。它的主要原理是需要把提供下载的文件虚拟分成大小相等的块,块大小必须为2k的整数次方,由于是虚拟分块,硬盘上并不产生各个块文件,并把每个块的索引信息和Hash验证码写入.torrent文件中;所以,种子文件就是被下载文
23、件的“索引”。下载者要下载文件内容,需要先得到相应的.torrent文件,然后使用BT客户端软件进行下载。下载时,BT客户端首先解析.torrent文件得到Tracker地址,然后连接Tracker服务器。Tracker服务器回应下载者的请求,提供下载者其他下载者(包括发布者)的IP。下载者再连接其他下载者,根据.torrent文件,两者分别对方告知自己已经有的块,然后交换对方没有的数据。此时不需要其他扮演服务器参与,分散了单个线路上的数据流量,因此减轻了服务器负担。下载者每得到一个块,需要算出下载块的Hash验证码与.torrent文件中的对比,如果一样则说明块正确,不一样则需要重新下载这个
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 学位 论文 2015 bt 下载工具 设计 实现 最终 修订版
1、咨信平台为文档C2C交易模式,即用户上传的文档直接被用户下载,收益归上传人(含作者)所有;本站仅是提供信息存储空间和展示预览,仅对用户上传内容的表现方式做保护处理,对上载内容不做任何修改或编辑。所展示的作品文档包括内容和图片全部来源于网络用户和作者上传投稿,我们不确定上传用户享有完全著作权,根据《信息网络传播权保护条例》,如果侵犯了您的版权、权益或隐私,请联系我们,核实后会尽快下架及时删除,并可随时和客服了解处理情况,尊重保护知识产权我们共同努力。
2、文档的总页数、文档格式和文档大小以系统显示为准(内容中显示的页数不一定正确),网站客服只以系统显示的页数、文件格式、文档大小作为仲裁依据,个别因单元格分列造成显示页码不一将协商解决,平台无法对文档的真实性、完整性、权威性、准确性、专业性及其观点立场做任何保证或承诺,下载前须认真查看,确认无误后再购买,务必慎重购买;若有违法违纪将进行移交司法处理,若涉侵权平台将进行基本处罚并下架。
3、本站所有内容均由用户上传,付费前请自行鉴别,如您付费,意味着您已接受本站规则且自行承担风险,本站不进行额外附加服务,虚拟产品一经售出概不退款(未进行购买下载可退充值款),文档一经付费(服务费)、不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
4、如你看到网页展示的文档有www.zixin.com.cn水印,是因预览和防盗链等技术需要对页面进行转换压缩成图而已,我们并不对上传的文档进行任何编辑或修改,文档下载后都不会有水印标识(原文档上传前个别存留的除外),下载后原文更清晰;试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓;PPT和DOC文档可被视为“模板”,允许上传人保留章节、目录结构的情况下删减部份的内容;PDF文档不管是原文档转换或图片扫描而得,本站不作要求视为允许,下载前自行私信或留言给上传者【可****】。
5、本文档所展示的图片、画像、字体、音乐的版权可能需版权方额外授权,请谨慎使用;网站提供的党政主题相关内容(国旗、国徽、党徽--等)目的在于配合国家政策宣传,仅限个人学习分享使用,禁止用于任何广告和商用目的。
6、文档遇到问题,请及时私信或留言给本站上传会员【可****】,需本站解决可联系【 微信客服】、【 QQ客服】,若有其他问题请点击或扫码反馈【 服务填表】;文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“【 版权申诉】”(推荐),意见反馈和侵权处理邮箱:1219186828@qq.com;也可以拔打客服电话:4008-655-100;投诉/维权电话:4009-655-100。