参考文章:https://www.jianshu.com/p/72b7a64e5be1

http/https 下载

文件从远程服务器上下载,使用 http/https 格式。

FTP(文件传输协议)/ SFTP

文件从远程服务器上下载,使用的是 FTP/SFTP 协议。FTP 要求验证账号密码来验证通信安全。服务器可以使用 Anonymous FTP 来跳过认证环节。

BT

原理

  1. 首先要得到种子文件。
  2. 下载时,BT客户端首先解析种子文件得到 Tracker 地址,然后连接 Tracker 服务器。Tracker 服务器回应下载者的请求,提供其他下载者(包括发布者)的IP 。下载者再连接其他下载者,根据种子文件,两者分别告知对方自己已经有的块,然后交换对方所没有的数据。
  3. 文件是分割成不同的块进行下载的。每个块都能生成一个独一无二的哈希值,这个哈希值与种子文件的哈希值一致,就能保证内容一致。
  4. 下载者每得到一个块(块通常是非顺序下载的),需要算出下载块的哈希值与种子文件中的对比,如果一样则说明块正确,不一样则需要重新下载这个块。这种规定是为了解决下载内容准确性的问题。

特点

没有中心服务器,基于对等文件共享(P2P)的通信协议。

磁力下载

也是基于对等文件共享(P2P)的通信协议,但不需要种子文件。