当前位置:首页>> >>


BT下载工具的设计和实现毕业设计.rar

收藏

资源目录
    文档预览:
    编号:20180913212651543    类型:共享资源    大小:531.16KB    格式:RAR    上传时间:2018-09-13
    尺寸:148x200像素    分辨率:72dpi   颜色:RGB    工具:   
    45
    金币
    关 键 词:
    BT 下载工具 设计 实现 毕业设计
    资源描述:
    太 原 理 工 大 学 毕 业 设 计 (论 文 )用 纸BT 下载工具设计与实现摘 要BitTorrent是当今 Internet上非常流行的基于 P2P技术的内容分发系统,它能够快速、有效地在 Internet的网络结点上分发大的文件,而不会给源服务器带来过大负载。BitTorrent 协议是一个网络文件传输协议,它能够实现点对点文件分享的技术。BitTorrent协议是用在对等网络中文件分享的网络协议程序,它是用户群对用户群,下载同一文件的人越多,且下载后,继续维持上传的状态,就可以分享,成为其用户端节点下载的种子文件,下载该档案的速度越快。本文的主要工作内容:深入研究了BitTorrent协议及 BitTorrent协议的工作原理,QT 的信号与槽机制,种子文件的解析过程,客户端和 Tracker服务器通信,Peer 与 Peer之间的通信,DHT 网络的实现方法以及 BT的关键学法和策略,对软件的系统设计进行论述。关键字:BitTorrent 协议;信号与槽机制;torrent 文件解析;太 原 理 工 大 学 毕 业 设 计 (论 文 )用 纸IBT download tool design and RealizationAbstractBitTorrent is very popular in today's Internet-based P2P content distribution system technology, it is able to quickly and efficiently 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 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 principle 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 BT's key methods and the study of law and policy, the system design software are discussed.Key words:The BitTorrent protocol;Signal and slot mechanism;Torrent file parsing;太 原 理 工 大 学 毕 业 设 计 (论 文 )用 纸0目 录摘 要 ....................................................................IAbstract.................................................................II1 绪论 ....................................................................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 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 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太 原 理 工 大 学 毕 业 设 计 (论 文 )用 纸05.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 窗体中任务代码 ..............................................276 系统测试 ...............................................................326.1 测试概述 .........................................................326.2 测试特性 .........................................................326.3 测试种类 .........................................................33结论 .....................................................................34参考文献 .................................................................35致 谢 ...................................................................36外文原文 .................................................................37中文翻译 .................................................................49太 原 理 工 大 学 毕 业 设 计 (论 文 )用 纸01 绪论1.1 国内外 BitTorrent的发展状况说到 BitTorrent 可能有人还不知道是什么东西,但是说到种子可谓是无人不知无人不晓啊!那么在这个下载过程是通过什么支撑的,或者说下载客户端与服务器之间是怎么预定通信的呢,那就是 BitTorrent 协议,用来进行对种子文件管理和规范。BitTorrent 协议是一个网络文件传输协议,它能够实现点对点文件分享的技术。比起其他点对点的协议,它更有多点对多点的特性,这个特点简单的说就是:下载的人越多,速度越快。下载完不马上关闭 BitTorrent 软件,就可以成为种子即拥有完整的档案者分流让其他人下载,或者说 BitTorrent 一种分发文件的协议。它通过 URL 来识别内容,并且可以无缝的和 web 进行交互。它基于 HTTP 协议,它的优势是:如果有多个下载者并发的下载同一个文件,那么,每个下载者也同时为其它下载者上传文件,这样,文件源可以支持大量的用户进行下载,而只带来适当的负载的增长。1.2 发展 BitTorrent的目的和意义1.2.1 发展 BitTorrent的目的BitTorrent 是一种 P2P 模式,对于 P2P 模式相对 C/S 模式,具有很多优点,但是随着 P2P 应用的不断增多, P2P 技术也开始面临一些问题,例如路由效率低下、维护开销过大、系统稳定性差、安全性无法保证以及服务不可靠等问题。因此,在提高现有 P2P 网络资源定位的效率,降低其维护开销,增强 P2P 系统的稳定与安全性,提高P2P 各个节点提供服务的可靠性等方面都需要做深入的研究。深入研究 P2P 资源定位技术有重要的理论和现实意义。一方面,随着 P2P 应用的不断增长,P2P 资源定位技术遇到的一系列问题迫切需要我们对它进行更加深入的研究,这将有助于它的进一步推广和使用;另一方面,把 P2P 资源定位技术与其它的技术相结合,可以达到相互促进的效果,如把 P2P 资源定位技术引入到通讯领域,把 P2P 资源定位技术与网格技术相结合,都可以促进彼此的发展。1.2.2 发展 BitTorrent的意义发展 BitTorrent 的意义对于大多数网民是不言而喻的。在平时的生活或学习大多数下载是下载一些音乐,电影和一些软件,尤其是电影,现在是已经进入了高清时代,一部高清电影动辄几个 G,在中国的平均网速相对发达国家相对较低的情况下,在以前没有 BT 技术前,要下载高清电影简直是想都不敢想,占有很高的带宽,文件大,下载时间延长,势必会影响其他工作,而有了 BT 的迅速发展,通过互联网用户下载这个影片的数量大大加增,下载用户越多,速度越快!甚至有些公司提供离线下载服务,公司通过强大的服务器先通过 BitTorrent 协议把文件先下载到公司服务器,然后用户再从服务器取回到本地,可靠且速度快。Bitorrent 技术广泛应用与电视直播,网络视频和在线游戏中。很多网络游戏的在线更新,比如说如魔兽世界就是采用 BT 的技术,所以当每次有改版时,动辄数百 MB 的更新包,通过游戏厂商所提供的更新程序,以 BitTorrent 协议的方式进行下载分流。这为以往的其他种在线游戏,每次重大改版就必须重新压制光盘,或是等待单一下载点的下载方式,带来另一种节省成本的太 原 理 工 大 学 毕 业 设 计 (论 文 )用 纸1经营模式。太 原 理 工 大 学 毕 业 设 计 (论 文 )用 纸22 BitTorrent 的原理分析2.1 综述 BitTorrent的相关技术2.1.1 BitTorrent协议对于普通的 HTTP/FTP 下载使用 TCP/IP 协议,BitTorrent 协议是架构于 TCP/IP协议之上的一个 P2P 文件传输 协议,处于 TCP/IP 结构的应用层。 BitTorrent 协议本身也包含了很多具体的内容协议和扩展协议,并在不断扩充中。根据 BitTorrent 协议,文件发布者会根据要发布的文件生成提供一个.torrent 文件,即种子文件,也简称为“种子”,可以通过一些种子软件进行种子文件生成。种子文件本质上是文本文件,文本的内容包含 Tracker 信息和文件信息两部分。Tracker 信息主要是 BT 下载中需要用到的 Tracker 服务器的地址和针对 Tracker 服务器的设置,也就是下载软件通过解析种子文件,通过 Tracker 信息然后和 Tracker 建立连接,进行通信,从服务器获取到 Peer 的列表,即你从其他客户端下载文件时建立连接需要的信息,同时也把你的主机的信息上传到 Tracker 供其他客户端下载。文件信息是根据对目标文件的计算生成的,即根据 BitTorrent 协议内的 Bencode 规则进行提供下载文件进行编码。主要是把提供下载的文件虚拟分成大小相等的块,块大小必须为2k 的整数次方,由于是虚拟分块,硬盘上并不产生各个块文件,并把每个块的索引信息和 Hash 验证码写入种子文件中,确保块不被重复下载所以,种子文件就是被下载文件的“索引”。下载时,BT 客户端首先解析种子文件得到 Tracker 地址,然后连接 Tracker 服务器。Tracker 服务器回应下载者的请求,提供下载者其他下载者包括发布者的 IP。下载者再连接其他下载者,根据种子文件,两者分别告知对方自己已经有的块,然后交换对方所没有的数据。此时不需要其他服务器参与,分散了单个线路上的数据流量,因此减轻了服务器负担。下载者每得到一个块,需要算出下载块的 Hash 验证码与种子文件中的对比,如果一样则说明块正确,不一样则需要重新下载这个块。这种规定是为了解决下载内容准确性的问题。一般的 HTTP/FTP 下载,发布文件仅在某个或某几个服务器,下载的人太多,服务器的带宽很易不胜负荷,变得很慢。而 BitTorrent 协议下载的特点是,下载的人越多,提供的带宽也越多,下载速度就越快。同时,拥有完整文件的用户也会越来越多,使文件的“寿命 ”不断延长。为了解决某些用户“ 下完就跑 ”的现象,在非官方 BitTorrent 协议中还存在一种慢慢开放下载内容的超级种子的算法。2.1.2 BitTorrent的专业术语Tracker:收集 下载者信息的服务器,并将此信息提供给其他下载者,使下载者们相互连接起来,传输数据。种子:指一个下载任务中所有文件都被某下载者完整的下载,此时下载者成为一太 原 理 工 大 学 毕 业 设 计 (论 文 )用 纸3个种子。发布者本身发布的文件就是原始种子。也指.torrent 文件。做种:发布者提供下载任务的全部内容的行为;下载者下载完成后继续提供给他人下载的行为。2.1.3 种子的解析如图所示为种子文件内容。图2-1 BT种子文件结构图BT 种子文件使用了一种叫 bencoding 的编码方法来保存数据。bencoding 现有四种类型的数据:strings(字符串),integers(整数),lists(列表),dictionaries(字典 )(1)strings(字符串 )编码为::例如:4:test 表示为字符串“test“,表示长度为 4 个字节的字符串 testStrings 类型是没有没开始或结束标记(2)integers(整数)编码为: ie太 原 理 工 大 学 毕 业 设 计 (论 文 )用 纸4开始标记 i,结束标记为 e例如:i1234e 表示为整数 1234 i-1234e 表示为整数 -1234整数没有大小限制(3)lists(列表) 编码为:le开始标记为 l,结束标记为 e列表里可以包含任何 bencoding 编码类型,包括整数,字符串,列表,字典。例如: l4:test5:abcdee 表示为二个字符串 [“test“,“abcde“](4)dictionaries(字典) 编码为 de开始标记为 d,结束标记为 e关键字必须为 bencoding 字符串值可以为任何 bencoding 编码类型例如:d3:agei20ee 表示为{“age“=20}d4:path3:C:“8:filename8:test.txt表示为{“path“=“C:““,“filename“=“test.txt“}(5)具体文件结构如下:全部内容必须都为 bencoding 编码类型。整个文件为一个字典结构,包含如下关键字announce:tracker 服务器的 URL(字符串)announce-list(可选):备用 tracker 服务器列表(列表)creation date(可选):种子创建的时间,Unix 标准时间comment(可选):备注( 字符串)created by(可选):创建人或创建程序的信息(字符串)info:一个字典结构,包含文件的主要信息,分为单文件结构或多文件结构。单文件结构:length:文件长度,单位字节(整数)md5sum(可选):长 32 个字符的文件的 MD5 校验(字符串)name:文件名(字符串)piece length:每个块的大小,单位字节(整数)太 原 理 工 大 学 毕 业 设 计 (论 文 )用 纸5pieces:每个块的 20 个字节的 SHA1 Hash 的值(二进制格式 )多文件结构如下:files:一个字典结构length:文件长度,单位字节(整数)md5sum(可选):同单文件结构中相同path:文件的路径和名字,是一个列表结构name:最上层的目录名字(字符串)piece length:同单文件结构中相同pieces:同单文件结构中相同综上,多文件 Torrent 的结构的树形图。图2-2 多文件结构图
    展开阅读全文
    1
      金牌文库所有资源均是用户自行上传分享,仅供网友学习交流,未经上传用户书面授权,请勿作他用。
    0条评论

    还可以输入200字符

    暂无评论,赶快抢占沙发吧。

    关于本文
    本文标题:BT下载工具的设计和实现毕业设计.rar
    链接地址:http://www.gold-doc.com/p-139120.html
    关于我们 - 网站声明 - 网站地图 - 资源地图 - 友情链接 - 网站客服客服 - 联系我们
    copyright@ 2014-2018 金牌文库网站版权所有
    经营许可证编号:浙ICP备15046084号-3
    收起
    展开