From BitTorrent to Firewall
服务器能做什么?在 Awesome-Selfhosted 里可以找到上百种答案。如果带宽不算太小的话,那么 BT 下载是个不错的尝试。借着 No Time to Die 的上映我开始重温 007 系列,从皇家赌场到幽灵党,在服务器上的下载体验是很好的。 BitTorrent 在此之前,我基本上把 BT、种子、磁力、迅雷下载当成同一种东西。下载电影?先找种子或者磁力链接,打开迅雷下载,然后视速度决定要不要开个会员。 实际上这完全曲解了 BT 下载。 首先 BitTorrent 是一种网络协议。还记得计算机网络一开始就提到过除了 C/S 架构之外,还有 P2P(Peer-to-peer),也就是网络中的各个节点都扮演了同等的角色,既是客户端也是服务器。BT 基于 P2P 实现了去中心化的文件分享,让网络数据的传输不再仅限于服务器的能力,而是共享带宽,每个人下载的同时也在上传,所以越多人参与速度就越快。 类似于 HTTP 和 FTP,BT 也是基于 TCP/IP 的一种应用层协议。基本上它是这么运作的: 我有一部电影,想把资源分享到网络,要先提供一个种子文件 种子文件实际上就是个文本文件,里面主要记录两部分信息 Trackers: 就是 Tracker 服务器的地址,这个服务器不是用来下载资源的,而是用于获取其他 Peers 的联系方式 Files: 一个视频文件会被(逻辑)划分为很多个虚拟分块,每块的索引和验证码都包含在这里 接下来我把种子文件发布出去,等待别人下载 这时候有人获取到种子了,于是开启了 BT 客户端下载 客户端先解析种子文件中的信息,找到 Tracker,然后询问有哪些 Peers 因为是第一个下载者,所以 Tracker 告知 Peer 目前只有我,也就是发布者...