BT协议介绍
- 格式:doc
- 大小:70.50 KB
- 文档页数:5
bt协议合同范本名称:____________________地址:____________________名称:____________________地址:____________________第一条定义1.1 BT协议:指一种基于P2P(Peer-to-Peer,点对点)网络的文件共享协议,通过种子文件(Torrent文件)实现文件的分片与。
1.2 内容:指甲方拥有合法版权的数字内容,包括但不限于视频、音频、文本、图片等。
1.3 种子文件:指记录了内容分片信息、Tracker服务器地址等数据的文件,用于在BT协议中实现内容的分发。
1.4 Tracker服务器:指负责记录者和者的IP地址、端口等信息,以及维护种子文件中分片信息的服务器。
第二条内容授权2.1 甲方授权乙方在合同有效期内,通过BT协议在全球范围内独家分发内容。
2.2 甲方保证其对内容拥有合法的版权,并保证内容不侵犯任何第三方的知识产权。
2.3 乙方不得对内容进行任何形式的修改、剪辑、转码等处理。
第三条义务与责任3.1 甲方应保证内容的合法性、真实性、准确性,并对内容的合法性承担责任。
3.2 甲方应按时向乙方提供内容的种子文件和Tracker服务器地址。
3.3 乙方应保证Tracker服务器的稳定运行,确保内容的顺利分发。
3.4 乙方应采取必要的技术措施,防止内容的非法复制、传播。
第四条经济条款4.1 甲方应向乙方支付一定的授权费用,具体金额及支付方式由双方另行商定。
4.2 乙方应在收到授权费用后,按照约定的时间向甲方开具正规发票。
第五条违约责任5.1 任何一方违反本合同的约定,应承担违约责任,向对方支付违约金,并赔偿对方因此遭受的损失。
5.2 若乙方未能按照约定提供Tracker服务器的稳定运行,导致内容分发失败,乙方应退还甲方已支付的授权费用。
第六条保密条款6.1 双方应对在履行本合同过程中获得的对方商业秘密、技术秘密等保密信息予以保密,未经对方同意不得向第三方披露。
bt协议合同范本一、合同背景二、定义1. bt协议:指本协议项下,投资方对融资方进行的投资合作,包括但不限于投资金额、投资期限、投资回报等相关条款。
2. 投资金额:指投资方根据本协议向融资方投入的资金总额。
3. 投资期限:指投资方投资于融资方的资金使用期限。
4. 投资回报:指投资方在投资期限结束后,按照本协议约定的方式获取的收益。
5. 融资项目:指融资方为筹集资金而实施的具体项目。
三、投资金额及用途1. 投资金额:投资方同意向融资方投入【投资金额】元人民币作为投资资金。
2. 用途:融资方承诺将投资金额用于【具体用途】,并确保投资资金的合理使用。
四、投资期限1. 投资期限:本协议项下的投资期限为【投资期限】个月,自投资金额实际到账之日起计算。
2. 期限延长:如融资方因特殊原因需延长投资期限,应提前【提前通知期限】书面通知投资方,投资方有权根据实际情况决定是否同意延长。
五、投资回报1. 投资回报率:融资方承诺在投资期限结束后,按照【投资回报率】向投资方支付投资回报。
2. 支付方式:投资回报的支付方式为【现金支付、转账支付或其他方式】。
3. 支付时间:投资回报的支付时间为投资期限结束后的【支付时间】。
六、风险提示1. 投资方充分了解并自愿承担投资风险,包括但不限于市场风险、信用风险、操作风险等。
2. 融资方应确保投资资金的安全,如发生投资损失,融资方应承担相应责任。
七、保密条款1. 双方应对本协议的内容及履行过程中获得的对方商业秘密、技术秘密等保密信息予以保密。
2. 保密期限:自本协议签署之日起至投资期限结束后【保密期限】。
八、争议解决1. 本协议的签订、履行、解释及争议解决均适用中华人民共和国法律。
2. 双方因本协议发生的争议,应通过友好协商解决;协商不成的,任何一方均有权向合同签订地的人民法院提起诉讼。
九、其他条款1. 本协议一式两份,甲乙双方各执一份。
2. 本协议自甲乙双方签字(或盖章)之日起生效。
BitTorrent协议详解BitTrrent(简称BT,比特洪流)是一个文件分发协议,它通过URL识别内容并且和网络无缝结合。
它在HTTP平台上的优势在于,同时下在一个文件的下载者在下载的同时不断互相上传数据,使文件源可以在很有限的负载增加的情况下支持大量下载者同时下载。
一个BT式文件分发需要以下实体:·一个普通网络服务器·一个静态元信息文件·一个BT Tracker·一个“原始”下载者·网络终端浏览者·网络终端下载者这里假设理想情况下一个文件有多个下载者。
架设一个BT服务器步骤如下:1.开始运行Tracker(已运行的跳过这一步);2.开始运行普通网络服务器端程序,如Apache,已运行的跳过这一步;3.在网络服务器上将.torrent文件关联到Mimetype类型application/x-bittorrent(已关联的跳过这一步);4.用要发布的完整文件和Tracker的URL创建一个元信息文件(.torrent文件);5.将元信息文件放置在网络服务器上;6.在网页上发布元信息文件(.torrent文件)链接;7.原始下载者提供完整的文件(原本)。
通过BT下载步骤如下:1.安装BT客户端程序(已安装的跳过这一步);2.上网;3.点击一个链到.torrent文件的链接;4.选择本地存储路径,选定需要下载的文件(对有选择下载功能的BT客户端用户);5.等待下载完成;6.用户退出下载(之前下载者不停止上传)。
连接状况如下:·网站正常提供静态文件连接,并且启动客户端上的BT程序;·Tracker即时接收所有下载者信息,并且给每个下载者一份随机的peer列表。
通过HTTP 或HTTPS协议实现;·下载者每隔一段时间连一次Tracher,告知自己的进度,并和那些已经直接连接上的peer 进行数据的上传下载。
这些连接遵循BitTorrent peer协议,通过TCP协议进行通信。
bt协议announce-list实现原理一、引言近年来,随着互联网的飞速发展,BT下载已成为一种非常流行的文件分享方式。
BT协议作为其核心机制,其中的Announce-List实现原理一直备受关注。
本文将深入探讨BT协议Announce-List的实现原理,以期帮助读者更好地理解和应用BT下载。
二、BT协议概述BT协议是一种点对点(P2P)协议,允许用户之间直接交换数据,从而减少了服务器的负担,提高了下载速度。
在BT下载中,每个下载者都是一个种子(Seed),贡献自己的带宽和存储空间,共同完成文件的下载。
Announce-List是BT协议中的一个重要概念,它由一组地址组成,每个地址都指向一个负责维护本地BT网络状态的节点。
这些节点会定期发布当前可用的种子和已下载的文件信息,以便其他用户可以找到可用的种子并开始下载。
Announce-List的实现原理主要包括以下几个步骤:1.节点向其他节点发送Announce请求,请求包含当前可用的种子和已下载的文件信息。
2.收到Announce请求的节点会将请求转发给其他节点,形成一个网络拓扑结构。
3.每个节点都会维护一个本地状态数据库,记录当前可用的种子和已下载的文件信息。
4.当用户开始下载时,他们会向最近的Announce-List节点发送Announce请求,以获取可用的种子和文件信息。
5.用户根据获取到的信息开始下载文件,同时将自己的状态信息发布到Announce-List中,以便其他用户可以找到可用的种子并开始下载。
四、原理分析Announce-List的实现原理具有以下几个优点:1.提高了下载速度:由于每个节点都会将当前可用的种子和文件信息发布到Announce-List中,因此其他用户可以更快地找到可用的种子并开始下载。
2.提高了稳定性:由于BT协议中的节点会自动加入最近的节点,因此可以避免因网络波动或节点故障导致无法下载的问题。
3.提高了可靠性:每个节点都会维护自己的本地状态数据库,以确保数据的准确性和完整性。
资料编码产品名称使用对象产品版本编写部门数通技术支持部资料版本V1.0基于不同层面的流量控制专题拟制:日期:审核:日期:审核:日期:批准:日期:华为技术有限公司版权所有侵权必究基于不同层面的流量控制专题文档密级:内部公开修订记录日期修订版本描述作者目录(TOC Heading)第1章流量控制需求的产生 (2)第2章不同层面上流量控制的实现 (3)2.1 哪些层面上可以实现流量控制 (3)2.2 应用流量控制的位置 (4)第3章典型的流量控制应用 (5)3.1 BT下载原理简介 (5)3.2 BT协议介绍 (6)3.2.1 综述 (6)3.2.2 B编码及元信息文件 (8)3.2.3 Tracker HTTP协议 (9)3.2.4 BitTorrent peer protocol (11)3.3 BT限流的解决方案 (13)第4章方案点评 (18)关键词:CAR、MPLS-TE摘要:“流量控制”是网络上最常用的Qos技术,本文从“流量控制”的实现方式、“流量控制”部署位置等多个层面介绍了该技术的实现和应用,并且对目前网络上盛行的BT技术进行了比较详细的分析,给出了BT业务流量限制的实现方式。
希望本文能够对希望实施“流量控制”的网络维护人员有一定的借鉴意义。
缩略语清单:无参考资料清单:《Quidway NetEngine16E/08E/05系列通用交换路由器操作手册》《Quidway NetEngine40系列通用交换路由器操作手册》第1章流量控制需求的产生数据通信网络的基础功能就是保证网络层的互通,但是由于网络资源有限,而且不同的上层应用对数据报文的传输质量有不同程度的要求。
满足这些要求的技术就是Qos。
“流量控制”也是Qos技术的一个特性,并且有着广泛的应用。
“流量控制”的需求是在网络资源和投资收益之间进行平衡的。
可以说,如果网络资源是无限的,那么就不会存在“流量控制的需求”,当然,这种理想的状态基本是无法实现的。
BT合同是什么合同BT合同是指业务技术合作合同,是指双方在开展业务技术合作过程中达成的合作协议。
下面将详细介绍BT合同的定义、内容、主要条款和注意事项。
一、定义:BT合同是一种常见的合作合同,即业务技术合作合同。
它是指双方在开展业务技术合作过程中达成的合作协议,明确双方的权利和义务,规范双方的合作关系。
二、内容:1. 合作目的:明确合作双方的合作目标和合作内容,例如共同开辟产品、共享技术资源等。
2. 合作方式:详细描述双方的合作方式,包括合作的具体步骤、时间安排、资源投入等。
3. 权利与义务:明确双方在合作过程中的权利和义务,例如技术提供方应提供的技术支持和服务,合作方应支付的费用等。
4. 保密条款:规定双方在合作过程中需要保守的商业机密和技术机密,并明确保密的责任和义务。
5. 知识产权:明确合作双方在合作过程中产生的知识产权归属,包括专利、商标、著作权等。
6. 终止条款:规定合同的终止条件和终止方式,例如合同期满、双方商议一致等。
三、主要条款:1. 合同签订:约定合同签订的时间、地点和方式。
2. 合同期限:明确合同的有效期限,可以是固定期限或者永久性合作。
3. 费用支付:规定合作方应支付的费用和支付方式,例如一次性支付、分期支付等。
4. 违约责任:约定双方违约的责任和赔偿方式,例如违约方应支付的违约金。
5. 争议解决:明确双方在合作过程中发生争议时的解决方式,可以是商议解决或者仲裁解决。
四、注意事项:1. 合同的明确性:合同中的条款应具体明确,避免含糊和歧义,以免引起纠纷。
2. 合同的合法性:合同应符合相关法律法规的规定,双方应确保合同的合法性。
3. 合同的签署:合同应由双方的授权代表签署,确保合同的有效性。
4. 合同的保密性:双方在合作过程中应保守商业机密和技术机密,避免泄露给第三方。
5. 合同的变更:如有需要,双方应及时商议并书面确认合同的任何变更。
以上是对BT合同的详细介绍,包括定义、内容、主要条款和注意事项。
bt协议详解基础篇(下)bt协议详解基础篇(下)最近开发了⼀个的⽹站,产⽣了仔细了解bt协议的想法,所以写了这⼀篇⽂章,后续还会写⼀些关于搜索和索引的东西,都是在开发这个⽹站的过程中学习到的技术,敬请期待。
1 简介bt是BitTorrent协议的简称,bt协议是最流⾏的p2p下载协议,另外⼀种⽐较流⾏的p2p下载协议叫ed2k,ed2k的全称叫eDonkey2000 network,这⾥我们只讨论bt协议,ed2k协议以后有机会再和⼤家分享。
相信很多⼈都听说过bt协议。
但是当我问周围的⼈究竟什么是bt协议呢?他们的解释让我对bt协议的理解变得更含糊,为了弄清楚⼼中的问题,我开始了⾃⼰对bt协议的学习。
我在上找到⼀篇⽂章。
这个标题翻译过来就是“bittorrent协议规范”,是bittorrent协议的基础篇,为什么说是基础篇呢?BT协议是⼀个协议簇。
有点像tcp/ip协议⼀样,bt协议不是⼀个简单的协议,⽽是⼀系列相关的协议组成的,⽽且这个协议簇⼀直在进化。
既然这篇⽂章的主题是“基础篇”,所以它的内容主要来⾃,也就是bittorrent协议规范,因为其它的协议都是以这个协议为基础的,可见这个的重要性。
接。
peer protocolbt peer协议是基于tcp或者协议(utp协议也是bt协议簇中的⼀个,后⾯会专门写⼀篇关于utp协议的⽂章)。
peer连接是对称的,双⽅可以同时发送数据,⽽且数据的形式是⼀样的。
⼀个peer代表⼀个bt下载⽤户。
peer协议会使⽤torrent⽂件中的pieces块(⽂件块,前⾯有讲到),下标从0开始。
当⼀个peer下载完⼀个⽂件块,检查⽂件块的hash值匹配正确的时候,它就发送⼀个announce请求给拥有该piece块的peer列表,声明⾃⼰拥有该piece块,这样其它的peer就可以向这个peer发送下载该piece的请求。
peer链接两端包含2位的状态:choked,unchoked和interested,uninterested。
bt协议书BT协议书写BT(BitTorrent)是一种用于文件共享的协议,也是一种点对点(P2P)通信协议。
它的主要特点是能够实现高效的文件传输和共享,以及支持大规模的用户参与。
在互联网的发展过程中,BT协议广泛应用于文件下载、资源分享等各个领域。
下面,我将详细介绍BT协议的基本原理和实现机制。
首先,BT协议的基本原理是将一个文件分割成若干个小块,并将这些小块分布在不同的用户之间进行共享。
在文件下载的过程中,每个用户既充当文件的下载者,同时也充当文件的上传者。
这种点对点的方式使得下载速度更快,同时也减轻了服务器的负担。
其次,BT协议的实现机制主要包括Tracker服务器、种子文件和对等下载。
Tracker服务器是一个集中的管理者,它负责监控和管理参与文件下载的所有用户,并维护一个用户列表。
用户需要首先通过Tracker服务器获取文件的种子文件,种子文件包含了文件的详细信息和下载地址。
一旦获得种子文件,用户就可以开始下载文件了。
对等下载是BT协议的核心机制,它实现了用户之间的资源共享和交换。
在下载过程中,用户首先连接Tracker服务器,向其报告自己的下载状态,并获取其他用户的IP地址列表。
然后,用户通过与其他用户建立连接,请求并下载文件的小块。
同时,用户也允许其他用户从自己这里下载文件的小块。
这种对等下载的方式使得文件的下载速度相对较快,并且可以实现较好的负载均衡。
除了基本原理和实现机制,BT协议还具有一些特殊的优势和问题。
首先,BT协议具有高效的文件传输能力。
由于文件被分割成多个小块,并且可以从多个用户处同时下载,因此可以实现更快的下载速度。
另外,BT协议还支持断点续传,即当下载过程中出现中断,用户可以继续之前的下载进度,而不需要从头开始。
然而,BT协议也存在一些问题。
首先,由于BT协议的文件共享特点,使得版权保护问题比较突出。
很多用户利用BT协议进行盗版行为,侵犯了版权者的权益。
其次,BT协议也容易受到网络攻击,例如DHT攻击和假种子攻击等。
建设-转让(BT)合作协议书甲方:(授权方)乙方:(投资方)甲乙双方经平等协商,就项目采取“BT”(建设——移交) 建设模式,即甲方授权乙方作为项目的投资主体,按照甲方的要求建设,并在建成后移交给甲方,甲方以政府回购得方式分期支付乙方的“BT投资额”的投资建设模式。
就此项BT项目甲方双方达成如下协议:第一条基本概念界定“BT投资额”,指由乙方投入BT项目建设并经甲方确认的全部投资,包括项目前期费用、工程堪察费用、工程设计费用、工程监理费用、工程管理费用,工程决算费用等。
“BT投资总额”,指BT投资额及BT项目融资中支付的利息成本。
“BT项目回购款”,指BT投资总额和乙方的投资收益之和。
第二条项目建设内容1. 1 工程概况:此BT项目占地约位于,详细规划指标由甲方确定,并作为本协议的附件;1. 2 BT项目内容:BT项目包括经甲方认可的属于总体规划设计以及项目建设的所有内容,具体内容由甲方确认的详细的建设方案确定,并作为本协议的附件。
1. 3 BT项目总投资额:1. 4 BT项目建设期限:第三条特别约定2. 1 工程的预算、决算按照土建、装饰、安装、市政定额标准下浮执行,下浮比例为;2. 2 乙方作为BT项目的投资主体,以获得BT投资总额的作为乙方的投资收益;第四条BT项目授权3. 1 甲方授权乙方为本BT项目的投资主体,行使业主的权利,本授权为不可撤销的独家授权;3. 2 BT项目建设完成并经竣工验收后个工作日内,乙方向甲方移交整个工程使用权;在甲方按本协议的约定支付完BT项目回购款之日起,甲方自然取得BT项目的所有权;3. 3 本授权从本协议签署之日开始生效。
至甲方自然取得BT 项目所有权之日起终止。
第五条项目工程管理及使用权移交4. 1 BT项目必须按照中华人民共和国建设部、部规定的相关建设标准设计建设;4. 2 BT项目涉及的建筑设计由乙方委托相应资质的建筑设计单位设计;甲方拥有对设计方案的最终决定权;未经甲方书面许可,乙方无权自行决定任何设计方案;4. 3 涉及BT项目的所有立顶、报建、开工等手续由乙方负责办理,甲方提供协助,并负责协调、解决项目报批过程中可能遇到的问题;4. 4 由乙方负责委托监理单位对BT项目的投资、施工进度、施工质量等进行监理;4. 5 为保证甲方的权利和BT项目的顺利实施,甲方有权成立一个BT项目监察小组,该项目监察小组负责人代表甲方行使以下权利:4. 5. 1 负责签收乙方或其他第三方向甲方递交的文件、文书、资料等;4. 5. 2 负责组织协调政府相关部门办理与BT项目有关的行政报批手续;4. 5. 3 负责协调其他涉及到BT项目需要政府支持的事项;4. 5. 4 对乙方提交的设计方案、建设方案、工程预算、决算、前期费用等签字确认;4. 6 甲方要求增加建设内容、提高建设标准、变更设计以及其他与甲方有关的原因造成工期难以按照约定完成的,经双方协商,建设期可以适当延长;但是建设期延长不得超过三个月。
BT模式协议引言BT模式(BitTorrent Mode)是一种使用BitTorrent协议进行文件共享的传输模式。
BitTorrent协议是一种点对点文件分发协议,由于其高效的分布式特性,能够进行大规模文件共享,并且在互联网上得到广泛应用。
本文将介绍BT模式的基本概念、工作原理以及其在文件共享领域的应用。
概述BT模式基于BitTorrent协议,使用分布式种子技术进行文件传输。
其与传统的HTTP或FTP等协议不同,在BT模式中,任何一个参与者既是下载者(downloader),也是上传者(uploader)。
下载者通过下载一个种子文件(.torrent文件),利用种子文件中记录的Tracker服务器信息和其他下载者(对等方)进行通信,实现文件的分片下载,并且在下载的同时也对其他下载者提供上传支持。
工作原理1.种子文件准备:首先,一个上传者需要准备一个种子文件,该文件包含了待共享文件的元数据信息,包括文件名、大小、分片大小等。
种子文件的创建需要使用种子创建器进行操作,通常在上传者的本地机器上完成。
2.种子文件发布:上传者将种子文件发布到BT网络中的Tracker 服务器上。
Tracker服务器负责管理参与者的信息,包括它们的IP地址和所拥有文件的分片信息。
3.下载者获得种子:下载者通过从Tracker服务器上获取可以下载的种子文件,得知可以下载的文件以及其他参与者的信息。
4.下载者与上传者建立连接:下载者通过在BT客户端中打开种子文件,连接到Tracker服务器上列出的参与者中的一个。
下载者与该参与者进行握手,交换分片信息,并通过给定的规则选择要下载的分片。
5.文件分片下载:下载者从已连接的参与者那里下载文件分片,并在下载完成后继续下载其他分片。
6.分享和上传:下载者在成功下载分片后,成为上传者并向其他下载者提供上传支持。
下载者上传已下载的分片,以帮助其他参与者完成文件的下载。
7.文件完成:当下载者获得所有分片并完成文件下载后,BT客户端会验证文件的完整性。
1 简介
BT:BT是一种用来进行文件下载的共享软件(不是“变态”),全名叫"BitTorrent"。
一般来讲,下载是把文件由服务器端传送到客户端,例如,PUB等等。
但是这样就出现了一个问题,随着用户的增多,对带宽的要求也随之增多,用户过多就会造成瓶颈,而且搞不好还会把服务器挂掉,所以很多的服务器会都有用户人数的限制,下载速度的限制,这样就给用户造成了诸多的不便。
但BT就不同,用BT下载反而是用户越多,下载越快,这是为什么呢?因为BT用的是一种传销的方式来达到共享的,工作原理如下图:
BT首先在上传者端把一个文件分成了Z个部分,甲在服务器随机下载了第N各部分,乙
在服务器随机下载了第M个部分,这样甲的BT就会根据情况到乙的电脑上去拿乙已经下载好的M部分,乙的BT就会根据情况去到甲的电脑上去拿甲已经下载好的N部分,这样就不但减轻了服务器端得负荷,也加快了用户方(甲乙)的下载速度,效率也提高了,更同样减少了地域之间的限制。
比如说丙要连到服务器去下载的话可能才几K,但是要是到甲和乙的电脑上去拿就快得多了。
所以说用的人越多,下载的人越多,大家也就越快,BT的优越性就在这里。
而且,在你下载的同时,你也在上传(别人从你的电脑上拿那个文件的某个部分),所以说在享受别人提供的下载的同时,你也在贡献。
一些常用的术语解释:
BT= BitTorrent 比特洪流
HTTP= HyperText Transmission Protocol 超文本传输协议
FTP= Protocol 文件传送协议
PUB= 可以匿名登陆的FTP站点的统称
torrent文件(扩展名为.torrent),包含了一些Bit Torrent 下载所必须的信息,有了这个文件,才可以下载最新的文件,.torrent文件通常很小,大约几百K
client (客户端)与 trackers服务器通信,这样其他的客户端才能下载到那些发布的文件.
Tracker是指运行于服务器上的一个程序,这个程序能够追踪到底有多少人同时在下载同一个文件。
客户端连上tracker服务器,就会获得一个下载人员得名单,根据这个,BT会自动连上别人的机器进行下载
Seed= 种子,在制作完torrent文件后,发布者可以使用bit torrent下载客户端,进行seed 他们将会被加进tracker服务器的列表,其他人就可以从他那里下载文件了
ReSeed= 相对与Seed来说就是二次开放的种子
Hash:是指用一小段数据来标识容量很大的一段数据,以验证她的完整性. 在bt的下载中,hash主要来验证文件的完整性,并且hash还可以作为不同文件判别的标志SHA1 hashing 一般是BT网站使用的hash方式
P2P= Peer-to-Peer 点对点(传输)
2 BT协议介绍
BitTorrent文件下载包括如下几个实体:
✓web server
✓一个静态的metainfo文件
✓一个BitTorrent tracker
✓一个初始下载者
✓用户终端web浏览器
✓一些终端下载者
作为服务器的主机需要完成以下几个步骤的工作
1.运行Tracker;
2.运行WEB服务程序;
3.生成metainfo (.torrent)文件,包涵已经下载的文件信息和Tracker的URL;
4.把metainfo (.torrent)文件放到WEB服务器上;
5.在其它网页上增加metainfo (.torrent)的链接
用户侧需要在网上找到.torrent文件就可以下载了。
下载过程如下:
1.Tracker从Downloaders接收信息,然后给每个下载者下发随机生成的Peer 列表,这
个过程是建立在HTTP or HTTPS上;
2.Downloaders 周期性的检入到tracker,使Tracker随时了解他们的进程,Downloaders
之间通过P2P的直接连接互相进行上传和下载a。
这些连接使用TCP上构建的
BitTorrent peer protocol;
3.作为提供种子的Origin,只上传不下载
Metainfo 文件和tracker的响应采用一种称为bencoding (pronounced 'bee encoding')的简单、有效、易扩充的报文,Bencoded消息是嵌套的字典和列表(as in Python),可以包含字符、整数。
Metainfo (.torrent)文件具有以下键值:
1、announce :Tracker的URL
2、Info:指向一个词典,词典具有以下键值:
✓Name:指向一个字符串,是建议的保存文件名;
✓Piece length:每个分片的bytes数量;
✓Pieces:一个长度是20的倍数的字符串,将被进一步分割为20字节的字符串,用来建行Hash计算;
✓其他的键值不细介绍
Tracker 查询是双向的,Tracker通过HTTP GET 参数接收信息,然后返回bencoded 消息
Tracker GET 请求包括一下主要键值:
_hash:在metainfo文件中的bencoded 的20 byte sha1 hash,该值必须
2.peer_id:该downloader 作为其ID的20字节长的字符串,每一个downloader在开始下
载时会随机生成他自己的id,该值必须
3.ip:可选参数,该Peer的IP (or dns name),一般用于Origin和Tracker在一台机器上的
情况;
4.Port:该Peer侦听的port number。
一般来说downloader会首先侦听port 6881,如果被
占用就会尝试6882, 然后6883等,最后是6889
5.Uploaded:目前已经上载的数量
6.Downloaded:目前已经下载的数量
7.Left:该Peer还需要下载的数量
8.Event:用来指示started、completed、stopped
Tracker的应答是bencoded 词典.假如tracker的应答有一个指示失败的原因,则会转换成可读的字符串用来解释失败的原因,此时其他的键就不需要了。
否则, 应答中必须包涵两个键:
Interval,指示downloader 在发出请求之间应该等待的时间
Peers,映射到一系列的与peer相关联的词典,包含:peer id、ip、port
3BitTorrent's peer protocol
BitTorrent's peer protocol承载在TCP上,Peer之间的连接是对称的,数据可以双向传输。
peer protocol通过metainfo文件中的index对文件的分片进行索引,当一个Peer结束一个分片的下载,验证了Hash匹配后,可以对他的所有Peers声明他已经下载了这个分片。
Peer之间的上载和下载关系有其简单的机制来保证。
在连接的任一端包含两个bit位用来指示连接状态:choked or not、interested or not。
Choking 指示在没有出现unchoking时,没有任何数据可以发送。
数据传输出现在以测试处于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会使用一种
‘optimistic unchoke’机制,每隔30s就循环的地Choke一个Peer,这样有机会去查询是否还有更好的下载对象。
4 BT所带来的影响
1、带宽利用模式的影响,一般来说上下行带宽是不均衡的,比如ADSL,如果不
限速,下行比上行大的多,但是有了BT,情况大变,经常遇到上行大于下行的
情况;
2、由于BT应用中,每隔Downloader会把自己的一些信息发到Tracker上,这样存在
用户安全方面的很大隐患,很容易被黑客侵入;
3、部分采用防火墙的网络用户不能使用BT,端口号被封;
4、运营商对BT有些恼火,这个软件确实病态,蚕食带宽非常厉害,已经出现了重
庆网通把BT封掉惹的网民大骂,然后告上法庭。