[BT下载原理简介.doc

  1. 1、本文档共11页,可阅读全部内容。
  2. 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
[BT下载原理简介

BT下载原理简介 BT是一种用来进行文件下载的共享软件(不是“变态”),全名叫BitTorrent。BitTorrent是一个多点下载的源码公开的P2P软件,使用非常方便,就像一个浏览器插件,很适合新 发布的热门下载。其特点简单的说就是:下载的人越多,速度越快 。 一般来讲,下载是把文件由服务器端传送到客户端,例如FTP,HTTP,PUB等等。工作原理如下图: 但是这样就出现了一个问题,随着用户的增多,对带宽的要求也随之增多,用户过多就会造成瓶颈,而且搞不好还会把服务器挂掉,所以很多的服务器会都有用户人数的限制,下载速度的限制,这样就给用户造成了诸多的不便。 但BT就不同,用BT下载反而是用户越多,下载越快,这是为什么呢?因为BT用的是一种传销的方式来达到共享的,工作原理如下图: BT首先在上传者端把一个文件分成了Z个部分,甲在服务器随机下载了第N各部分,乙在服务器随机下载了第M个部分,这样甲的BT就会根据情况到乙的电脑上去拿乙已经下载好的M部分,乙的BT就会根据情况去到甲的电脑上去拿甲已经下载好的N部分,这样就不但减轻了服务器端得负荷,也加快了用户方(甲乙)的下载速度,效率也提高了,更同样减少了地域之间的限制。比如说丙要连到服务器去下载的话可能才几K,但是要是到甲和乙的电脑上去拿就快得多了。所以说用的人越多,下载的人越多,大家也就越快,BT的优越性就在这里。而且,在你下载的同时,你也在上传(别人从你的电脑上拿那个文件的某个部分),所以说在享受别人提供的下载的同时,你也在贡献。 BT协议介绍 综述 BitTorrent(简称BT,比特洪流)是一个文件分发协议。它通过URL识别内容并且和网络无缝结合。它和普通HTTP协议相比优势在于,同时下载一个文件的下载者在下载同时不断互相上传数据,使文件源可以在很有限的负载增加的情况下支持大量下载者同时下载。 一个BT式文件分发需要以下实体: 一个普通网络服务器 一个静态元信息文件(Metainfo file) 一个BT Tracker 一个“原始”下载者(original downloader) 网络终端的浏览器 网络终端的下载者 这里假设理想情况下一个文件有多个网络终端的下载者。 架设一个BT服务器步骤如下: 1.开始运行Tracker(已运行的跳过这一步); 2.开始运行普通网络服务器程序,如Apache,已运行的跳过这一步; 3.在网络服务器上将.torrent文件关联到Mime类型 application/x-bittorrent(已做过关联的跳过这一步); 4.用要发布的完整文件和Tracker的URL创建一个元信息文件(.torrent文件); 5.将元信息文件放置在网络服务器上; 6.在网页上发布元信息文件(.torrent文件)的链接; 7.原始下载者开始提供完整的文件(原本)。 通过BT下载步骤如下: 1.安装BT客户端程序(已安装的跳过这一步); 2.上网; 3.点击一个链到.torrent文件的链接; 4.选择本地存储路径,或者选定未完成的下载的续传; 5.等待下载完成; 6.下载者退出下载(之前下载者不停止上传)。 连通性如下: 网站正常提供静态文件,并且启动客户端上的BitTorrent helper(这里说官方的客户端程序); Tracker即时接收所有下载者信息,并且给每个下载者一份随机的peer列表。通过HTTP或HTTPS协议实现; 下载者定时向Tracker登记,使之知道每个人的进度,并和那些直接连接上的peer互相进行数据的上传下载。这些连接遵循BitTorrent peer协议,通过TCP协议进行通信。 原始下载者只上传不下载,他拥有整个文件,所以向网络中传输完文件的所有部分是很必要的。在一些人气很旺的下载中,原始下载者经常可以在较短的时间后退出上传,因为许多下载已经完成,并且可能依然在运行(此时相当于替原始下载者接着提供上传)。 B编码及元信息文件 元信息文件和Tracker的回应信息都以一种简单高效可扩展的格式(Bencoding,B编码格式)传送。B编码过的信息就是字典和列表的嵌套(像在Python中一样),这些字典和列表包含字符串和整型数据。它的可扩展性是因为字典中存在被忽略的关键值(key),所以附加可选的关键值也可以在以后添加。 B编码的规则如下: 字符串表示为前缀十进制的字符串长度加冒号再跟原字符串。 如4:spam就相当于spam。 整型数据的表示是前面加i后面加e中间是十进制数,如i3e就相当于3,i-3e就是-3。整型数据没有长度限制。i-0e无效,所有以i0开头的除了代表0的i0e,其它都无效。 列表编码为一个l开头,后面跟它所包含的项目(已经被编码过)最后加一个e,比如 l4:spam4:egg

文档评论(0)

xiaoyi2013 + 关注
实名认证
内容提供者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档