Blog/content/Network-download-1.md
2025-01-21 19:11:02 +08:00

30 KiB
Raw Blame History

+++ title = "Network的艺术:下载技术的历史" date = 2024-02-09

[taxonomies] tags = ["网络艺术"] +++

前言 下载就是将我们所需要的文件数据通过网络从拥有该文件资源的计算机上传输过来并保存到我们的计算机上供我们使用。本系列将详细讲述各种常见网络下载技术的原理包括HTTP,FTP,BT等等。

下载技术的历史可以追溯到计算机网络的早期发展阶段。以下是下载技术的一些历史里程碑:

早期网络时代1960s - 1980s 在计算机网络的早期阶段下载技术并不像今天这样普及。主要的网络是由军方和学术机构使用的封闭网络例如阿帕网ARPANET。在这个时期文件通常通过物理介质如磁带、磁盘或纸带传输而不是通过网络进行下载。

BBS时代1980s - 1990s 随着电子通信的发展出现了电子公告板系统BBS。BBS是一种允许用户通过拨号访问的系统用户可以在BBS上发布和下载文件。下载文件的过程通常是通过模拟调制解调器将文件从BBS服务器下载到个人计算机上。

Internet时代的起步1990s 1990年代初随着互联网的普及出现了许多文件下载协议和工具。其中最知名的是FTP文件传输协议它允许用户通过网络下载文件到自己的计算机上。FTP是早期互联网上常用的文件传输方式之一但它需要用户在计算机上安装专用的FTP客户端软件。

万维网时代的兴起1990s 随着万维网World Wide Web的诞生HTTP超文本传输协议成为了互联网上最流行的协议之一。HTTP允许用户通过标准的Web浏览器直接从Web服务器上下载文件。这一时期也出现了许多下载管理器和加速器例如IDMInternet Download Manager用于提高文件下载的速度和管理。

P2P文件共享时代2000s至今 P2P点对点文件共享技术允许用户直接从其他用户的计算机上下载文件而不是从中央服务器下载。著名的P2P协议包括BitTorrent和eDonkey等。这些技术使得文件下载更加分布式并且提供了更高的下载速度和可靠性。

流媒体下载和订阅服务2000s至今 随着互联网带宽的增加视频和音频流媒体下载成为主流。诸如Netflix、Spotify和Apple Music等订阅服务提供了通过互联网访问大量内容的途径用户可以通过流媒体服务下载并观看/收听内容,而无需等待完全下载。

一.HTTP 下载

HTTP全名 HyperText Transfer Protocol,超文本传输协议。 HTTP协议是一种无状态的、应用层协议用于传输超文本数据如HTML、图片、音视频等。

HTTP下载的基本原理

  1. 浏览器请求用户在浏览器中点击下载链接或按钮时浏览器会向服务器发送HTTP请求请求下载指定的文件。

  2. 服务器响应服务器收到下载请求后会根据请求中的信息找到对应的文件并将文件内容打包成HTTP响应发送给客户端。

  3. 传输过程:一旦浏览器接收到服务器的响应,就开始从服务器下载文件。这个过程可以简单地分为以下几个步骤:

    • 建立连接浏览器与服务器之间建立TCP连接。
    • 请求文件浏览器发送一个GET请求请求下载文件的内容。
    • 接收文件服务器将文件以HTTP响应的形式发送给浏览器。
    • 下载文件:浏览器接收到文件数据,逐步将其存储到本地硬盘中的临时文件中。
  4. 下载完成:一旦文件的所有数据都被下载到本地,浏览器就会将临时文件转移到用户指定的下载文件夹中,完成文件的下载过程。

在整个HTTP下载过程中浏览器会根据服务器返回的HTTP响应头中的一些信息来确定如何处理下载文件例如文件类型、大小、以及是否支持断点续传等。此外如果用户使用的是下载管理器或浏览器插件这些工具还可以提供更多的下载管理功能如多线程下载、下载加速、断点续传等。

当我们点击一个链接时,浏览器会检查链接指向的目标是什么类型。如果是浏览器支持的类型,比如一个 HTML 文件,也就是另一个网页,则会跳转到新页面。

如果是不能直接由浏览器打开的文件类型,比如一个 EXE 格式的软件包这时就会调用浏览器的下载机制开始下载。如果装有下载工具的浏览器插件浏览器则会将下载任务转交给下载工具进行等待一段时间下载完成之后这个文件就会出现在我们的下载文件夹中。这就是最基本的下载HTTP 下载。

二.拨号上网

上世纪 90 年代,中国互联网的发展初期,在当时计算机上网只能通过电话线路,经由调制解调器来进行,因此称作拨号上网。

拨号上网的基本原理:

  • 调制解调器Modem:在拨号上网时,计算机通过调制解调器将数字数据转换成模拟信号发送到电话线路上,以及接收从电话线路传来的模拟信号并将其转换成数字数据。调制解调器是连接计算机和电话线路的关键设备。

  • 拨号过程用户在计算机上设置拨号连接输入拨号号码通常是ISP提供的拨号号码计算机通过调制解调器拨号建立连接。拨号过程中调制解调器会发送一系列信号给拨号接入点以建立与网络服务提供商ISP的连接。

  • 网络连接一旦拨号成功计算机与ISP的服务器建立起网络连接。在拨号过程中计算机会获取到一个IP地址这个IP地址是计算机在网络上的唯一标识符用于进行数据传输。

  • 数据传输:一旦网络连接建立,计算机就可以通过调制解调器在电话线路上发送和接收数据。数据传输可以是双向的,用户可以浏览网页、发送电子邮件、下载文件等。

  • 电话和上网的冲突:在拨号上网的过程中,电话线路和上网信号不能同时传输,如果在上网过程中接听电话,网络连接会中断。这是因为电话和上网信号共用同一条电话线路,无法同时传输。

  • 断线重连如果网络连接因为电话中断或其他原因而中断用户需要重新拨号连接到ISP的服务器继续上网。这种中断和重连过程是拨号上网时常见的情况。

拨号上网的速度较慢,且容易受到电话和上网信号冲突的影响,因此在宽带互联网普及后逐渐被淘汰。

当时的网费不是按年收取的,而是与打电话一样按时计费,费用大约为每小时 20 元,而且这还是房地产未爆发之时的 20 元。

当时最高网速为 56 kbps也就是 7 KB/s一首 MP3 音乐大约为 4 M需要下载 10 分钟。但如果是一个红警 2 的游戏,约 200 M那就需要下载 8 小时。8 小时的网费 160 元,而一张盗版光盘只需要 5 元。因此,虽然光盘现如今已经被沉入了历史长河,但它依然留存在老一代游戏玩家心中,是他们无法抹去的一份美好记忆。

下载时间长、网费贵,最要命的是电话信号和上网信号不能并行传输,接听来电会中断网络传输,然后你就必须重新下载。

三.断点续传

拨号上网的电话和网络不能同时进行的致命问题,在几年后随着 ADSL 宽带技术的出现,得以解决。但这并不是说,下载就不再会被中断了。电话是不怕了,但死机、停电、软件崩溃、服务器当机等等,还有无数种暂停下载的情况。

断点续传的基本原理:

  • HTTP Range和Content-Range头字段为了支持断点续传HTTP 1.1标准在1999年引入了Range和Content-Range头字段。这些字段允许客户端指定要请求的文件的特定范围并且允许服务器指定响应的内容的范围。

  • 客户端支持下载工具需要能够识别并利用HTTP Range头字段。当下载中断时下载工具会将已经下载的部分保存到本地硬盘上同时记录下已下载的字节数和文件的URL等信息。

  • 中断处理如果下载过程中出现网络中断或其他原因导致下载中断下载工具会保存当前已下载的部分并在下次恢复下载时利用HTTP Range头字段向服务器发出请求请求从中断处继续下载。

  • 服务端支持服务器需要能够处理带有Range头字段的请求并能够正确响应所请求的文件的特定范围。服务器根据客户端请求的字节范围返回相应部分的文件内容并且在响应头中包含Content-Range字段指示所返回的文件部分的范围和总大小。

  • 续传合并:一旦下载工具完成对剩余部分的下载,它会将先前保存的部分和新下载的部分合并成完整的文件。这通常涉及到文件操作,如将两个文件的内容按顺序拼接到一起。

然而要实现断点续传客户端和服务器双方都必须支持相关的HTTP头字段和逻辑否则无法进行断点续传。

四.多线程下载

互联网早期,上网用户少,但内容提供商更少。因此提供下载的网站一般都是满带宽运行的。而且在晚上的高峰期,能分给每个用户的带宽就更少了。因此大多数用户的下载速度都很低,远低于自己的网络带宽,这对于按时计费的上网环境来说,就是一种极大的浪费。因此人们又希望能有一种可以提升下载速度的方法。

多线程下载Multi-threaded Download是一种通过同时启动多个下载线程来加快文件下载速度的技术。以下是多线程下载的基本原理:

  • 并行下载在开始下载任务时下载工具会同时启动多个下载线程每个线程负责下载文件的不同部分。例如如果设定了5个下载线程那么下载工具会将文件分成5个部分每个线程负责下载其中的一部分。

  • 断点续传每个下载线程都利用断点续传技术向服务器发出请求并在HTTP请求中指定自己要下载的文件的起止位置。服务器根据这些请求返回相应的文件部分而不是整个文件。

  • 并行下载过程:各个下载线程同时下载文件的不同部分,因此可以充分利用网络带宽资源,加快文件的下载速度。由于每个线程独立工作,所以它们之间互不影响,即使某个线程下载中断,其他线程仍然可以继续下载。

  • 文件合并:当所有下载线程都完成了各自部分的下载后,下载工具将这些部分按顺序合并成完整的文件。这通常是在本地文件系统中进行的简单文件操作,将各个部分的内容按顺序写入到一个文件中。

  • 提升下载速度:多线程下载技术可以有效地提升文件的下载速度,尤其是对于大文件或者带宽较小的网络连接。通过利用多个下载线程同时下载文件的不同部分,可以充分利用网络带宽资源,加快文件的下载速度。

多线程下载技术的出现极大地改善了用户在互联网上下载文件的体验使得用户可以更快地获取所需的文件内容。许多下载工具如网络蚂蚁、FlashGet、IDM等都采用了多线程下载技术为用户提供了更高效的下载服务。

五.FTP 下载

FTPFile Transfer Protocol即文件传输协议是一种用于在计算机之间传输文件的标准网络协议。它提供了一种简单而有效的方式允许用户从一个主机FTP服务器下载文件到另一个主机客户端或上传文件到服务器。

以下是FTP协议及其下载原理的详细说明

FTP协议基础

  • 工作模式FTP使用客户端-服务器模式,客户端向服务器发出命令并接收服务器的响应来进行文件传输。

  • 端口FTP使用TCP协议服务器默认监听端口为21用于控制连接数据传输则使用动态端口通常是20

  • 认证用户需要通过用户名和密码进行身份验证才能连接到FTP服务器。

  • 命令和响应FTP客户端通过发送命令到服务器来执行各种操作例如列出目录、下载文件、上传文件等。服务器接收到命令后执行相应的操作并向客户端发送响应。

FTP下载原理

FTP下载的基本原理涉及以下几个步骤

  • 建立连接客户端向服务器发送连接请求服务器响应并建立控制连接。控制连接用于发送FTP命令和接收服务器响应。

  • 身份验证客户端发送用户名和密码进行身份验证。一旦验证通过客户端可以开始执行FTP命令。

  • 浏览文件客户端可以使用FTP命令浏览服务器上的文件和目录结构例如LIST命令用于列出目录内容。

  • 选择文件客户端通过FTP命令选择要下载的文件例如RETR命令用于从服务器下载文件。

  • 建立数据连接:在下载文件之前,客户端需要与服务器建立数据连接。数据连接用于实际传输文件内容。

  • 下载文件:一旦数据连接建立,服务器开始向客户端发送文件内容。客户端接收文件数据,并将其保存到本地文件系统中。

  • 关闭连接:文件传输完成后,客户端关闭数据连接,并向服务器发送命令关闭控制连接。

主动模式和被动模式

FTP连接可以使用主动模式Active Mode或被动模式Passive Mode进行数据传输。

  • 主动模式在主动模式下客户端向服务器的数据端口通常是端口20发送连接请求服务器通过控制端口端口21响应并在数据端口上发送数据。

  • 被动模式在被动模式下客户端发送连接请求到服务器的控制端口端口21服务器响应并在一个随机的高端口打开一个监听并将这个端口号发送给客户端。然后客户端连接到服务器的高端口上进行数据传输。

被动模式通常用于避免防火墙问题和NAT设备的限制因为它允许数据连接从服务器向客户端发起而不是从客户端向服务器发起。

安全性

FTP协议最初设计时并没有考虑到安全性因此在传输过程中文件内容以明文形式传输存在安全风险。为了解决这个问题可以通过使用FTP over SSLFTPS或FTP over SSHSFTP等安全扩展来加密传输数据。

六.BT 下载

BT 全称 BitTorrent,一般不翻译,非要翻译的话,那就是“比特洪流”。它一般指基于 P2P 下载机制而设计的一个具体协议。BT 三大客户端µTorrent、qBittorrent 和 Transmissionµ是希腊字母不好输入所以也常写作 uTorrent。

BT下载技术的基本原理

  • 种子文件创建:一个用户想要共享一个文件时,他会创建一个种子文件。种子是一个很小的,大约几十 kB 的,后缀名为 .torrent 的文件。种子内存储有该资源所包含文件的文件名、哈希值和 Tracker哈希值是一个长度几十位不等的16进制数字用于判断一个文件是否因传输过程而损坏或被恶意篡改。其原理可以简单理解为将一个超大数字的每位相加再求余这样以来文件中哪怕有一个字节的变动或增减都会导致对应哈希值的变化。BT 客户端在文件下载完成后会重新计算其哈希值并与种子内保存的哈希值进行比较。如果不同则表示下载过程中出现数据损坏需要重新下载。BT 协议还会对体积较大的文件进行切片处理,从而减小重新下载所需的数据量。

  • 分块文件会被分成一个个固定大小的块通常为256KB或512KB每个块都有一个唯一的标识符。

  • 连接Tracker服务器用户启动BT客户端后首先需要连接Tracker服务器来获取其他参与文件共享的用户信息。Tracker 是一个服务器地址,与 HTTP 下载服务器不同的是,它不保存文件内容,只保存文件的哈希值,和已下载过该文件的所有用户的 IP 地址。也就是说,当你获得一个种子文件,并添加到 BT 客户端之后BT 客户端所做的第一步就是,向种子内保存的 Tracker 服务器询问“哪些人已经下载了这个文件”Tracker 服务器就会将对应的 IP 地址列表,返回给你的 BT 客户端Tracker服务器会返回一份参与文件共享的用户列表称为peer list。

  • 连接PeersP2P 英文全称 Peer To Peer。一般不翻译非要翻译的话那就是“点对点”或“对等”即这种新型下载方式的运作机制。 根据Tracker服务器返回的peer list用户的BT客户端会尝试连接其中的其他用户也称为peer。通过这些连接用户可以请求和发送文件块。

  • 下载块一旦连接到其他用户用户的客户端就会开始请求文件的不同块。客户端会根据需要的块选择合适的peer并向其发送请求。其他peer收到请求后会响应并将相应的块发送给请求者。

  • 上传块用户的BT客户端不仅仅是下载文件也在上传文件。当用户下载了一个块后它也会成为一个可供其他用户下载的资源用户的客户端会将这个块发送给其他请求者。

  • 分块验证:一旦下载完成,客户端会验证每个块的完整性。如果发现某个块不完整或者损坏,客户端会请求相同的块,直到下载到一个完整的块。

  • 做种当一个用户完全下载了文件并且保持BT客户端运行时他就成为了一个seeder种子即可供其他用户下载文件的资源。种子会周期性地向Tracker服务器发送自己的信息以便其他用户找到他并下载文件。

迅雷 迅雷也会从别的 BT 软件那里下载资源,但它拒绝向其共享,它只共享给其他同样使用迅雷的用户。这严重违背 P2P 共享的公平原则,因此迅雷被称为吸血雷。

专用下载链接 最常见的专用下载链接就是迅雷链接 thunder://。其他少见的还有 QQ 旋风的 qqdl:// 和快车的 flashget://。 这种链接的本质是“加密的 http 链接”,发明这种链接的目的是打击竞争对手,并同时给用户制造障碍,让用户不得不使用他们的产品。本来用浏览器就能直接下载的 http 链接,用户还非得先下载一个迅雷。 而它们使用的加密手段极其拙劣,均使用 Base64 进行编码。因此网上有大量下载地址的转换工具,而 Base64 发明的目的是为了让二进制文件,得以用纯文本进行表达,以方便搭配 data URL 将小文件嵌入代码,或者让只支持纯文本,不支持二进制传输的地方得以实现二进制文件的传输。而被这三个家伙用于纯文本到纯文本的加密,一定会让 Base64 的发明者气个半死。

七.PT 下载

PTPrivate Tracker是一种私有的BitTorrent Tracker系统与公开的BitTorrent网络不同它需要用户进行注册和认证才能访问和下载文件。下面是PT下载技术的基本原理

  • 注册和认证用户需要注册一个账户并且经过认证才能够访问PT站点。认证通常包括通过邀请码注册或者通过一定的上传/下载比例限制。

  • 获取种子文件与公开的BitTorrent网络不同PT站点上的种子文件通常需要用户登录后才能够访问和下载。种子文件包含了文件的元数据信息以及Tracker服务器的地址。

  • 连接Tracker服务器用户启动BT客户端后首先需要连接PT站点的Tracker服务器来获取其他参与文件共享的用户信息。Tracker服务器会返回一份peer list。

  • 连接Peers与公开的BitTorrent网络类似用户的BT客户端会根据Tracker服务器返回的peer list尝试连接其他参与文件共享的用户peer

  • 下载块一旦连接到其他用户用户的客户端就会开始请求文件的不同块。客户端会根据需要的块选择合适的peer并向其发送请求。其他peer收到请求后会响应并将相应的块发送给请求者。

  • 上传块与公开的BitTorrent网络类似用户的BT客户端在下载文件的同时也会上传文件。下载的块也会被上传给其他用户。

  • 分块验证:下载完成后,客户端会验证每个块的完整性。如果发现某个块不完整或者损坏,客户端会请求相同的块,直到下载到一个完整的块。

  • 保种保种是PT站点非常重要的概念。用户需要保持下载的文件在客户端中并继续上传给其他用户以维持站点的健康和分享比例。保种也是PT站点会设置上传/下载比例限制的原因之一。

PT 与 BT 的一个较大的区别是PT 会时刻计算每个用户的上传量和下载量,由此来得到每个用户的一个指标“分享率”,分享率过低会被取消使用资格。

因此与 BT 用户的想法“我要多多下载,然后下完就跑” 相比PT 用户的想法则是“你们赶紧下载我的资源吧,我还有一季美剧要追呢”。最终结果就是,大多数 BT 种子都下载不动,而 PT 种子则都可以高速下载。

八.ed2k/电骡/VeryCD/

ed2k 全称 eDonkey2000 即“电驴”,同时也是其协议 ed2k:// 的名称,一般不翻译,非要翻译的话,那就是“电驴链接”。其与 BT 1.0 是同一时期出现且为技术原理相同的软件。ed2k 与 BT 相比它不需要种子文件所有必要信息比如文件名、哈希值、Tracker 地址等信息都编码并保存在这个地址中。唯一的缺点是不能像种子一样保存多个文件,比如用一个种子文件保存整部电视剧的全部剧集或者更夸张的,一个种子保存一万部电影。

2002 年,一个 eDonkey2000 的程序员用户 ,对当时的 eDonkey2000 客户端不满意,并且相信自己能做出更好的 P2P 软件。因此着手开发,并于同年推出了首个版本,他们的软件名为 eMule中文名“电骡”。电骡兼容电驴的 ed2k 网络,并在电驴的基础上增加了许多其他功能。电骡也基于 Kademlia 协议算法,开发了自己的的去中心化网络 “Kad 网络”。但最最重要的一点是,它是开源的,这一点为 ed2k 在国内的普及奠定了基础。

2003 年,国内的两个 P2P 下载爱好者,建立了一个 ed2k 资源分享网站 VeryCD。这个网站一直被认为是国内资源最丰富的网站各种影视、音乐、游戏、软件等资源应有尽有。

2005 年,也就是 BT 2.0 元年在美国唱片协会的状告之下eDonkey2000关闭了网站并停止了软件更新。在关闭前夕其原作者根据 Kademlia 协议算法,开发出了电驴的去中心化 P2P 分享网络 “Overnet”并更新到了 eDonkey2000 客户端的最后一个版本中。这样使得它的软件在网站关闭之后依然可以使用。

2007 年,在开源的 eMule 基础上easyMule诞生了 。对于中文名,他们没有新起,而是尝试强行将自己称作“电驴”。可能是他们觉得电驴已经死了,由他们来继承,或者认为自己是电驴的一个支脉吧。正是这一点,让国内用户对四个英文名 eDonkey、eMule、easyMule、VeryCD 和中文名电驴之间傻傻分不清楚。

2012 年VeryCD被迫下架了其全部资源的 ed2k 下载链接,此后 VeryCD 也逐渐淡出了人们的视野。

九.磁力连接

磁力链是协议名为 magnet: 的下载链接。magnet 是“磁铁”的意思,它在原理和用法上与电驴链接 ed2k:// 几乎是一样的。它允许用户通过简单的URL链接来获取到资源的相关信息而无需下载一个独立的种子文件。

基于Hash值的标识磁力链接是通过资源内容的哈希值来唯一标识的。这个哈希值通常是使用SHA-1算法计算的并且对应着特定资源的唯一标识符。

包含元数据信息磁力链接中还包含了一些资源的元数据信息如文件名、文件大小、文件分块信息等。这些信息通常是经过URL编码的并以一种特定的格式嵌入到磁力链接中。

无需中心化Tracker与传统的Torrent文件不同磁力链接中并不包含Tracker服务器的地址。这意味着用户可以直接通过磁力链接获取到资源相关的peer列表无需依赖中心化的Tracker服务器。

使用DHT网络当用户使用磁力链接时他们的BitTorrent客户端会通过DHT分布式哈希表网络来获取资源的相关信息。DHT网络是一个去中心化的网络允许BitTorrent客户端在没有Tracker服务器的情况下发现其他拥有相同资源的peer。

动态获取信息使用磁力链接下载资源时用户的BitTorrent客户端会动态地从其他拥有相同资源的peer处获取到资源的元数据信息如文件列表、文件大小等。这样用户可以立即开始下载资源而无需等待种子文件下载完成。

随着电驴和 VeryCD 的关闭,以后互联网上的各种资源的下载,会逐渐从 ed2k 全部转向 magnet。磁力链还可以与 BT 搭配使用,也就是为多个文件制作好 BT 种子之后,再为种子文件制作一个磁力链接,这样就可以既享受 BT 种子支持多个文件的优点,又可以享受 ed2k 和磁力链只需要链接,不需要文件的优点。

十.BT 2.0

BT 的文件虽然是分布式存储的,但它们的联络员 Tracker 依然是中心化的,只需要借助法律手段,端掉一个 Tracker 服务器,即可让所有 BT 下载瘫痪。因此为了实现完全的防封禁,必须实现完全的去中心化。

2002 年,美国纽约大学的两位学者,发表了他们的研究成果 Kademlia 协议,并且由 BT 发明者 BitTorrent 客户端,率先于 2005 年支持这种基于 Kademlia 协议的不依赖Tracker 服务器的 BT 技术。随后,其他 BT 客户端也陆续跟进支持,这标志着 BT 进入 BT 2.0 的时代。

BT 2.0下载原理:

  • 分布式Hash表BT 2.0可能会引入分布式Hash表来替代传统的Tracker服务器。DHT 分布式哈希表网络,英文全称 Distributed Hash Table。其原理就是将原来由 Tracker 服务器保存的“文件哈希 - 文件存储位置” 的映射信息分散存储在 DHT 网络的各个节点中并且留有冗余即多份以保证单个节点在关机之后也不会影响文件的查询。分布式Hash表可以使peer更容易地发现彼此减少了对中心化Tracker服务器的依赖。当用户想要下载文件时他们可以通过Hash值查询分布式Hash表获取与文件相关的peer列表。

  • 加密和安全性BT 2.0引入更强大的加密技术来保护数据传输的安全性和用户的隐私。包括对传输数据进行端到端的加密,以及对用户身份进行更严格的验证和认证。

  • 内容验证和真实性BT 2.0引入更多的内容验证机制,以确保下载的文件的真实性和完整性。包括数字签名、哈希验证和数据完整性检查等技术,以防止文件被篡改或损坏。

  • 带宽管理和QoS优化BT 2.0改进带宽管理算法以优化数据传输的效率和性能。包括更智能的下载调度、流量控制和质量of服务QoS机制以确保下载过程中的良好用户体验。

  • 去中心化和匿名性BT 2.0加强去中心化和匿名性方面的功能以保护用户的隐私和匿名性。包括使用Tor网络、区块链技术和匿名代理等以确保用户的下载行为不被追踪或监视。

十一.网盘

网盘,即位于网络上的硬盘。云的概念兴起以后也被一些厂商称为“云盘”.

网盘的概念最早起源于电子邮箱的附件存储.相比本地磁盘有诸多优点,它可以防止重要资料因电脑故障而丢失,可以防止机密数据因电脑丢失而外泄。代替 U 盘和移动硬盘在家里和公司之间共享文件。如果你的网盘是同步盘的话,还免去了频繁的手动上传和下载.

虽然网盘的几T空间看起来很唬人,但对所有用户来说,填充这几 TB 空间的往往是视频资源,而且绝大多数用户均是视频的消费者,也就是从网上下载视频,而不是自己拍摄视频。因此这些视频资源都是高度重叠的。现实情况就是 1000 个用户使用的 1TB 空间,不是占用了 1000TB 的服务器空间,而是 10TB。

十二.离线下载

准确来说,离线下载其实就是其他人替你挂机下载,下载完成后,再传给你。

添加下载任务:用户通过离线下载服务提供的网页或应用程序界面,将需要下载的文件链接或种子链接添加到下载任务列表中。

解析链接:离线下载服务会对添加的下载链接进行解析,提取出其中的文件信息和下载地址。

远程下载:离线下载服务会以其自身的网络连接,从文件来源服务器下载文件。这个过程完全在服务端进行,用户的设备不直接参与下载过程。

存储文件:下载完成后,文件会被保存在离线下载服务的服务器上,而不是用户的本地设备上。用户可以在需要时通过网页或应用程序界面访问和管理这些文件。

提供下载链接:一旦文件下载完成,离线下载服务会生成一个新的下载链接或提供直接的文件下载链接给用户。用户可以使用这个链接来下载文件到自己的设备上。

刚开始使用离线下载的用户,可能会惊叹于离线下载的“秒完成”。这是因为已经有人先于你离线下载过这个资源了,这就是“资源重叠率”。