首页 > 编程知识 正文

为什么百度网盘bt含违规怎么下载,有一本书装了种子

时间:2023-05-06 18:07:20 阅读:150385 作者:4245

目录BitTorrent协议BitTorrent核心思想BT种子磁力链接(Magnet URI scheme )磁力链接本质DHT网络结构DHT网络结构构建过程构建拆除分子树的过程桶

二进制协议

如果你想下载不存在的敏感资源怎么办?

最简单的方法当然是找个资源雄厚的兄弟,让他跟你共享这些资源。 早期的互联网就是这样共享文件的。

但是,有这样多的问题吗?

1、比如下载的人多了,人均带宽就小了,下载速度就慢了。

2、更危险的是,这些资源是敏感资源,你的兄弟们本来就不应该分享给你。 如果你的兄弟们被捕了,大家也不要下载。

BitTorrent协议由此诞生。

资源由所有人而不是一个或一个中央服务器提供给所有人。 下载的人越多,速度就越快。 此模式称为Peer To Peer (用户组到用户组)。 也就是P2P下载。

BitTorrent的核心思想是将文件分成许多小块,供下载者相互连接。

例如,以120M视频为例,假设被分割成895个128KB的文件块,下载了第306个块的用户a可以与下载了第11个块的用户b交换彼此下载的部分参加者越多,互相交换的人越密集,下载越快。

为此,Bittorrent协议要求资源共享者生成包含下载信息的种子文件。 后缀是. Torrent,这是常说的BT种子。

BT种子文件包含文件的名称、大小、组块文件的大小、哈希值和跟踪服务器地址。

Tracker很重,你可以在Traker上找到其他下载者的联系方式。

当cdhb在下载软件中打开torrent时,它会联系torrent文件中的Traker服务器,告诉Traker它将下载此文件。 服务器会记录下你的IP,并将正在下载或下载完成的其他人的IP返回给你,让你们愉快地组队下载。 当然如果找不到下载中的人,资源发行者也不在线的话,只能以0kb/s的速度等待。

很容易就知道跟踪器是P2P网络的弱点。 如果跟踪器关闭或阻止,就找不到伙伴,下载也很难完成。

“磁力链接”(Magnet URI scheme )是当今最流行的下载方法,用于摆脱跟踪器的依赖性。 通常是这样一串神秘的代码:

magnet: XT=urn : btih : e7fc 73 d 9e 20697 c6c 440203 f 5884 ef 52 F9 e4bd 28链路结构:

管理:协议名称

xt:exact topic的缩写,表示资源的定位点。 BTIH(Bittorrentinfohash )表示散列方法名称,这里也可以使用SHA1和MD5。 此值是文件的标识符,必不可少。

最重要的是,这种40位十六进制字符编码是磁力链接的唯一标识符。

无论哪个文件被扔进散列算法,都会得到这样的一系列字符、40位和十六进制数字,并且只识别这个文件。 简单理解的话,用文件ID就可以找到下载的东西。

磁力链接的本质是把所有人变成小型追踪器。 每个人都有动态更新的地址和文件信息。 我要找我连接的10个人。 他们会再找和他们连接的10个人。 一传十,十传百…我找到了贤惠的西牛。 贤惠的西牛找到了dzdlb。 dzdlb找到了资源发表者。 我和资源主讲人连接了在线。

虽然是DHT网络结构,但这种所有人找所有方案都不太好。 不仅占用了大量的资源,而且效率非常低,还可能重复传播,引起广播灾害。 这里需要追加重要的信息、距离。 这里的距离不是空间距离,而是逻辑距离。 该距离与DHT网络结构有关。

DHT网络结构的构建过程如上所述,各磁力链路具有唯一的文件id(40位16进制的文字),能够生成24*40即2160种组合,如果用仅0和1的2进制来表现,则为160个0和1 每个节点还具有160位0和1字符串作为节点ID。 [这里的节点理解为你的电脑]从这160位开始,可以计算节点和节点之间、节点和资源之间的距离。

假设贤惠的西牛发行了文件,则可以计算出他知道的节点ID和该文件ID的距离,在计算出距离最短的节点后计算知道的节点ID和文件ID的距离,重复该过程(递归调用) 在这里保存贤惠的西牛提供的下载信息。 这样,下载者只要找到最接近文件ID的节点ID,就会建立连接并开始下载。

怎么计算距离? 在kademlia网络中,采用异或算法计算节点间的逻辑距离,值越小表示越近。

相同的是0,不同的是1。 例如0和0是相同的,变成0。 0与1不同,是1。 1和1相同,变为0。

为了便于理解,将160位减少到4位。 假设你的ID为0100,目标节点为1111,那么你们之间的二进制距离为1011。 换算成十进制的话

1 * 23 0 * 20 1 * 21 1 * 20=11

有距离就可以在二叉树中快速寻找目标。

4位数为分支4次,即24、16条路径。 每个路径的终点是节点ID。

接下来,作为0100,可以分割这两个

叉树了。

拆分子树的过程

1、 从第一个分叉开始,把不包含你的那部分子树拆分

2、 然后在剩下的子树中再次拆分

3、重复步骤2,直到只剩下你自己

桶的构建

从上述结果中看出,你就可以拆分出4棵子树
在拆分好的子树中,每个子树中选2个点,就得到了4个K桶。


刚才算过,你距离目标文件的距离是1011,即是11,也就是说离1111(目标文件)最近的肯定是3号K桶里的2个节点。接下我们可以去联系这两个节点,让他们来找1111(目标文件)。

以1110为例,它也可以拆分出4棵子树

得到4个K桶

计算1110和1111之间的距离0001,即距离为1。即在0号K桶。1111(目标文件)就在这里。

这种网络结构就叫DHT,分布式哈希表。一个高宽容度的去中心化网络。
只需要一串文件ID和存储到本地的K桶数据,你就可以高效地找到要下载的文件,而资源的发布者和传播者也只需要分箱40个字符串就好,足够简单、方便、隐私。

在真实的DHT网络,每个K桶至少记录了8个节点,任何一个节点的下线,都不会影响整个网络的运行。作为文件和节点ID,2160也足够大,达到全地球70亿人,每秒下载10000个种子,也足够下载百万亿年直到宇宙终结。

总结

这些天才的设计,让我们拥有了一个无法被审查和追踪的去中心化网络,这也催生了很多盗版产业,但也让很多内容有机会避开审查,因为网站可以被隔离,被拔线,被禁止访问,但种子不会。只要种子不死,那些不存在的敏感资源,就还活在互联网上,没有任何人可以毁掉。

版权声明:该文观点仅代表作者本人。处理文章:请发送邮件至 三1五14八八95#扣扣.com 举报,一经查实,本站将立刻删除。