seeds是什么意思 bt下载种子是什么意思(用BT种子下载文件有何优势)

编辑:
发布时间: 2021-03-17 22:39:52
分享:

如果你想下载一个不存在的剪辑视频,你会怎么做?

当然,最简单的方法就是找一个有资源的哥们儿——每只羊,让他把这个视频发给你。早期的互联网,大家都是这样共享文件的,但是也有很多问题。比如下载的人多了,分配给每个人的带宽会变小,下载速度会变慢。更危险的是,这个视频是敏感资源,你的哥们不应该和你分享。如果每只羊都抓到了,就不要下载了。

为了解决这些问题,美国工程师布拉姆·科恩在2001年发布了BitTorrent协议。资源不再由一个人或者一个中心服务器提供,而是由所有人提供。下载的人越多,速度越快。这种模式也叫点对点,也就是我们常说的P2P下载。BitTorrent的核心思想是将文件分成许多小块,这样下载者就可以相互连接。

以这个117.3 MB的视频为例,下载第306块的用户A在被分成895个128kB的文件块后,可以和下载第11块的用户B交换下载的部分。参与的人越多,相互交流越密集,下载越快。为此,BitTorrent协议要求资源共享者生成一个包含下载信息的种子文件,该文件有后缀。torrent,也就是我们常说的BT种子。

种子文件包含文件的名称和大小、每个块的大小和哈希值以及跟踪器服务器的地址。追踪器很重要。只有通过Tracker才能找到其他下载者的联系方式。

当你用下载软件打开种子时,你会开始联系种子文件中内置的跟踪器服务器,告诉跟踪器我想下载这个文件。服务器会记录你的IP,并将正在下载或正在下载的其他人的IP返回给你,让你可以愉快的分组下载。当然,如果没有找到正在下载的人,资源发布者不在线,只能以0 KB/s的速度等待。

不难发现Tracker服务器是P2P网络的软肋。如果Tracker关闭或被禁止,你就找不到同伴,很难完成下载。为了摆脱对Tracker服务器的依赖,今天最流行的下载方式是磁链接,通常是这样一系列神秘的代码:

磁铁:?XT = urn:btih:1a 427 c 8498 f 72 B9 a 27 FDE 87662d beb 6 fc 043 fc 47

都是标准格式,最重要的是这40个十六进制数。任何扔进哈希算法的文件都可以得到一串这样的字符,40位,十六进制,只属于这个文件。你可以把它想象成一个文件ID,可以帮助我们找到想要下载的内容。磁链接的本质是把每个人都变成一个小Tracker,每个人都持有一个动态更新的地址和文件信息。我找了10个和我有联系的人,然后他们各找了10个人,把10万和10万这个词传了出去。最后找到小明,老王,老王,郭,和每只羊一起上线。但是这种人人找人人的方案并不是很有效,不仅占用大量资源,而且效率低下,还可能被重复传输,造成广播灾难。

这时候就需要添加一个关键信息——距离。

就像我刚才说的,每个磁链接都有唯一的文件id,可以生成160个2的组合,也就是2,只有0和1的二进制表示是160个0和1。每个节点还有一串160位的0和1作为节点标识。根据这160位数字,我们可以计算出节点和资源之间的距离。假设每只羊发布一个文件,它可以计算出自己知道的节点ID与文件ID的距离,让距离最短的节点计算出自己知道的节点与文件ID的距离,重复这个过程,找到一批距离文件ID最短的节点ID,将每只羊提供的下载信息保存在这里。

这样,下载器只要找到接近文件ID的节点ID,就可以建立连接,开始下载。

但是这个距离是怎么算出来的呢?

这是有趣的地方,用异或算法计算节点之间的逻辑距离,一样是0,差是1。

这是有趣的地方,用异或算法计算节点之间的逻辑距离,一样是0,差是1。为了便于您理解,我们简化了模型,并将位数从160减少到4。假设你的节点ID为0100,目标节点ID为1111,那么你们之间的二进制距离为1011,十进制为11。有了距离,我们就可以在这样的二叉树中快速找到目标。

所有可能的节点标识都在这个二叉树上。四位数字需要分叉四次才能产生16条2的四次方的路径,每条路径的端点为一个节点ID。接下来,作为0100,可以拆分这个二叉树。从第一个分叉开始,拆分不包含你的子树,然后在剩余子树的第二个分叉处再次拆分,直到只剩下你。

这样,四个子树被拆分。我们在每个子树中选择两个点,得到四个K桶,呃,不是这个,是这个,K桶。当你停下来想一想,你会发现用异或算法计算出来的K桶0和你的距离是0001,小数是1,K桶1和你的两点之间的距离是2-3,以此类推,K桶2和K桶3之间的距离间隔是4-7,K桶3和K桶3之间的距离间隔是8-15。我们刚刚计算出你的节点ID 0110和你的目标ID 1111的二进制距离是1011,换算成十进制就是11,也就是说最接近1111的一定是第三K桶的两个节点。接下来,我们可以联系这两个节点,请他们帮助我们找到1111。

以1110为例。1110还可以拆分四个子树,得到四个k桶。计算1110和1111之间的距离,结果是0001,小数为1,即在k桶中为0,这里是1111。这种网络结构被称为分布式哈希表(DHT),一种具有高容错性的分散网络。只需要本地存储一串文件ID和K桶数据,就可以高效地找到要下载的文件。资源的出版者和传播者只需要分享40个号码,就够简单,方便,私密。

在一个真实的DHT网络中,每个K桶至少记录8个节点,如果有任何一个节点离线,都不会影响整个网络的运行。作为一个文件和节点ID,2的160次方足够大到全世界70亿人每秒下载1万颗种子,也足够下载数万亿年直到宇宙末日。有了这些天才的设计,我们就有了一个无法检查和跟踪的分散网络。这催生了一个巨大的盗版行业,但也给了很多内容一个逃避审查的机会。因为网站可以隔离,可以断开,可以禁止访问,但是种子不行。只要种子不死,不存在的音乐书籍和视频还会活在网络上,谁也破坏不了。

相关阅读
热门精选
孩子 皮肤