打印本文 打印本文  关闭窗口 关闭窗口  
泥客百科:BT与磁链
时间:2014/10/7 11:48:31

一:BT

BitTorrent协议(简称BT,俗称比特洪流、BT下载)是一个基于互联网的文件传输协议,它能够实现点对点的文件分享技术。比起其他点对点的协议,它更有多点对多点的特性,这个特点简单的说就是:下载的人越多,速度越快。下载完只要不停止任务,并继续上传就可以成为种子,分享让其他人下载。普通用户只要安装好免费的BT软件,在分享站上找到自己想要的“种子”就可以下载相应的影视作品。

一般的下载服务器为每一个发出下载请求的用户提供下载服务,而BitTorrent的工作方式与之不同。分配器或文件的持有者将文件发送给其中一名用户,再由这名用户转发给其它用户,用户之间相互转发自己所拥有的文件部分,直到每个用户的下载都全部完成。这种方法可以使下载服务器同时处理多个大体积文件的下载请求,而无须占用大量带宽。

BT的软件创始人BramCohen于2002年独立完成其核心程序代码的撰写。从BramCohen简陋的个人网页上看来,他于1993年进入纽约州立大学就读,辍学之后陆续做过研究员、网络程序设计师,就履历上看来并不是非常特出,2002年间他发表的BT一开始也没有获得很大的关注。2004年六月时,据CNN报导,BT已经占据了网络上所有P2P流量的53%。至今,BT程序文件的下载量已经超过一亿三千五百万人次,而这些数字还不包含网络上经其他用户修改过的版本,如BitComet、BitSpirit。

Tracker:收集下载者信息的服务器,并将此信息提供给其他下载者,使下载者们相互连接起来,传输数据。

一代BT

根据BitTorrent协议,文件发布者会根据要发布的文件生成提供一个.torrent文件,即种子文件,也简称为“种子”。torrent文件本质上是文本文件,包含Tracker信息和文件信息两部分。Tracker信息主要是BT下载中需要用到的Tracker服务器的地址和针对Tracker服务器的设置,文件信息是根据对目标文件的计算生成的,计算结果根据BitTorrent协议内的B编码规则进行编码。

它的主要原理是需要把提供下载的文件虚拟分成大小相等的块,块大小必须为2k的整数次方(由于是虚拟分块,硬盘上并不产生各个块文件),并把每个块的索引信息和Hash验证码写入.torrent文件中;所以,.torrent文件就是被下载文件的“索引”。

下载者要下载文件内容,需要先得到相应的.torrent文件,然后使用BT客户端软件进行下载。下载时,BT客户端首先解析.torrent文件得到Tracker地址,然后连接Tracker服务器。Tracker服务器回应下载者的请求,提供下载者其他下载者(包括发布者)的IP。下载者再连接其他下载者,根据.torrent文件,两者分别对方告知自己已经有的块,然后交换对方没有的数据。此时不需要其他服务器参与,分散了单个线路上的数据流量,因此减轻了服务器负担。

二代BT

2000年以来,又发展出DHT网络技术,可以在无Tracker的情况下下载。

DHT全称为分布式哈希表,是一种分布式存储方法。在不需要服务器的情况下,每个客户端负责一个小范围的路由,并负责存储一小部分数据,从而实现整个DHT网络的寻址和存储。使用支持该技术的BT下载软件,用户无需连上Tracker就可以下载,因为软件会在DHT网络中寻找下载同一文件的其他用户并与之通讯,开始下载任务。

有些软件(如比特精灵)还会自动通过DHT搜索种子资源,构成种子市场。另外,这里使用的DHT算法叫Kademlia(在eMule中也有使用,称为KAD,具体实现协议有所不同)。这种技术好处十分明显,就是大大减轻了Tracker的负担(甚至不需要)。用户之间可以更快速建立通讯(特别是与Tracker连接不上的时候)。

BT下载速度

有时候,BT下载速度并不快,这其中有多种原因。例如:

1、不是公网用户。由于内网用户无法提供主动连接,下载速度肯定会比公网用户慢一些,这是很正常的。

2、上传速度被限制。由于所有的BT客户端程序都对上传速度快的用户提供优先服务,因此如果你对上传速度进行了限制,实际上也就是变相限制了自己的下载速度。

3、种子数太少。如果种子数太少,当然也会影响到其他用户的下载速度,没办法,这还是需要每一个BT用户都发扬“雷锋”精神,自己下载结束后千万不要立即关闭BT,否则种子数就越来越少了。

4、防火墙的阻隔。防火墙软件也会对BT的下载速度造成一定影响,当然为了保证系统的安全,这一点点影响还是可以忽略不计的。

BT下载对磁盘的影响

BT下载开始流行后,也出现会大大损伤硬盘的说法。其实,大多数都用上了宽带,这样自然就不会考虑上网费用的问题。他们可能会整天整夜开着电脑进行下载,再加上BT用户在下载的同时一般还会提供上传服务,假如一个文件有10个人同时下载,那么你的硬盘就需要承受1次下载和9次(10-1)上传,如果有100人同时下载,那么硬盘的负载将大大增加。时间一长,很容易由于连续工作而导致硬盘“发烧”,这就是使用BT下载会导致硬盘损坏的原因所在。由于BT下载时首先会在硬盘缓冲区写入相应容量的数据,生成与下载文件一样大小的一个文件,然后再随机下载文件的相应部分来填充这个文件,当全部填充完毕之后,下载也就结束了。因此,如果你经常使用BT下载文件的话,一定要将硬盘缓存文件的容量设置得大一些。另外也可以使用任务管理器适当降低BT软件的优先级,这样即使它占用了一定的资源,也不会对其他应用程序造成太大影响;必须绝对禁止文件未下载完前非正常关机,否则可能会对硬盘的寿命带来一定影响。

二:磁力链接

一般以“magnet:?”开头的字符串,就是一条“磁力链接;确切的说:“磁力链接”的主要作用是识别能够通过“点对点技术(即:P2P)”下载的文件。这种链接是通过不同文件内容的Hash结果生成一个纯文本的“数字指纹”,来识别文件的。而不是基于文件的位置或者名称

2002年,纽约大学的两个教授Petar Maymounkov和David Mazières发表了一篇论文,提出了一种真正去中心化的“点对点”下载模型,他们将其称为Kademlia方法。2005年,BT软件开始引入这种技 术,在BT中被称为DHT协议(Distributed Hash Table,分布式哈希表)。DHT是一种分布式存储方法。DHT的作用是找到那些与本机正在下载(上传)相同文件的主机(Peer),当然,实现这一过程并不依赖Tracker服务器。在DHT网络中的每个客户端负责一个小范围的路由,并负责存储一小部分数据,从而实现整个DHT网络的寻址和存储。这种信息获取方式保证了整个网络没有单个的中心,即使一个节点下线,依然可以通过其他节点来获取文件,因此也就不需要Tracker服务器来告诉你,其他节点在什么地方。

Tracker服务器和“BT种子”即将双双退役,取而代之的是DHT+PEX网络(Peer Exchange)和Magnet Link,DHT网络是分布式存在的,所以不存在“被拔线”的问题,而Magnet Link仅是一串字符,所以也不再需要种子文件。在这一点上有点类似电驴的ed2k和之后的KAD。所以未来将会是DHT、PEX和Magnet Link三者的天下。

有网友将其称为磁链

磁链下载是DHT网络的升级,不需要服务器,不需要发布种子,只需要一个代码,全世界的用户就可以穿透网络相互交换资源。

磁链连接可以穿透任何网络以及封锁限制,磁链下载可以永远保持带宽上限速度,用户之间的传输不会受到任何干扰.穿透任何网络节点,并一个区域的节点会自动组合成磁力场,形成能量圈,也就是说磁链下载可以随时自动生成网络服务器,自动解散,自动重组。

事件:

1.世界最大BT下载网站“海盗湾”(thepiratebay.org),在官方网志上宣布,永久关闭Tracker服务器:

TPB has decided that there is no need to run a tracker anymore, so it will remain down! It's the end of an era.

我们认为没有必要再维护Tracker服务器了,它不会再上线了!它的时代已经结束了。

无论对于海盗湾,还是对于整个互联网社区,这都是一个非常重大的**,就像官方网志中所说,“一个时代结束了”。因为从今以后,我们使用BT下载的方式将发生革命性变化。

2.表面上看,这个似乎是经过一系列法律纠纷之后,“海盗湾”做出了妥协,对版权组织的压力屈服了。要知道2009年整个一年,海盗湾都是麻烦缠身。

事情的起源是在2008月1月31日,瑞典检察官对“海盗湾”提起公诉,起诉该网站违反版权法。根据检察官的记录,控告海盗湾的案件已经达到了34起,其中涉及音乐行业的21起、电影行业9起、游戏行业4起。

形势在2009年出现了急剧发展。

2月16日,瑞典法庭开庭审判此案,庭审持续了9天,到3月3日结束。

4月17日,四个主要负责人被判有罪,入狱一年,支付罚金360万美元。四人随后提起上诉,目前此案仍在上诉中。

5月13日,几家唱片公司对海盗湾提出追加起诉,并连带起诉了海盗湾的网络接入商Black Internet。

6月30日,瑞典广告娱乐公司GGF宣布与海盗湾达成协议,将以850万美元的价格收购后者。

7月30日,美国一些主要的电影公司(包括Disney、Universal、Time Warner、Columbia、Sony、NBC和Paramount),加入起诉海盗湾的行列。

8月21日,法庭宣判Black Internet必须立即停止为海盗湾提供网络接入,否则将面临6万美元罚款。

8月24日,海盗湾下线。但是,24小时之内,海盗湾更换了服务商,又重新上线。

9月9日,瑞典证券交易所以“严重违规”为由勒令GGF退市,GGF面临破产压力,导致收购海盗湾协议流产。

10月5日,由于反**组织的压力,海盗湾的新网络接入商NForce切断网线,海盗湾再次下线。

10月6日,海盗湾将服务器搬入荷兰,在一个建在废弃的北约军事基地中的机房重新上线。

11月17日,海盗湾宣布永久性关闭所有Tracker服务器,此时距离它成立刚好满六年。

3.难道“海盗湾”真的要“弃暗投明”,做一个顺服的“良民”吗?

不,真正的反抗者永远不会向腐朽的旧势力妥协,不会在金钱和权势面前低头。他们只会改变战斗的方式,继续抵抗下去。

“海盗湾”是这样解释为什么要关闭Tracker服务器的:

Now that the decentralized system for finding peers is so well developed, ...the era is no longer up2date. We have put a server in a museum already, and now the tracking can be put there as well.

去中心化的下载模式已经非常成熟了……tracker模式过时了。我们已经把一台服务器送入了博物馆,现在是时候将旧的下载模式也送进博物馆了。

PEX:是PeerExchange的简写,我们可以将其理解为“节点信息交换”。虽然DHT解决了去中心化的问题,但要在没有“中心协调员”(Tracker)的情况下实现高效寻址,就要借助PEX。PEX所提供的功能有点类似于以前的Tracker服务器,但工作方式却非常不同,我们可以打个比方来说明。

小赵在A班,她不认识B班的小何,也不认识C班的小温,但小赵认识同班的小王,而小王认识B班的小何,也可能还认识C班的小温,或者小王仅认识B班的小何,但小何认识C班的小温,而小温又认识同班的所有同学,结果就是小赵可以“无限”地延伸自己的关系网,不管怎样,总有一条沟通途径可以将这些同学联系在一起,待小赵“认识”了小温后,他们就可以直接沟通了,在P2P世界里,就是进行上传与下载。>>Magnetlinks:有网友将其称为磁链。DHT+ PEX解决了BT“寻址”的问题,但是如何告诉BT客户端找(寻)什么又是另外一个问题。在。torrent文件中包含的内容就是用户真正要下载的文件的特征信息,或称为“电子指纹”,BT客户端知道了要找什么,也知道如何去找,于是P2P方式的下载、上传就实现了。以前BT客户端通过。torrent文件得知“要找什么”,现在,文件的“电子指纹”不再存放于。torrent中,而被放在了Magnetlinks中。

magnet:?xt= urn:btih:36684b463ca2aa2f9347b18e9f6b1a9090bdb073上面是笔者打算下载的一个文件,MicrosoftiSCSIInitiator,按照以前的方式,我们需要下载它的。torrent文件,然后才能下载这个文件本身。但是,在新的模式下,我们不需要下载。torrent文件,只需知道它的MagnetURI,一个资源定位信息,其他都不需要。只要把这个地址告诉下载软件,软件就会开始自动下载。

三:关于BT和磁链分析

请回忆一下,你是如何使用BT下载的。

首先,你从浏览器中找到你感兴趣的内容,下载相应的torrent文件。然后,你用一个BT下载客户端软件,打开这个文件。这时,客户端软件就会根据torrent文件中的网址,自动连接Tracker服务器,从它那里接收到其他正在下载该文件的人的网址名单。下一步,软件就一一与名单上的网址取得 联系,从他们那里获取文件的片段,直到整个下载完成。

从这个过程中,我们可以看到,Tracker服务器是整个BT下载的灵魂,文件可以不存在,但是Tracker服务器却不能不存在。要是连不上它,BT下载根本没法启动,因为你无从知道,找谁索要文件。就是由于这个原因,Tracker服务器成为了版权组织打击的重点。他们的想法很明确,只要除 掉了Tracker,BT下载就完了。他们的理由是,虽然Tracker本身不传递内容,但是为传播**提供了便利,是犯罪的协助者。更何况,Tracker服务器的网址是公开的,很容易找到它的所有者,逃都逃不掉。

在这种形势下,Tracker提供者的日子都很难过。海盗湾是世界排名第一的Tracker提供者,它已经在被追杀了。排名第二的Demonoid 从今年9月15日起,就一直处于维护状态,不知道何时重新开放。其他的Tracker提供者基本上也是在法律诉讼的阴影下度日。那些不提供Tracker 服务,只提供torrent文件索引服务的网站,比如Mininova、Torrentz、isoHunt,日子稍微好过一点。但是明摆着,版权组织收拾完Tracker以后,就要收拾它们了。比如,今年8月,Mininova就在一场官司中败诉,荷兰法官判决,该网站必须移除所有侵权内容的torrent文件。

2:既然,Tracker服务器在法律上很难立足,那么有没有办法,在不使用Tracker的情况下,依然使用BT下载呢?

2002年,纽约大学的两个教授Petar Maymounkov和David Mazières发表了一篇论文,提出了一种真正去中心化的“点对点”下载模型,他们把它叫做Kademlia方法。Emule率先在软件中支持这种方法,KAD网络就是这样来的。到了2005年,BT软件也开始跟进了。目前,所有主流的BT下载客户端软件都支持这种方法。在BT下载中,这被叫做DHT协议(Distributed hash table,分布式哈希表)。

为什么有了DHT协议以后,就不再需要Tracker服务器了,真正实现了去中心化的点对点下载?

根据我对这个协议有限的理解,它是这样做的:

每一台加入BT下载的计算机,都被称为一个节点(node),有一个自己的ID。这个ID是一个哈希函数值,通过对要分享的文件内容或它的元数据进 行哈希运算而得到。这就是说,如果两台计算机正在下载同一个文件,那么它们的ID应该是彼此相似的。于是,每一台计算机就通过寻找与自己相似的ID,来找 到自己可以与之交换数据的其他节点。

DHT协议的另一个巧妙之处在于,每一台计算机只保留自己附近的一部分节点信息。因此,为了得到更多的节点信息,就必须采用接龙方式,在一个个节点 之间跳跃,逐步得到全网的节点分布图。这种信息获取方式,就保证了整个网络没有单个的中心,即使一个节点下线了,依然可以通过其他节点来获取文件,因此也 就不需要Tracker服务器来告诉你,其他节点在什么地方了。

我对这个协议有一个细节还不是很清楚,我不知道,当BT下载刚刚启动的时候,如何获得第一个外部节点的位置?需不需要有人告诉你,你首先应该去找 谁?如果需要的话,那么这个协议或多或少还是有一个中央服务器的。但是,如果不需要的话,那就真的是纯粹的去中心化的分布式下载协议了。

现在所有主流的BT下载客户端,都支持DHT协议,也就是说,它们都能在没有Tracker的情况下完成下载。事实证明,它们不仅能完成,而且还能 完成得很好!海盗湾和Demonoid的Tracker服务器都已经关掉了,但是如果你使用它们以前的torrent文件,依然能够完成下载。为什么?这 就是DHT协议在发挥作用啊。所以,正是由于DHT可以取代Tracker,海盗湾才会宣布放弃Tracker模式。