BT是一种互联网上新兴的的P2P传输协议,全名叫BitTorrent,中文全称:比特流 ,最初的创造者是Bram Cohen,现在则独立发展成一个有广大开发者群体的开放式传输协议。BT已经被很多个人和企业用来在互联网上发布各种资源,其好处是不需要资源发布者拥有高性能服务器就能迅速有效地把发布的资源传向其他的BT客户软件使用者,而且大多数的BT软件都是免费的。 整个BT发布体系包括有,包含发布资源信息的torrent文件,作为BT客户软件中介者的tracker服务器,遍布各地的BT软件使用者(通常称作peer)。发布者只需使用BT软件为自己的发布资源制作torrent文件,将torrent提供给人下载,并保证自己的BT软件正常工作,就能轻松完成发布。下载者只要用BT软件打开torrent文件,软件就会根据在torrent文件中提供的数据分块和校验信息和tracker服务器地址等内容和其他运行着BT软件的计算机取得联系,并完成传输。BT软件之间的数传输是双向的,这有效降低了对发布者带宽的依赖。和另一款常见的P2P软件电驴不同,BT协议中并没有采用对使用者按上传下载比和登陆顺序及是否能收到入战请求来综合排序进行上传。BT软件在大部分时间会不断比较其他BT客户端向己方传输数据的速度,并优先上传给向己方传输数据较快的客户端(发布者和下载完成者(通常被叫做seed或种子)的情况会有所不同,因为他们不下载数据,排序按对方的下载速度进行)。BT原理普通的HTTP/FTP下载使用TCP/IP协议,BitTorrent协议是架构于TCP/IP协议之上的一个P2P文件传输协议,处于TCP/IP结构的应用层。BitTorrent协议本身也包含了很多具体的内容协议和扩展协议,并在不断扩充中。 根据BitTorrent协议,文件发布者会根据要发布的文件生成提供一个.torrent文件,即种子文件,也简称为“种子”。 torrent文件本质上是文本文件,包含Tracker信息和文件信息两部分。Tracker信息主要是BT下载中需要用到的Tracker服务器的地址和针对Tracker服务器的设置,文件信息是根据对目标文件的计算生成的,计算结果根据BitTorrent协议内的B编码规则进行编码。它的主要原理是需要把提供下载的文件虚拟分成大小相等的块,块大小必须为2k的整数次方(由于是虚拟分块,硬盘上并不产生各个块文件),并把每个块的索引信息和Hash验证码写入.torrent文件中;所以,.torrent文件就是被下载文件的“索引”。 下载者要下载文件内容,需要先得到相应的.torrent文件,然后使用BT客户端软件进行下载。 下载时,BT客户端首先解析.torrent文件得到Tracker地址,然后连接Tracker服务器。Tracker服务器回应下载者的请求,提供下载者其他下载者(包括发布者)的IP。下载者再连接其他下载者,根据.torrent文件,两者分别对方告知自己已经有的块,然后交换对方没有的数据。此时不需要其他服务器参与,分散了单个线路上的数据流量,因此减轻了服务器负担。下载者每得到一个块,需要算出下载块的Hash验证码与.torrent文件中的对比,如果一样则说明块正确,不一样则需要重新下载这个块。这种规定是为了解决下载内容准确性的问题。 一般的HTTP/FTP下载,发布文件仅在某个或某几个服务器,下载的人太多,服务器的带宽很易不胜负荷,变得很慢。而BitTorrent协议下载的特点是,下载的人越多,提供的带宽也越多,种子也会越来越多,下载速度就越快。
本文来自网络转载,仅供学习参考!不代表趣典故立场,本站不拥有所有权,不承担相关法律责任。如发现本站有抄袭侵权/违规的内容,请发送邮件至@qq.com进行反馈,一经查实,本站将立刻删除。