也说“下载”
1. BitTorrent协议
1.1 简介
BitTorrent协议(简称BT,俗称比特洪流、BT下载)是一个网络文件传输协议,它能够实现点对点文件分享的技术。比起其他点对点的协议,它具有多点对多点的特性,该特性简而言之即为:下载一文件的人越多,且下载后,并继续维持分享(上传)的状态就可以成为可让其他人下载的种子文件(.torrent),该文件即下载速度越快。该技术由美国的程序员布莱姆·科亨于2001年4月时发布,并于2001年7月2日时首次正式应用。
普通的HTTP/FTP下载使用TCP/IP协议,BitTorrent协议是架构于TCP/IP协议之上的一个P2P文件传输协议,处于TCP/IP结构的应用层。 BitTorrent协议本身也包含了很多具体的内容协议和扩展协议,并在不断扩充中。
根据BitTorrent协议,文件发布者会根据要发布的文件生成提供一个.torrent文件,即种子文件,也简称为“种子”。
种子文件本质上是文本文件,包含Tracker信息和文件信息两部分。Tracker信息主要是BT下载中需要用到的Tracker服务器的地址和针对Tracker服务器的设置,文件信息是根据对目标文件的计算生成的,计算结果根据BitTorrent协议内的Bencode规则进行编码。它的主要原理是需要把提供下载的文件虚拟分成大小相等的块,块大小必须为2k的整数次方(由于是虚拟分块,硬盘上并不产生各个块文件),并把每个块的索引信息和Hash验证码写入种子文件中;所以,种子文件就是被下载文件的“索引”。
下载者要下载文件内容,需要先得到相应的种子文件,然后使用BT客户端软件进行下载。
下载时,BT客户端首先解析种子文件得到Tracker地址,然后连接Tracker服务器。Tracker服务器回应下载者的请求,提供下载者其他下载者(包括发布者)的IP。下载者再连接其他下载者,根据种子文件,两者分别告知对方自己已经有的块,然后交换对方所没有的数据。此时不需要其他服务器参与,分散了单个线路上的数据流量,因此减轻了服务器负担。
下载者每得到一个块,需要算出下载块的Hash验证码与种子文件中的对比,如果一样则说明块正确,不一样则需要重新下载这个块。这种规定是为了解决下载内容准确性的问题。
一般的HTTP/FTP下载,发布文件仅在某个或某几个服务器,下载的人太多,服务器的带宽很易不胜负荷,变得很慢。而BitTorrent协议下载的特点是,下载的人越多,提供的带宽也越多,下载速度就越快。同时,拥有完整文件的用户也会越来越多,使文件的“寿命”不断延长。
1.2 相关概念
- Tracker:收集下载者信息的服务器,并将此信息提供给其他下载者,使下载者们相互连接起来,传输数据(这里有一个tracker服务器地址列表)。
- 种子:指一个下载任务中所有文件都被某下载者完整的下载,此时下载者成为一个种子。发布者本身发布的文件就是原始种子。
- 做种:发布者提供下载任务的全部内容的行为;下载者下载完成后继续提供给他人下载的行为。
1.3 影响
由于占大部分的BT下载都是歌曲或影片,尤以后者为多。举个例子,一集电视剧的大小约200至300MB,而电影则是几百MB至几GB(1GB=1024MB),在以前没有BT技术前,要下载这些类影片是颇困难和花时间的。因此BT的发展使互联网用户下载影片的数量大大增加。除了下载本地的歌曲影片外,用户同时也能下载其他国家地区的歌曲影片,一些在其他国家播放的电视剧或综艺节目,次日BT网站已能提供下载。所以BT的发展也促使互联网用户更加快地能接触到其他国家的影视,而不需等待自己国家购买回来播放或出版VCD/DVD才能看。这样使用户多了选择,不需只跟随本地电视台或电影院播映什么,就只看什么。同样地,他们的偶像也渐渐由本地化转为国际化,以中港台为例,年轻人追棒的偶像越来越多是来自其他国家,如日本、韩国等。而这或多或少和他们能通过BT下载其电视电影,更快和更多地接触外地信息娱乐有关。
BitTorrent对于大型文档和自由软件如Linux、FreeBSD的发布帮助也很大。对于发布数百MB以至数十GB的文件时,如Fedora的光盘镜像格式档,BitTorrent的使用能大大减低服务器的数据流量从而减低发布的成本。另外,一般有新版本软件推出时,服务器必定人山人海,使用BitTorrent也能大大减低繁忙时间服务器的负担。
1.4 争议
海盗湾(The Pirate Bay,缩写:TPB)是一个专门存储、分类及搜索Bittorrent种子文件的网站,并自称“世界最大的BitTorrent tracker(BT种子服务器)”,提供的BT种子除了有自由版权的收集外,也有不少被著作人声称拥有版权的音频、视频、应用软件与电子游戏等,为网络分享与下载的重镇之一。
树大招风,正是由于BT下载与数字版权之间的争议问题,海盗湾可谓饱经风折。海盗湾曾多次被警察取缔,其位于斯德哥尔摩的服务器也曾因而移往荷兰,但后来又因荷兰政府的压力而回到了瑞典,因此在2007年著名的私人国家西兰公国刊注销售广告待价而沽时,海盗湾便计划筹资买下,以创建没有版权法、属于他们的理想国度。不过西兰公国并没有回应海盗湾的出价,所以海盗湾计划改以买下其他的小岛作为替代方案。2012年3月18日,海盗湾官方博客又发表声明,声称正在试验一个“低空轨道服务器站(LOSS)”计划。将作为服务器的微型计算机、远程无线电发射设备放置在由GPS控制的无人飞机上,发射至离地几公里的空中,以逃避政府的打击(假设个服务器容易吗??o(╯□╰)o)。文章还声称,终有一天会把服务器发射至太空,以遍布整个银河系,真正成为无坚不摧的的系统。
这时你可能会想,海盗湾在中国怎么样呢,看看她的logo你就知道了,“你认识上面那个图标吗?”,“不认识”。当然,她被挡在墙外了。
关于BT下载,美国最高法官波特斯图尔特:“传输文件的行为根据相关法律法规不能算是使用了文件,正如一栋公寓的大业主为了所有租户的利益而架设天线的行为不是播放节目一样。”
下面是摘抄自阮一峰博客中的一段话:
“我本人一直是海盗湾、BT下载,乃至整个开放源码运动的坚定支持者,从来没有动摇过。(参见我的旧文《比尔.盖茨和理查德.斯托曼》。)”
“我并不是在说我支持盗版,而是在说我支持知识的分享。全世界有那么多海盗湾的支持者,我相信其中大多数人都有同样的想法:目前的版权制度收费太高,阻碍了知识的传播,已经背离了鼓励原创者的初衷,而成为了大公司高额垄断利润的来源。”
“我从心底里相信,虽然海盗湾有一些与现行版权法不相容的地方,但是从根本上说,它是一项正义的和建设性的事业,是对全人类有益的,象征着技术变革的方向。海盗湾的存在,会让世界变得更好,而不是更坏(也许目前的版权法就能起到这个作用)。”
2012年4月,有五千多名艺术家参与到该网站的艺术家推广计划中,一一将自己被选中的艺术作品发布在海盗湾的首页上,将自己推广给全球海盗湾的所有用户,以增加自身的名气。
2. 磁力链接(Magnet URI)
2.1 什么是磁力链接(Magnet URI)?
简单的说:类似下面这样以“magnet:?”开头的字符串,就是一条“磁力链接”
【magnet:?xt=urn:sha1:YNCKHTQCWBTRNJIV4WNAE52SJUQCZO5C】
在网页中,“磁力链接”的下载按钮,通常具有类似下面这样的图标
确切的说:
磁力链接(Magnet URI),主要用于识别能够通过点对点技术下载的文件。这种链接是基于文件内容来识别文件,而不是基于文件的位置或者名称的。更确切地说,它是通过文件的散列函数值来识别的。
由于磁力链接是基于文件内容或者元数据而不是位置的,磁力链接可以被认为是一种统一资源名称(Uniform Resource Name,URN),而不是更常见的统一资源定位符(Uniform Resource Locator,URL)。尽管磁力链接可以被其他应用程序使用,但是它的主要用途还是在点对点技术方面,因为其可以定位不在稳定主机上的资源。
这就类似生活中消费品包装上常见的条码。不同的是这个“数字指纹”可以被任何人从任何文件上生成,这也就注定了“磁力链接”不需要任何“中心机构”的支持(例如:BT Tracker服务器),且识别准确度极高。
因此任何人都可以生成一个Magnet链接并确保通过该链接下载的文件准确无误。
2.2 磁力链接(Magnet URI)扮演什么角色?
在传统的BT下载方式中让各个下载者之间相互联系,有2种途径:
1、通过连接BT种子中记录的BT Tracker服务器,获取下载者列表
2、利用BT种子中记录的“数字指纹”通过DHT网络进行搜索,获取下载者列表
不过现实是,存活的BT Tracker服务器越来越少。而BT种子文件也需要服务器保存。我们假设BT Tracker服务器被干掉了,BT种子文件服务器也被干掉了。。那么显而易见的是第1种途径完全走不通,第2种途径只能帮你“寻找”,却没办法知道你在寻找什么。“磁力链接”的主要作用就是把“数字指纹”告诉DHT(Distributed Hash Table)网络,你需要寻找什么。
磁力链接最常见的用途是基于文件内容的散列函数值来链接到特定文件,生成一个唯一的文件识别符, 类似于ISBN。不像常规的识别符,内容散列可以被任意一位持有此文件的人生成,所以并不需要一个中心机构,这使其在文件共享领域经常被用作搜索条件,因任何人都可以分发一个磁力链接来确保该链接指向的资源就是他想要的,而和得到该资源的方式无关。(虽然技术上讲,两个不同的文件可能具有相同的散列值,但实际上这是极不可能发生的)
另一个磁力链接的优势是开放性和跨平台性:一个磁力链接可被运行在几乎所有平台上的应用程序们使用以下载一个文件。因为磁力链接十分简洁且为纯文本格式,所以用户可以很方便地将其复制到电子邮件或即时消息中,比如BitTorrent种子。
2012年2月14日,据美国科技博客Mashable报道,全球最大文件共享网站海盗湾从2012年2月29日起将不再提供BT种子下载,全面转向磁力链接。“在决定停止提供BT种子后,近期我们的一大举措将在2月29日实施,届时我们将停止提供所有BT种子下载。”海盗湾在其博客中宣布。不过这并不意味着BT种子索引服务的关闭,只是从BT种子服务转向磁力链接,后者可使得用户下载到实际的BT种子。这意味着用户开启下载需要花费更长时间,特别是流行度较低的文件。一旦BT种子恢复,下载就和平常下载一样。磁力链技术将大幅降低海盗湾资源的大小,备份160万余下载种子仅90M大小。使得资源的转移与恢复更加容易。
作者:beanmoon
出处:http://www.cnblogs.com/beanmoon/
本文版权归作者和博客园共有,欢迎转载,但未经作者同意必须保留此段声明,且在文章页面明显位置给出原文连接。
该文章也同时发布在我的独立博客中-豆月博客。