假如你想要下载一集不具备的回形针视频,你会怎样做?
最复杂的行动虽然是找一个有资本的哥们——每羊,让他把这期视频发给你 。早期互联网,大师便是这么共享文件的,但是这样也有良多题目 。比方下载的人一多,每整体分配到的带宽就变小了,下载速率会变慢 。更屠戮的是,这期视频是机灵资本,你的哥们本来就不理当分享给你,假如每羊被抓了,大师也都别下载了 。
针对这些题目,美国工程师 Bram Cohen 在 2001 年发布了 BitTorrent 协定,资本再也不由一整体或一此中心办事器供应,而是全体人提供应全体人,下载的人越多,速率越快 。这种模式也叫 peer-to-peer(用户群对用户群),也便是我们常说的 P2P 下载 。BitTorrent 的核心思想是把文件分成良多个小块,让下载者相互联接 。
以这支 117.3 MB 的视频为例,被分成了 8九五 个 128kB 的文件块后,下载了第 306 块的用户 A 即大约和下载了第 11 块的用户 B 变迁彼此下载好的全体 。参加的人越多,相互变迁的就越鳞集,下载的越快 。为了做到这一点,BitTorrent 协定需求资本共享者生成一个收罗下载音讯的种子文件,后缀是 .torrent,这便是我们常说的 BT 种子 。
种子文件收罗文件的名字、巨细,分块后每块文件的巨细、哈希值,以及 Tracker 办事器的地点 。Tracker 很重要,通过 Tracker 我们能力找到别的下载者的接洽舆论 。
当你用下载软件打开种子,就会入手下手接洽种子文件里内置的 Tracker 办事器,讲述 Tracker 我要下载这个文件,办事器会记录下你的 IP,并把别的正在下载或下载完成的人的 IP 前去给你,这样你们即大约不快的组队下载了 。虽然,假如没有找到正在下载的人,资本发布者也不在线,你就只能以 0kb/s 的速率等着了 。
不难缔造,Tracker 办事器是 P2P 网络的弊端,假如 Tracker 被封锁或封禁,你就无奈找到搭档,也难以完成下载 。为了摆脱对 Tracker 办事器的委托,第二天最风行的下载舆论是磁力链接(Magnet URI scheme),通常为一串这样的奥密代码:
magnet:?xt=urn:btih:1a427c84九8f72b九a27fde87662dbeb6fc043fc47
后背但凡规范名目,最重要的是这 40 个 16 进制的数字 。任何文件丢进哈希算法都能得到一串这样字符,40 位、16 进制、只属于这个文件 。你大约把它当做一个文件 ID,它能帮我们找到我们要下载的东西 磁力链接的性子是把全体人都变成一个小型 Tracker,每整体都拿着一份静态更新的地点和文件音讯 。我找与我联接的 10 整体,他们再各自找 10 整体,一传十十传百、千、万,结尾是我找到小明小明找老王老王找郭冬临郭冬临找到每羊,我和每羊就连上线了 。但这种全体人找全体人的解决切实不太行,不但占用了大量的资本,服从也稀奇低,另有概略重复传播,组成广播劫难 。
这时候,就需求补救一个关头音讯——隔断 。
当心,这里的隔断,不是空间上的隔断,而是逻辑上的隔断 。重点来了!接下来,我会具体讲明磁力链接独霸的 DHT 网络的创立过程,有一点点难,但是真的稀奇居心思 。让我们入手下手吧 。
刚才说了,每一个磁力链接都有一串唯一的文件 ID,大约发作 2 的 (4*40) 即 2 的 160 次方种组合,用只有 0 和 1 的2进制发挥分析便是 160 个 0 和 1 。而每一个节点也有一串 160 位的 0 和 1,作为节点 ID 。根据这 160 位数,我们大约算计节点和节点之间,节点和资本之间的隔断 。假如每羊发布了一个文件,就能算计他所知道的节点 ID 与这个文件 ID 的隔断,让算出来最隔断最短的节点再算计它知道的节点和文件 ID 的隔断,重复这个过程,就能找到与文件 ID 的隔断最短的一批节点 ID,把每羊供应的下载音讯具备这里 。
这样,下载者也只要找到和文件 ID 隔断濒临的节点 ID,就能树立联接,入手下手下载 。
但这个隔断毕竟是怎样算出来的呢?
这便是幽默的地方了,用异或算法来算计节点之间的逻辑隔断,沟通便是 0,差别便是 1 。
这便是幽默的地方了,用异或算法来算计节点之间的逻辑隔断,沟通便是 0,差别便是 1 。为了恣意你意识,我们简化一下模型,把 160 位扩充到 4 位 。假如你的节点 ID 是 0100,指标节点 ID 是 1111,那末你们之间的2进制隔断便是 1011,换算成十进制便是 11 。有了隔断,我们即大约在一个这样的2叉树里快捷查找指标了 。
全体概略的节点 ID 都在这棵2叉树上 。4 位数需求分叉 4 次,生成 2 的 4 次方即 16 条途径,每条途径的尽头,便是一个节点 ID 。接下来,你作为 0100,即大约拆分这颗2叉树了,从第一次分叉入手下手,把不收罗你的那棵子树拆分,从此在剩下的子树的第2次分叉处再次拆分,直到只剩下你大师 。
这样,就拆分出了 4 个子树 。我们在每一个子树里选 2 个点,就得到了 4 个 K 桶,呃,不是这个,是这个,K-bucket 。停息下来想想你就会缔造,用异或算法算计 0 号 K 桶和你的隔断是 0001,换算成十进制便是1,1 号 K 桶里 2 个点和你的隔断是 2-3,以此类推,2 号 K 桶的隔断区间是 4-7,3 号 K桶的隔断区间是 8-1五 。我们刚才算过,你的节点 ID 0110 和指标 ID 1111 之间的2进制隔断是 1011,换算成十进制是 11,也便是说,离 1111 迩来的,必然是 3 号 K 桶里的 2 个节点 。接下来,我们即大约接洽这两个节点,让他们帮我们找 1111 。
以 1110 为例 。1110 也能拆分出 4 棵子树,得到 4 个 K 桶,算计 1110 和 1111 之间的隔断,结果是 0001,换算成十进制是 1,也便是在 0 号 K 桶,1111 就在这里 。这种网络布局被称为 DHT,散布式哈希表(Distributed Hash Table),一个高旷达度的去中心化网络 。只要求一串文件 ID和存储在外地的 K 桶数据,你即大约高效的找到要下载的文件 而资本的发布者和传播者也只要求分享 40 个数字就好,虚假复杂,恣意和隐私 。
在切实的 DHT 网络,每一个 K 桶至少记录了 8 个节点,任何一个节点下线,都不会影响全体网络的运转 。作为文件和节点 ID ,2 的 160 次方也虚假大,大到全地球 70 亿人每秒下载 10000 个种子,也虚假下载百万亿年直到宇宙落幕 。,这些天才们的打点,让我们拥有了一个无奈被审查和追踪的去中心化网络 。这催生了巨大的盗版财富,但也让良多模式无机会避开审查 。因为网站大约被隔离、被拔线、被禁止会见,但种子不会 。只要种子不死,那些不具备的音乐图书和视频就还活在互联网上,没有任何人大约毁掉 。
文章插图
文章插图
文章插图
文章插图
文章插图
文章插图
文章插图
文章插图
文章插图
文章插图
【用BT种子下载文件有何优势 bt下载种子是什么意思】更多存眷微信公共号:jiuwenwang
推荐阅读
- 三只松鼠股东名单 三只松鼠职位等级
- 美文摘抄600字
- 私募基金内部操盘手培训资料 私募培训
- 中国新型智慧城市企业百强榜单 智慧城市60家企业名单
- 页眉分隔符怎么删除 word页眉的横线怎么去掉
- 什么样的人才适合打瘦脸针啊
- 卸妆油可以当洗面奶用吗?
- 电视剧乔家大院背后的真实历史简介
- 抽了发霉的香烟有什么危害