BT下载原理介绍

 

BT下载功能实现的示意图  
BT下载功能实现的示意图

BT是一种互联网上新兴的的P2P传输协议,全名叫"BitTorrent",中文全称:"比特流" ,最初的创造者是Bram Cohen,现在则独立发展成一个有广大开发者群体的开放式传输协议。

BT概述

 

BT全名为BitTorrent [1] ,其创始人为 布拉姆·科恩BT下载是目前互联网最热门的应用之一。BT下载通过一个P2P下载软件(点对点下载软件)来实现,克服了传统下载方式的局限性,具有下载的人越多,文件下载速度就越快的特点。因此,吸引着众多的网民使用,其好处是不需要资源发布者拥有高性能服务器就能迅速有效地把发布的资源传向其他的BT客户 软件使用者,而且大多数的BT软件都是免费的。

BT技术原理

传统下载方式

普通下载原理

 普通下载原理[2]

在传统下载方式中,一般是把文件由服务器端传送到 客户端,例如 FTPHTTP,PUB等等。由于是从一台服务器下载,服务器所提供的带宽是一定的,因而下载人越多速度越慢。但是这样就出现了一个问题,随着用户的增多,对带宽的要求也随之增多,用户过多就会造成瓶颈,而且搞不好还会把服务器挂掉,所以很多的服务器会都有用户人数的限制,下载速度的限制,这样就给用户造成了诸多的不便。

BT下载方式

BT下载原理图

 BT下载原理图

与传统下载不同,用BT下载反而是用户越多,下载越快,这是因为BT用的是一种传销的方式来达到共享的。BT首先在上传端把一个文件分成了Z个部分,甲在服务器随机下载了第N各部分,乙在服务器随机下载了第M个部分,这样甲的BT就会根据情况到乙的电脑上去下载乙已经下载好的M部分,乙的BT就会根据情况到甲的电脑上去下载甲已经下载好的N部分,这样就不但减轻了服务器端的负荷,也加快了用户方(甲乙)的下载速度,效率也提高了,更同样减少了地域之间的限制。比如说丙要连到服务器去下载的话可能才几K,但是要是到甲和乙的电脑上去下载就快得多了。所以说用的人越多,下载的人越多,大家也就越快,BT的优越性就在这里。而且,在你下载的同时,你也在上传(别人从你的电脑上下载那个文件的某个部分),所以说在享受别人提供的下载的同时,你也在贡献。
与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协议下载的特点是,下载的人越多,提供的 带宽也越多,种子也会越来越多,下载速度就越快。
而有些人下载完成后关掉下载任务,提供较少量数据给其他用户,为尽量避免这种行为,在非官方BitTorrent协议中存在 超级种子的算法。这种算法允许文件发布者分几步发布文件,发布者不需要一次提供文件所有内容,而是慢慢开放的下载内容的比例,延长下载时间。此时,速度快的人由于未下载完必须提供给他人数据,速度慢的人有更多机会得到数据。由此往往造成用户卡在任务的99%,下载1G的任务要上传3G之多。

BT优特点

由于BT 软件之间的数据传输是双向的,这有效降低了对发布者 宽带的依赖。和另一款常见的P2P软件 电驴不同,BT协议中并没有采用对使用者按上传下载比和登陆顺序及是否能收到入站请求来综合排序进行上传。BT 软件在大部分时间会不断比较其他BT 客户端向己方传输数据的速度,并优先上传给向己方传输数据较快的客户端(发布者和下载完成者(通常被叫做seed或种子)的情况会有所不同,因为他们不下载数据,排序按对方的下载速度进行)。
虽然Bram Cohen称BT协议就有效使用互联网 带宽而言是Peano有效的,很多电信服务商抱怨BT传输占用了过多带宽,已经极大影响了 网络上的其他应用(如对网络性能要求很高的网上语音,网上点播),来自全球各大电信服务商的统计都显示,BT传输已经占到网上所有数据传输的70%以上,不少电信服务商已经采取了单方面的行动来对BT传输进行限制,从较温和的数据传输优先度调整到对侦测到BT传输直接进行屏蔽,电信服务商称这是为了保护其他用户的权益,大多BT使用者认为电信服务商的这种做法违反了他们和服务商签订的服务协议,认为既然带宽不够用,电信服务商就有义务对设备进行改良。
为了应对电信服务商对BT传输的限制,主流BT 软件已经做出了不少改进,以绕开电信服务商的限制,普遍使用的方法包括,通过以torrent文件为基础的 客户端 身份认证和对数据进行Diffie-Hellman密钥加密来防止被电信服务商侦测,使用 DHT 分布式网络作为Tracker服务器的补充,随机选择传输端口。
由于BT在发布和传播上的优点,有很多侵权内容也通过BT发布,被告涉嫌鼓励侵权内容的发布和下载,全球最大的BT发布和资源索引站点NOVA已经被迫关闭,包括 MPAARIAA在内的版权保护团体正在对更多的BT站点采取行动,大多数BT使用者和开发者则认为控告BT站点是不明智的,就好比卖菜刀的不应该为有人用菜刀行凶的行为负责一样,BT站点本身不应该为 侵权行为负责。

BT应用提示

推荐使用的BT 软件utorrent, Bitcomet, Azureus,这些 软件时常更新来提供更好的BT 协议支持和扩展功能。
尽量不要限制BT软件的 上传速度,这会影响你的下载。
避免使用BT默认的监听端口,这些 端口可能已经被服务商屏蔽了。
使用 防火墙的用户有可能需要在防火墙上打开BT监听端口
使用 路由器的用户一般需要通过 端口映射,或者 DMZ功能,或者 UPNP功能,来使入站请求能到达使用BT 软件的计算机上。
即使完成了下载,也请你尽可能不要立即关闭BT 软件或者让BT软件停止上传,您的上传是对整个BT 网络的重要贡献,BT网络持一定的上传者人数以使BT健康运行
即使没有看到发布者和下载完成者出现也请耐心等待,原因可能是,使用人数较多你所被分配到的连接者群体不包含发布者和下载完成者,对方使用了super-seed模式隐藏自己,发布者和下载完成者可能暂时下线。

常用BT下载软件

BitComet

BitComet是基于BitTorrent协议的 p2p 免费软件;高效的 网络内核,多任务同时下载依然保持很少的CPU内存占用;支持对一个Torrent中的文件有选择的下载; 磁盘缓存技术,有效减小高速随机读写对硬盘的损伤;只需一个监听端口即可满足所有下载需要;自动保存下载状态,续传无需再次扫描文件,作种子也无需扫描文件;支持多Tracker协议;对内网用户同样适用; 绿色软件,不需安装,仅运行时关联.torrent文件;多语言界面。 

BT Deadman Walking

BitTorrent Deadman Walking是TLF论坛的专门定制优化过的版本,推荐使用。 

BitTorrent Plus

BitTorrent Shadow's Experimental的加强版,拥有全中文的界面。相对于原版更加易用,翻译通俗易懂,功能强大,是当今BT 客户端中功能最为强大的客户端程序之一。

比特精灵Bit Spirit

一个功能强大,使用方便的BitTorrent客户端。它不仅全面兼容BitTorrent协议,更提供了很多个性化的功能,界面酷似Flashget。

贪婪ABC

一个增强、应该说是超强的Bittorrent 客户端,单窗口多任务!消耗少到吓人。相信很多人已经找了好久,但是一直没有满意的吧?贪婪BT将会给你一个满意的解决方案。 

BitTorrent

最早期最原始的BT 客户端工具,一个多点下载且源码公开的P2P 软件,使用非常方便,就像一个 浏览器插件

Shareaza

一款在国外评价极高并且相当流行的P2P 软件,集合了eDonkey和BT等几种流行P2P 网络类型,许多P2P的下载站点已将其指定为BT的官方 下载工具。 

PTC

PTC比BitTorrent多了个 软件界面,可以直接双击运行,然后打开下载到硬盘上的torrent文件;能同时多任务下载,节省资源;能完全自定义 上传速度,防止 网络 带宽占用过大等等。 

Azureus

一个基于JAVA的多torrent下载程序,可以手动设置某个torrent的优先权,加入了irc聊天室,增加了一些基本的irc命令,可以看见在线人数和ID,支持多trackerurl,对于多tracker发布的torrent可自动切换,并可以手动更改tracker url。 

BitAnarch

一个号称可以和BitTorrent Plus版媲美的BT 软件,具有下载日志功能,可以显示种子和 下载者的详细信息,具有搜索新闻组Torrent文件的功能,更多的选项设置功能,软件界面支持简体中文、 繁体中文、英文语言选择。 

BitBuddy

BitBuddy超小快速,单窗口多任务,支持BitTorrent及其扩展协议的BT下载 客户端,操作类似flashget和netants,方便实用。支持多任务下载,设置下载优先级,速度限制等多项实用功能。 

BTVampire(BT吸血鬼)

BT Vampire又叫称BT 吸血鬼,是一款增强型的完全免费的Bittorrent 客户端,主要是为了改进BT下载效率,试验新算法而编写的。 

BtJoy乐翻天

一个多点对多点下载的P2P软件,使用非常方便,其特点简单的说就是:下载的人越多,速度越快;他发挥了eDoneky和BitTorrent的优势,去除了edoneky需要排队的不足,又简化了BitTorrent共享发布比较复杂的流程。 

BitTornado

一个多点下载且源码公开的P2P软件,使用非常方便,就像一个浏览器插件。与以往http、FTP、pub等下载人越多,速度越慢的方式迥然不同,BT下载的特点简单的说就是:下载的人越多,速度越快。时下BT已经成为网上交流资源最新、最酷的方式。是由著名的BT 客户端Shadow'sExperimental更名而来。 

超级BT下载

一款非常优秀的BT 下载软件,速度是同类软件的3倍以上!采用了先进的技术,更进一步的优化了 对等连接!使 下载者之间没有任何障碍了!并且有非常好的皮肤功能!这也是此软件的一个亮点!推荐大家下载!绝对超值!而且完全免费! 

TurboBT

采用最新的C++/PYTHON界面框架技术编写的BT(BitTorrent) 客户端 下载工具。界面代码全部重写,你可以高速的下载各类的资源且非常容易使用。 

MyBT

一个改良的BT 客户端,是用于在BT站点下载或上传文件的实用工具。综合了最新的流行BT 客户端开发,界面友好,中文环境,支持多任务, 断点续传超级种子,自动发布种子等功能,运行稳定,速度快。 

综艺BT下载王

一款非常实用的功能齐全的BT 客户端 软件,可以同时下载多个BT。它运行稳定,占内存非常小,速度快!而且还有 BT种子制作功能。 

BTogether

BTogether 为新型 P2P 下载软件,支持最新 BitTorrent(BT) 下载协议。把 BTogether 拷贝到某目录,直接运行即可。本 软件为纯中文绿色 免费软件,不修改注册表,无需其他 运行库
THUNDER 迅雷
一款国产的下载软件, 迅雷也支持BT下载,可用右键单击 IE中的下载链接,并选取“用迅雷下载”即可。
参考资料
扩展阅读:
©️2020 CSDN 皮肤主题: 大白 设计师:CSDN官方博客 返回首页