BT协议介绍

整理文档很辛苦,赏杯茶钱您下走!

免费阅读已结束,点击下载阅读编辑剩下 ...

阅读已结束,您可以下载文档离线阅读编辑

资源描述

文档名称文档密级2004-01-31华为机密,未经许可不得扩散第1页,共6页1简介BT:BT是一种用来进行文件下载的共享软件(不是“变态”),全名叫BitTorrent。一般来讲,下载是把文件由服务器端传送到客户端,例如FTP,HTTP,PUB等等。但是这样就出现了一个问题,随着用户的增多,对带宽的要求也随之增多,用户过多就会造成瓶颈,而且搞不好还会把服务器挂掉,所以很多的服务器会都有用户人数的限制,下载速度的限制,这样就给用户造成了诸多的不便。但BT就不同,用BT下载反而是用户越多,下载越快,这是为什么呢?因为BT用的是一种传销的方式来达到共享的,工作原理如下图:BT首先在上传者端把一个文件分成了Z个部分,甲在服务器随机下载了第N各部分,乙文档名称文档密级2004-01-31华为机密,未经许可不得扩散第2页,共6页在服务器随机下载了第M个部分,这样甲的BT就会根据情况到乙的电脑上去拿乙已经下载好的M部分,乙的BT就会根据情况去到甲的电脑上去拿甲已经下载好的N部分,这样就不但减轻了服务器端得负荷,也加快了用户方(甲乙)的下载速度,效率也提高了,更同样减少了地域之间的限制。比如说丙要连到服务器去下载的话可能才几K,但是要是到甲和乙的电脑上去拿就快得多了。所以说用的人越多,下载的人越多,大家也就越快,BT的优越性就在这里。而且,在你下载的同时,你也在上传(别人从你的电脑上拿那个文件的某个部分),所以说在享受别人提供的下载的同时,你也在贡献。一些常用的术语解释:BT=BitTorrent比特洪流HTTP=HyperTextTransmissionProtocol超文本传输协议FTP=FileTransferProtocol文件传送协议PUB=可以匿名登陆的FTP站点的统称torrent文件(扩展名为.torrent),包含了一些BitTorrent下载所必须的信息,有了这个文件,才可以下载最新的文件,.torrent文件通常很小,大约几百Kclient(客户端)与trackers服务器通信,这样其他的客户端才能下载到那些发布的文件.Tracker是指运行于服务器上的一个程序,这个程序能够追踪到底有多少人同时在下载同一个文件。客户端连上tracker服务器,就会获得一个下载人员得名单,根据这个,BT会自动连上别人的机器进行下载Seed=种子,在制作完torrent文件后,发布者可以使用bittorrent下载客户端,进行seed他们将会被加进tracker服务器的列表,其他人就可以从他那里下载文件了ReSeed=相对与Seed来说就是二次开放的种子Hash:是指用一小段数据来标识容量很大的一段数据,以验证她的完整性.在bt的下载中,hash主要来验证文件的完整性,并且hash还可以作为不同文件判别的标志SHA1hashing一般是BT网站使用的hash方式P2P=Peer-to-Peer点对点(传输)2BT协议介绍BitTorrent文件下载包括如下几个实体:webserver文档名称文档密级2004-01-31华为机密,未经许可不得扩散第3页,共6页一个静态的metainfo文件一个BitTorrenttracker一个初始下载者用户终端web浏览器一些终端下载者作为服务器的主机需要完成以下几个步骤的工作1.运行Tracker;2.运行WEB服务程序;3.生成metainfo(.torrent)文件,包涵已经下载的文件信息和Tracker的URL;4.把metainfo(.torrent)文件放到WEB服务器上;5.在其它网页上增加metainfo(.torrent)的链接用户侧需要在网上找到.torrent文件就可以下载了。下载过程如下:1.Tracker从Downloaders接收信息,然后给每个下载者下发随机生成的Peer列表,这个过程是建立在HTTPorHTTPS上;2.Downloaders周期性的检入到tracker,使Tracker随时了解他们的进程,Downloaders之间通过P2P的直接连接互相进行上传和下载a。这些连接使用TCP上构建的BitTorrentpeerprotocol;3.作为提供种子的Origin,只上传不下载Metainfo文件和tracker的响应采用一种称为bencoding(pronounced'beeencoding')的简单、有效、易扩充的报文,Bencoded消息是嵌套的字典和列表(asinPython),可以包含字符、整数。Metainfo(.torrent)文件具有以下键值:1、announce:Tracker的URL2、Info:指向一个词典,词典具有以下键值:Name:指向一个字符串,是建议的保存文件名;Piecelength:每个分片的bytes数量;Pieces:一个长度是20的倍数的字符串,将被进一步分割为20字节的字符串,用来文档名称文档密级2004-01-31华为机密,未经许可不得扩散第4页,共6页建行Hash计算;其他的键值不细介绍Tracker查询是双向的,Tracker通过HTTPGET参数接收信息,然后返回bencoded消息TrackerGET请求包括一下主要键值:1.info_hash:在metainfo文件中的bencoded的20bytesha1hash,该值必须2.peer_id:该downloader作为其ID的20字节长的字符串,每一个downloader在开始下载时会随机生成他自己的id,该值必须3.ip:可选参数,该Peer的IP(ordnsname),一般用于Origin和Tracker在一台机器上的情况;4.Port:该Peer侦听的portnumber。一般来说downloader会首先侦听port6881,如果被占用就会尝试6882,然后6883等,最后是68895.Uploaded:目前已经上载的数量6.Downloaded:目前已经下载的数量7.Left:该Peer还需要下载的数量8.Event:用来指示started、completed、stoppedTracker的应答是bencoded词典.假如tracker的应答有一个指示失败的原因,则会转换成可读的字符串用来解释失败的原因,此时其他的键就不需要了。否则,应答中必须包涵两个键:Interval,指示downloader在发出请求之间应该等待的时间Peers,映射到一系列的与peer相关联的词典,包含:peerid、ip、port3BitTorrent'speerprotocolBitTorrent'speerprotocol承载在TCP上,Peer之间的连接是对称的,数据可以双向传输。peerprotocol通过metainfo文件中的index对文件的分片进行索引,当一个Peer结束一个分片的下载,验证了Hash匹配后,可以对他的所有Peers声明他已经下载了这个分片。Peer之间的上载和下载关系有其简单的机制来保证。在连接的任一端包含两个bit位用来指示连接状态:chokedornot、interestedornot。Choking指示在没有出现unchoking时,没有任何数据可以发送。文档名称文档密级2004-01-31华为机密,未经许可不得扩散第5页,共6页数据传输出现在以测试处于Interested状态,另一侧处于unchoking状态。Interest状态应该保持最新的状态,这样,downloaders可以知道出现unchoked哪peers将会开始下载文件。Choking算法BT下载过程中没有一个统一的资源调度,所有的下载者都希望能够尽可能的提高下载速度,对等体之间从任何对端下载,同时礼尚往来的进行上传,就是说,在下载上传形成对子,对于不合作方,则在上传方向进行Choke(阻塞),比如我和你之间形成Pair,但是你只想下载不想上传,则把你Choke。Choking用于阶段性的阻止上载,但是在Choking结束后,上传可以继续进行。Choking算法不是BT链路协议的技术组成,但是对提高下载效率很有作用,一个好的Choking应该能够利用各种资源,保障参加下载的每个用户获得理想的下载速度,同时杜绝有人只下载不上载。每一个BT客户一般会不阻塞一定数量的对等体,所以应该决定哪些Peer应该不去阻塞,这个决定是是基于当前的下载速度,为提高效率,BT对20S内的下载速度进行计算,同时为避免频繁的计算在成效率下降,BT每隔10S进行一次计算,10S的时间也足够TCP机制达到最高的下载速度。另外,为了始终选择到能够提供最大下载速度的Peer,BT会使用一种‘optimisticunchoke’机制,每隔30s就循环的地Choke一个Peer,这样有机会去查询是否还有更好的下载对象。4BT所带来的影响1、带宽利用模式的影响,一般来说上下行带宽是不均衡的,比如ADSL,如果不限速,下行比上行大的多,但是有了BT,情况大变,经常遇到上行大于下行的情况;2、由于BT应用中,每隔Downloader会把自己的一些信息发到Tracker上,这样存在用户安全方面的很大隐患,很容易被黑客侵入;3、部分采用防火墙的网络用户不能使用BT,端口号被封;4、运营商对BT有些恼火,这个软件确实病态,蚕食带宽非常厉害,已经出现了重庆网通把BT封掉惹的网民大骂,然后告上法庭。薃肀莂蒃袂肀肂虿袈聿芄薂螄肈莇螇蚀肇葿薀罿肆腿莃袅肅芁薈螁膄莃莁蚇膄肃薇薃膃芅荿羁膂莈蚅袇膁蒀蒈螃膀膀蚃虿腿节蒆羈芈莄蚁袄芈蒆蒄螀芇膆蚀蚆袃莈蒃蚂袂蒁螈羀袁膀薁袆袁芃螆螂袀莅蕿蚈衿蒇莂羇羈膇薇袃羇艿莀蝿羆蒂薆螅羅膁蒈蚁羅芄蚄罿羄莆蒇袅羃蒈蚂螁羂膈蒅蚇肁芀蚁薃肀莂蒃袂肀肂虿袈聿芄薂螄肈莇螇蚀肇葿薀罿肆腿莃袅肅芁薈螁膄莃莁蚇膄肃薇薃膃芅荿羁膂莈蚅袇膁蒀蒈螃膀膀蚃虿腿节蒆羈芈莄蚁袄芈蒆蒄螀芇膆蚀蚆袃莈蒃蚂袂蒁螈羀袁膀薁袆袁芃螆螂袀莅蕿蚈衿蒇莂羇羈膇薇袃羇艿莀蝿羆蒂薆螅羅膁蒈蚁羅芄蚄罿羄莆蒇袅羃蒈蚂螁羂膈蒅蚇肁芀蚁薃肀莂蒃袂肀肂虿袈聿芄薂螄肈莇螇蚀肇葿薀罿肆腿莃袅肅芁薈螁膄莃莁蚇膄肃薇薃膃芅荿螀羀膆蒃蚆肀芈芆薂聿羈蒂蒈肈肀芅袆肇芃薀螂肆莅莃蚈肅肅薈薄蚂膇莁蒀蚁艿薇蝿螀罿荿蚅蝿肁薅薁螈膄莈薇螈莆膀袆螇肆蒆螁螆膈艿蚇螅芀蒄薃螄羀芇葿袃肂蒃螈袂膄芅蚄袂芇蒁蚀袁肆芄薆袀腿蕿蒂衿芁莂螁袈羁薇蚇袇肃莀薃羆膅薆葿羆芈荿螇羅羇膁螃羄膀莇虿羃节芀薅羂羂蒅蒁羁肄芈螀羀膆蒃蚆肀芈芆薂聿羈蒂蒈肈肀芅袆肇芃薀螂肆莅莃蚈肅肅薈薄蚂膇莁蒀蚁艿薇蝿螀罿荿蚅蝿肁薅薁螈膄莈薇螈莆膀袆螇肆蒆螁螆膈艿蚇螅芀蒄薃螄羀芇葿袃肂蒃螈袂膄芅蚄袂芇蒁蚀袁肆芄薆袀腿蕿蒂衿芁莂螁袈羁薇蚇袇肃莀薃羆膅薆葿羆芈荿螇羅羇膁螃羄膀莇虿羃节芀薅羂羂蒅蒁羁肄芈螀羀膆蒃蚆肀芈芆薂聿羈蒂蒈肈肀芅袆肇芃薀螂肆莅莃蚈肅肅薈薄蚂膇莁蒀蚁艿薇蝿螀罿荿蚅蝿肁薅薁螈膄莈薇螈莆膀袆螇肆蒆螁螆膈艿蚇螅芀蒄薃螄羀芇葿袃肂蒃螈袂膄芅蚄袂芇蒁蚀袁肆芄薆袀腿蕿蒂衿芁莂螁袈羁薇蚇袇肃莀薃羆膅薆葿羆芈荿螇羅羇膁螃羄膀莇虿羃节芀薅羂羂蒅蒁羁肄芈螀羀膆蒃蚆肀芈芆薂聿羈蒂蒈肈肀芅袆肇芃薀螂肆莅莃蚈肅肅薈薄蚂膇莁蒀蚁艿薇蝿螀罿荿蚅蝿肁薅薁螈膄莈薇螈莆膀袆螇肆蒆螁螆膈艿蚇螅芀蒄薃螄羀芇葿袃肂蒃螈袂膄芅蚄袂芇蒁蚀袁肆芄薆袀腿蕿蒂衿芁莂螁袈羁薇蚇袇肃莀薃羆膅薆葿羆芈荿螇羅羇膁螃羄膀莇虿羃节芀薅羂羂蒅蒁羁肄芈螀羀膆蒃蚆肀芈芆薂聿羈蒂蒈肈肀芅袆肇芃薀螂肆莅莃蚈肅肅薈薄蚂膇莁蒀蚁艿薇蝿螀罿荿蚅蝿肁薅薁螈膄莈薇螈莆膀袆螇肆蒆螁螆膈艿蚇螅芀蒄薃螄羀芇葿袃肂蒃螈袂膄芅蚄袂芇蒁蚀袁肆芄薆袀腿蕿蒂衿芁莂螁袈羁薇蚇袇肃莀薃羆膅薆葿羆芈荿螇羅羇膁螃羄膀莇虿羃节芀薅羂羂蒅蒁羁肄芈螀羀膆蒃蚆肀芈芆薂聿羈蒂蒈肈肀芅袆肇芃薀螂肆莅莃蚈肅肅薈薄蚂膇莁蒀蚁艿薇蝿螀罿荿蚅蝿肁薅薁螈膄莈薇螈莆膀袆螇肆蒆螁螆膈艿蚇螅芀蒄薃螄羀芇葿袃肂蒃螈袂膄芅蚄袂芇蒁蚀袁肆芄薆袀腿蕿蒂衿芁莂螁袈羁薇蚇袇肃莀薃羆膅薆葿羆芈荿螇羅羇膁螃羄膀莇虿羃节芀薅羂羂蒅蒁羁肄芈螀羀膆蒃蚆肀芈芆薂聿羈蒂蒈肈肀芅袆肇芃薀螂肆莅莃蚈肅肅薈薄蚂膇莁蒀蚁艿薇蝿螀罿荿蚅蝿肁薅薁螈膄莈薇螈莆

1 / 6
下载文档,编辑使用

©2015-2020 m.777doc.com 三七文档.

备案号:鲁ICP备2024069028号-1 客服联系 QQ:2149211541

×
保存成功