基础认知
HTTP/HTTPS 下载
参考地址:http://sqdownd.onlinedown.net/down/bitcomet_setup150.exe
http/https 的资源读取逻辑,本质上都是从服务器拉取资源到本地,不同的是网页内容被渲染到浏览器上,而文件直接放在你的下载目录。
将文件资源放到服务器上,然后由服务器传送到不同的用户机器上,称为 Client-Server Model 简称 C/S 模式,或者叫一对多模式,这是一种中心化的下载模式。
缺点很明显:因为服务器的上行带宽(上传速度)有限,如果同一时刻下载同一文件的用户太多,会影响到下载速度。
正因如此,大容量文件如电影一般不会使用 HTTP 协议进行下载。
FTP/SFTP 下载
参考地址:ftp://4:4@dx.dl1234.com:8006/阿甘正传 BD 双语双字 [电影天堂 www.dy2018.com].mkv
全称 File Transfer Protocol,即文件传输协议。
这个其实跟 http 一样,都为中心化的下载模式。不过看名字也知道,这个是比较专业的下载协议。
项目 | 身份验证 | 压缩传输 | 上传文件 | TCP 双向连接 |
---|---|---|---|---|
ftp | Yes | Yes | Yes | Yes |
http/https | No | No | No | No |
BT 下载
BT(BitTorrent)是用于对等文件共享(P2P)的通信协议,其用于通过因特网分发数据和电子文件,专门为大容量文件的共享而设计。
BT 下载基于对等网络方案(Peer to Peer),它是无中心服务器的对等网络系统,而上文说的 C/S 模式是有中心服务器的中央网络系统,对等网络的每个节点既是客户端,也是服务端。所以用户既可以自己下载文件,也可以上传文件给别人下载。
P2P 方案
性质:
- 它是无中心服务器的对等网络系统,而上文说的 C/S 模式是有中心服务器的中央网络系统。
- 对等网络的每个用户端既是一个节点,也有服务器的功能。所以用户即可以下载文件也可以上传文件给别人。
- 所以它叫用户群对用户群(peer-to-peer)模式。用户越多,下载同一文件的人越多,下载该文件的速度就越快。
BT 下载讲究共享精神,这跟互联网的共享精神一脉相承。所以建议不要限制上传速度。
一般的 BT 客户端程序,默认设置都未对下载速度和上传速度进行限制,这是因为 BT 软件会给上传速度较快的用户优先提供服务,也就是说上传速度越快,下载速度也越快,因此如果你带宽过剩的话,下载时就不要去限制上传速度了。
特点:
- 快。减少了网路传输节点。适合用在类似 VoIP(Voice over Internet Protocol – 基于 IP 的语音传输)等对数据通信实时性要求比较高的应用场合。
- 保护隐私。与有中央服务器的网络系统不同,BT 下载节点能遍布整个互联网,给包括开发者在内的任何人、组织、或政府带来监控难题。
- 减轻服务器压力。如果某公司有新版本软件推出(如魔兽世界游戏更新新版本)时,服务器必定会人山人海,而使用 BT 能大大减轻服务器的负担,节约服务器的购置成本。
下载原理
下载者要下载文件,需要先得到相应的种子文件,然后使用 BT 客户端软件(迅雷、比特彗星等)进行下载。
下载时,BT 客户端首先解析种子文件得到 Tracker 地址,然后连接 Tracker 服务器。Tracker 服务器回应下载者的请求,**提供其他下载者(包括发布者)的 IP **。下载者再连接其他下载者,根据种子文件,两者分别告知对方自己已经有的块,然后交换对方所没有的数据。此时不需要其他服务器参与,分散了单个线路上的数据流量,因此减轻了服务器负担。
下载者每得到一个块(块通常是非顺序下载的),需要算出下载块的哈希值与种子文件中的对比,如果一样则说明块正确,不一样则需要重新下载这个块。这种规定是为了解决下载内容准确性的问题。
关键概念
- 种子:即 .torrent 文件。种子文件本质上是文本文件,包含 Tracker 信息(上面提到的提供其他下载者(包括发布者)的 IP)和文件信息(上面提到的下载块的哈希值`)两部分。
- Tracker 服务器:Tracker 服务器是 BT 下载中必须的角色。一个 BT client 在下载开始以及下载进行的过程中,要不停的与 Tracker 服务器进行通信,以报告自己的 IP 信息,并获取其它下载 client 的 IP 信息。
- 做种:分为两种,第一是你作为首位发布者发布,供给别人下载,这叫原始种子)第二种就是在你完成了 BT 下载任务后不关闭 BT client, 提供上传供别人下载。
磁力下载
参考地址:magnet:?xt=urn:btih:5bd3c5c3ee7e163b9bc4c9decce0fe023a8328e2&dn=zh-cn_windows_11_business_editions_version_21h2_updated_july_2022_x64_dvd_b53f45ba.iso
磁力下载即 Magnet 磁链,传统的 BT 下载由于 Tracker 服务器中心化的问题,导致被毁灭打击。而磁力下载即是使用 DHT 网络技术。
DHT 全称为分布式哈希表(Distributed Hash Table),是一种分布式存储方法。在不需要服务器的情况下,每个客户端负责一个小范围的路由,并负责存储一小部分数据, 从而实现整个 DHT 网络的寻址和存储。使用支持该技术的 BT 下载软件,用户无需连上 Tracker 就可以下载,因为软件会在 DHT 网络中寻找下载同一文件的其他用户并与之通讯, 开始下载任务。
ED2K 下载
参考地址:ed2k://|file|zh-cn_windows_11_business_editions_version_21h2_updated_july_2022_x64_dvd_b53f45ba.iso|5738942464|BE45A723FAA45F111BFF03EDE4DE8F2F|/
eDonkey2000(又称 eDonkey,可缩写为 eD2k,中文一般称电驴,因为 Donkey 在英文中就是驴子的意思)是电驴最早的前身,它是由 MetaMachine 公司开发的一个可跨平台运行于 Windows、Mac OS、Linux 等操作系统的闭源免费的 P2P 文件共享软件。正如它的名字,他是在 2000 年发布的。
eDonkey 的三个部分:
- eDonkey 网络:基于 P2P 的文件共享网络,目前使用最广的文件共享网络之一,后升级为 HDT 网络(下文会提到)
- eDonkey 软件:即 eDonkey 网络客户端,所有可连接 eDonkey 网络的客户端软件的统称。包括 eDonkey2000、eMule(下文会提到)、aMule 等
- eD2k 链接:用于指示 eDonkey 网络上文件的链接。是对文件内容提取出的哈希值。
名称 | 内容哈希方案 | 早期拥有中央服务器时期 | 后期脱离中央服务器时期 |
---|---|---|---|
电驴 | ed2k 链接 | eDonkey 网络 | KAD 网络 |
BT | magnet 链接 | Tracker 网络 | HDT 网络 |
知道更多
eD2k 链接对应的客户端,如 eMule 电骡是共享软件;Magnet 磁链对应的 BT 软件则是下载软件。
- BT 使用的时候,只要你不下载东西你就不会上传;
- eMule 电骡不同,比如,开启 eMule 电骡后,第一件事做的并不是什么下载,而是设置共享目录,该目录中的所有文件,都会实时共享到 eD2k 网络中;
- 目录中共享了的文件都会生成 eD2k 链接,所有人通过相应的 eD2k 链接,都能够拿到你共享的文件,一旦有人下载相应文件,那么你的 eMule 客户端就会上传数据,换言之,你想下载别人的文件,需要别人开着 eMule 客户端。
- eD2k 链接基于文件的,一部电视剧集可能每一集是一个链接;而 BT 链接基于文件夹,一部电视剧集放在一个文件夹里一个链接即可。