BitTorrent 下载

BitTorrent 简称 BT ,由开发者 Bram Cohen 于 2001 发布。BT 是一套互联网上的 P2P 的文件分享协议,也就是我们口头上说的”变态下载“。

去中心化的下载

BT 最大的特色是去中心化。网络上是没有服务器和客户端的区别的,我的客户端就是他人的服务器。

BT 可以说是比特币出现之前,使用最为广泛的去中心化,或者叫 P2P 应用了。每个安装了 BT 客户端的计算机都是网络上的一个 peer ,自己下载文件的同时,也上传数据,为他人提供该文件的下载。注意,本文中所说的上传,不是上传到某个服务器上,而只是上传到网络的其他正在下载这个文件 peer 上。

对比大家都去一个服务器上下载的方式,去中心化下载有明显的带宽利用率优势,下载的人越多,反而下载速度越快。

基本原理

下面说说 BT 的底层原理。

如果我有一个文件需要让大家去下载。我就会把文件切割成很多大小一致的小碎片,这些小碎片会扩散到 BT 网络的不同 peer 上。下载的时候是不需要考虑碎片顺序的,并且不管何时下载中断,后续的断点续传都不是问题。

但是为了让下载者能够找到这些小碎片,他需要首先得到一个 .torrent 文件,可以去一些网站上去自己找,也可以让朋友 email 过来。这些 .torrent 文件中包含了被下载文件的文件名,各个碎片哈希,碎片排列顺序,以及哪些 IP 的 peer 上保存了这些文件碎片等信息。因为文件是通过哈希进行查找的,所以下载完成后,可以直接用哈希校验的方式来保证文件碎片的完整性,保证没有数据损坏。

这就是基本的工作原理了,核心是 .torrent 文件。

操作步骤

要动手下载视频或者音乐文件,可以 follow 下面几个步骤。

第一,用户需要在自己的电脑上安装 BT 客户端。 BT 本身是一套协议,所以也有不同的客户端,μTorrent 和迅雷都是知名的客户端。

第二,去找 .torrent 文件,专门的分享 .torrent 的网站都做不大,因为涉及版权问题。不过自己搜搜,总能找到的资源的。

第三,除了 .torrent 文件,客户端还可以接受磁力链接来开始下载。磁力链接的本质是帮助计算机找到 .torrent 文件,所以就不需要先下载 .torrent 文件,然后再下载对应的文件了。

基本上就是这三步了。

总结

这就是 BT 的简单介绍了。作为 P2P 软件的始祖之一,它的很多技术被当成了当代 P2P 网络的默认规范,所以学习区块链的朋友很值得学习一下 BT 。另,BT 创始人 Bram Cohen ,现在也在做区块链,可以去网上听听他对区块链技术的很多理解。

参考: