Total Pageviews

Sunday, 30 December 2012

BT时代正在结束?


海盗湾(the pirate bay)在网站上写了这样一段话
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服务器了,它不会再上线了!它的时代已经结束了。
海盗湾关闭了tracker服务器,立即我们也看到Mininova也在一夜之间删掉了服务上近一百万的种子文件,以后只有通过审查的出版商才可以上传。
想想我们的BT下载有多爽,有他们这样的网站做种子储存索引的服务,想要什么一搜之间都能找到种子文件,然后下载相应的torrent文件。接着,用一个BT下载客户端软件,打开这个文件。这时,客户端软件就会根据torrent文件中的网址,自动连接Tracker服务器,从它那里接收到其他正在下载该文件的人的网址名单。下一步,软件就一一与名单上的网址取得联系,从他们那里获取文件的片段,直到整个下载完成。
但是随着tracker服务器的关闭,Mininova删除种子文件,这些东西一下子全成明日黄花了,而且也说不准其它的torrent索引网站会 坚持到什么时候。版权问题始终是永远的痛,海盗湾已经经历了几年的官司,曾经受到政府,网络运营商的重重封锁,今年尤其多灾多难,但海盗湾依然坚定的提供 服务,像他们这种为了信念坚持的人,他们不会放弃的,只会换个方式重新来战斗。就像他们说的那样,他们认为有更好的技术可以实现下载。
为了比较先来看一下BT下载,从上面的过程可以看到,tracker服务就是整个BT下载的中心,是整个BT下载的灵魂,没有了tracker服务 器,所有的BT下载软件都成了瞎子,不知 道到什么地方去找文件,找谁去要文件。因而tracker服务器也是版权组织打击的重点,因为tracker服务器是公开的,是露在人眼前的靶子,只要 tracker服务器倒了,BT下载也就完了。
没有了中心的tracker,还能下载不?或者说去中心化的下载模式应该是什么样的?
事实上,有“点对点”的模型,2002年,纽约大学的两个教授Petar Maymounkov和David Mazières发表了一篇论文,提出了一种真正去中心化的“点对点”下载模型,他们把它叫做Kademlia方法。Emule率先在软件中支持这种方法,KAD网络就是这样来的。到了2005年,BT软件也开始跟进了。目前,所有主流的BT下载客户端软件都支持这种方法。在BT下载中,这被叫做DHT协议(Distributed hash table,分布式哈希表)。
这种方式应该是这样工作的(可能有些东西还是不清楚,具体可以参考上面给的wikipedia的内容)
每一台加入BT下载的计算机,都被称为一个节点(node),有一个自己的ID。这个ID是一个哈希函数值,通过对要分享的文件内容或它的元数据进 行哈希运算而得到。这就是说,如果两台计算机正在下载同一个文件,那么它们的ID应该是彼此相似的。于是,每一台计算机就通过寻找与自己相似的ID,来找 到自己可以与之交换数据的其他节点。
DHT协议的另一个巧妙之处在于,每一台计算机只保留自己附近的一部分节点信息。因此,为了得到更多的节点信息,就必须采用接龙方式,在一个个节点 之间跳跃,逐步得到全网的节点分布图。这种信息获取方式,就保证了整个网络没有单个的中心,即使一个节点下线了,依然可以通过其他节点来获取文件,因此也 就不需要Tracker服务器来告诉你,其他节点在什么地方了。
所以这些资源并不是因为没有了tracker服务器而没有办法找到,因为有DHT网络的存在,这是一种分布式tracker的方式,不会再有tracker服务器这种中心的东西,因而也不容易被打压,但是一种更灵活的方式,emule一直是这样做的,不是很成功吗?
话说枪打出头鸟,好多tracker服务提供商被追杀,所以还是这种方布式的工作方式好,永远不会受到打压,因为没有一个中心,或者说人人都是中心,只要还有人在用,就会有资源的流通。
就像emule提供的专用ed2k链接一样,现在在海盗湾网站可以看到这样一种链接

看那个磁铁样的链接内容像这样
magnet:?xt=urn:btih:8f69649f7dd159ebb90432df19d14bf7ce7fa719&dn=My+Friends+Tigger+and+Pooh%3A+Bedtime+with+Pooh+-+DVD+1+-+dublat&tr=http%3A%2F%2Fdenis.stalker.h3q.com%3A6969%2Fannounce
大概是这么个意思:

magnet:协议名
xt:exact topic的缩写,表示资源定位点。BTIH(BitTorrent Info Hash)表示哈希方法名,这里还可以使用SHA1和MD5。这个值是文件的标识符,是不可缺少的。
dn:display name的缩写,表示向用户显示的文件名。这一项是选填的。
tr:tracker的缩写,表示tracker服务器的地址。这一项也是选填的。
这样做显而易见的好处是,整个下载网络的可靠性提高了,每一个节点都是可以被替代的。另一个好处是,审查变得更困难了,因为每次下载的路径都是不一 样的,而且每 个节点都是动态变化的,导致实际上无法追踪谁在下载。此外,magnet URI只是一个字符串,非常容易传播,根本无法禁止。
难道说这种分布式的才是下载的未来?