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

假如你想要下载一集不具备的回形针视频,你会怎样做?
最复杂的行动虽然是找一个有资本的哥们——每羊,让他把这期视频发给你 。早期互联网,大师便是这么共享文件的,但是这样也有良多题目 。比方下载的人一多,每整体分配到的带宽就变小了,下载速率会变慢 。更屠戮的是,这期视频是机灵资本,你的哥们本来就不理当分享给你,假如每羊被抓了,大师也都别下载了 。
针对这些题目,美国工程师 Bram Cohen 在 2001 年发布了 BitTorrent 协定,资本再也不由一整体或一此中心办事器供应,而是全体人提供应全体人,下载的人越多,速率越快 。这种模式也叫 peer-to-peer(用户群对用户群),也便是我们常说的 P2P 下载 。BitTorrent 的核心思想是把文件分成良多个小块,让下载者相互联接 。
【用种子下载文件有何优势 bt下载种子是什么意思】以这支 117.3 MB 的视频为例,被分成了 8九五 个 128kB 的文件块后,下载了第 306 块的用户 A 即大约和下载了第 11 块的用户 B 变迁彼此下载好的全体 。参加的人越多,相互变迁的就越鳞集,下载的越快 。为了做到这一点,BitTorrent 协定需求资本共享者生成一个收罗下载音讯的种子文件,后缀是 .torrent,这便是我们常说的种子 。
种子文件收罗文件的名字、巨细,分块后每块文件的巨细、哈希值,以及 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次分叉处再次拆分,直到只剩下你大师 。