前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >互联网种子下载那些事

互联网种子下载那些事

作者头像
程序那些事儿
发布2023-03-07 13:30:13
2710
发布2023-03-07 13:30:13
举报
文章被收录于专栏:程序那些事儿

背景

我们都知道我们经常访问的互联网是非对称的,就是我们有着很高的下载速度,但是却有着很低的上传速度。因此当很多人下载同一个地址的文件的时候,由于带宽的限制,就会导致每个人的下载速度很慢,这个时候,聪明的软件开发人员就想出了一个解决办法,那就是对等网络。

对等网络:

把一个大文件分割成许多小的文件块,每个人在下载的时候下载不同的文件块,当你下载好一个文件块的时候,你本身就会把你下载的文件块上传给其它的下载者,这样其它人就会从你这里下载文件块,而不是都去服务器去请求每个小文件块,理论上,下载的人数越多,我们下载的文件越快,这就是分享的好处,越分享越快乐。

种子文件

提到这个,老司机都会嘿嘿嘿,那么究竟什么是种子文件呢?它是什么结构呢?它都包含什么内容呢?

种子文件就是包含一个下载文件的相关信息,具体内容如下:

  • 文件的SHA1值,校验传输的正确性
  • Tracker地址,用来记录文件服务器地址
  • 文件夹和文件名以及结构
  • 扩展信息,比如其它下载地址,作者信息等

从上面可以看到,我们的种子其实就是告诉了我们从哪里去下载,下载后的文件结构是怎样的,下载后怎样验证文件是否正确。

下载过程

当我们拿到种子之后,我们如何进行下载,下载的过程是怎样的呢?

当我们拿到种子之后,我们会请求Tracker服务器,服务器会告诉我们有哪些人在下载这个文件,然后会把他们的IP发送给你,收到IP之后,你就会和他们进行沟通,他们会把他们下载好的文件片段发给你,然后你下载好一个片段之后,也会把它发给其它人,经过这样的过程,你们的整个文件就会都下载好了。

但是这里有个问题,那就是如果不凑巧,下载文件的就只有你自己怎么办呢?还记得我们说的种子的扩展信息吗?那里面会有文件的服务器下载地址,当只有你一个人的时候,或者说你是第一个下载文件的人的时候,你会从那里下载整个文件,当然,如果又不凑巧,那个服务器还坏掉了,那么你当然只会看到你的下载进度条一直显示为0。

这里面还要说明的一点就是p2p(peer to peer)的好处,那就是如果提供下载的服务器坏掉了,但是有些人已经下载好了这个文件,那么我们就可以从其它人那里下载这个文件,其实这就是分布式下载的好处,把文件多处存放,避免了一处服务器坏掉,整个文件都不能下载了。

分布式哈希表(DHT)

我们使用种子下载文件,都是需要连接tracker进行查找下载的,一旦tracker被封或者挂掉,我们自然就无法进行继续下载,这个时候分布式哈希表出现了,它是一种只需要在网络上提供一串文件ID和储存在本地的K桶数据即可高效的找到需要下载的文件的,通过它资源的发布者和传播者也只需要分享这40个16进制的数字即可,也就是我们常见的磁力链接,足够简单、方便和隐私。

福利

我们都知道平时我们使用某雷下载的时候,经常会遭遇到资源被封,或者速度受限制,这个时候大部分可能是因为tracker被限制导致的,而一个文件理论上有很多个tracker,只要我们多提供几个tracker,我们的下载速度就会大幅提升,而如何寻找tracker,只要你去搜索引擎搜索,或者去github去查找,你就会找到的。

本文参与 腾讯云自媒体同步曝光计划,分享自微信公众号。
原始发表:2020-03-04,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 程序那些事儿 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 背景
  • 种子文件
  • 下载过程
  • 分布式哈希表(DHT)
  • 福利
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档