首页 > 编程知识 正文

迅雷9下载种子后是php,迅雷下载php文件怎么打开

时间:2023-05-05 11:45:16 阅读:113291 作者:2067

-文本稿-

如果我想下载不存在的剪辑的视频怎么办?

最简单的方法当然是找有资源的兄弟——羊,让他发这个视频。 在早期的互联网上,大家都这样共享文件,这也存在很多问题。

例如,下载的人越多,每个人分配的带宽就越小,下载速度就越慢。 更危险的是,这次视频是敏感资源,你的兄弟们本来就不应该分享给你。 羊被抓住了,大家不要下载。

针对这些问题,美国工程师Bram Cohen于2001年发布了BitTorrent协议。 资源不是由一个或一个中央服务器提供的,而是所有人都提供给所有人,下载的人越多速度越快。 此模式也称为用户组到用户组(peer-to-peer ),是一种常见的P2P下载。

BitTorrent的核心思想是将文件分成几个小块,以便下载者相互连接。

以这117.3 MB的视频为例,在分成895个128kB的文件块之后,下载第306块的用户a可以与下载第11块的用户b相互交换下载的部分。 参与者越多,相互交换的人越密集,下载速度越快。

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

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

追踪器很重要。 通过追踪器可以找到其他下载者的联系方式。

冷酷的戒指在下载软件中打开种子后,就会开始联系种子文件中内置的跟踪器服务器,告诉跟踪器下载此文件。 服务器会记录你的IP,并将其他正在下载或下载完成的人的IP返回给你。 这样,你们就可以开心地组队下载了。

当然,如果找不到正在下载的人,资源发布者也不在线,就只能以0kb/s秒的速度等待。

可见,Tracker服务是P2P网络的弱点,如果Tracker被关闭或阻止,就找不到伙伴,也很难完成下载。

为了摆脱对跟踪器服务器的依赖,当今最受欢迎的下载方式是“磁性链接”(Magnet URI scheme ),通常是一组这样的神秘代码。

magnet: XT=urn : btih :1 a 427 c 8498 f 72 B9 a 27 FDE 87662 dbeb 6fc 043 fc 47

前面都是标准格式,最重要的是这40个十六进制数字。 无论哪个文件被扔进哈希算法中,都会得到这样的字符串。 40位,十六进制,只有这个文件。 你可以把它当成文件ID。 它有助于我们找到要下载的东西。

磁力链接的本质是每个人都成为小跟踪器,每个人都有动态更新的地址和文件信息。 我找和我联系的10个人,他们再各找10个人,一传十传百,千,万,最后我找zzdxyzzzdxyz默默地找毛巾默默地找毛巾郭冬临郭冬临找羊,我和每只羊在线上

但是,这种人人找人人的方案实际上并不顺利,不仅消耗大量资源,效率非常低,而且还可能反复传播,引起广播灾害。

在这种情况下,必须添加重要信息——的距离。

请注意,这里的距离是逻辑距离,而不是空间距离。

积分来了! 接下来,详细说明磁力链接所使用的DHT网络的构建过程。 有点难,但真的很有趣。 开始吧。

如上所述,每个磁力链接都有一组唯一的文件ID,可以创建2的160次幂组合,即2的(4*40 )。 如果用只有0和1的二进制数表示,则为160个0和1。

每个节点还具有160位0和1字符串作为节点ID。 根据这160位,可以计算节点和节点之间、节点和资源之间的距离。

假设对每只羊发行了文件,就可以计算他知道的节点ID和这个文件ID之间的距离,让他计算出距离最短的节点,然后计算知道的节点和文件ID之间的距离。 重复该过程,就能找到与文件ID距离最短的节点ID,从而使此处存在每只羊提供的下载信息。

这样,下载者也只需找到与文件ID距离较近的节点ID,即可建立连接并开始下载。

但是,这个距离到底是怎么算出的呢?

这就是有趣的地方。 如果使用异或算法计算节点之间的逻辑距离,则相同则为0,不同则为1。

为清楚起见,简化模型,将160位减少到4位。 如果你的节点ID是

0100,目标节点 ID 是 1111,那么你们之间的二进制距离就是 1011,换算成十进制就是 11。

有了距离,我们就可以在一个这样的二叉树里快速查找目标了。

所有可能的节点 ID 都在这棵二叉树上。 4 位数需要分叉 4 次,生成 2 的 4 次方即 16 条路径,每条路径的终点,就是一个节点 ID。

接下来,你作为 0100,就可以拆分这颗二叉树了,从第一次分叉开始,把不包含你的那棵子树拆分,然后在剩下的子树的第二次分叉处再次拆分,直到只剩下你自己。

这样,就拆分出了 4 个子树。

我们在每个子树里选 2 个点,就得到了 4 个 K 桶,呃,不是这个,是这个,K-bucket。

暂停下来想想你就会发现,用异或算法计算 0 号 K 桶和你的距离是 0001,换算成十进制就是1,1 号 K 桶里 2 个点和你的距离是 2-3,以此类推,2 号 K 桶的距离区间是 4-7,3 号 K桶的距离区间是 8-15。

我们刚刚算过,你的节点 ID 0110 和目标 ID 1111 之间的二进制距离是 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 个种子,也足够下载百万亿年直到宇宙终结。

这些天才们的设计,让我们拥有了一个无法被审查和追踪的去中心化网络。这催生了庞大的盗版产业,但也让很多内容有机会避开审查。

因为网站可以被隔离、被拔线、被禁止访问,但种子不会。只要种子不死,那些不存在的音乐图书和视频就还活在互联网上,没有任何人可以毁掉。

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