作者:@老铁的最新号外
No.247 - 常说的BT下载、磁力链接、ed2k都是什么?
内容方向:Win11更新推送动态、App软件工具应用、Excel实操技巧教程 。
正 文
我们经常在网络上下载资源,点一个链接,然后下载一个文件。不知道大家有没有观察过那个下载链接地址,如下:
△ 几种下载链接形式
这里第一条链接代表的是最常见的http/https下载方式,第二条链接代表的是ftp/sftp下载,第三条是P2P下载中的磁力下载方式。
网络资源下载的几种方式:http/https、ftp/sftp、BT、磁力下载、ed2k下载。http/https和 ftp/sftp属于"中心化下载",后面三种下载方式属于"去中心化下载"。
中心化下载,即:文件资源均存储在中心服务器上,所有的客户端的都需要去中心服务器上下载,这种下载方式就是"中心化下载"方式。中心化下载是Client-Server模式,简称:CS模式
去中心化下载:与中心化下载不同,此种下载方式没有提供文件资源的中心服务器,网络中的所有参与的节点既可以作为客户端进行文件的下载,也可以作为服务器进行文件的上传。去中心化下载是Peer to Peer模式,简称P2P。没错,这里的P2P就是下载里常说的P2P下载,P2P是一种下载模式,并非具体的下载方式。
下面具体说一下每种下载方式。
▍①HTTP下载
http下载是最常见的一种下载方式。因为文件资源放在WEB服务器上,所以所有的客户端都需要向服务器发送请求。http下载方式就是简单的:客户端 - 服务器。可以想象,如果请求数量过多,而服务器的上行带宽是有限的,就会造成下载速度变慢。http下载的链接地址样式如上图的第一个地址。
HTTP与下面的FTP下载方式不同:http是单向系统,只是将数据从WEB服务器传输到客户端。只建立数据连接。适合传输较小的文件。
△ HTTP下载方式
▍②FTP下载
FTP:File Transfer Protocol,即:文件传输协议。FTP下载和HTTP下载一样,也是中心化下载,基于的是客户端-服务器(C/S)模型设计的。只是与HTTP下载不同,使用FTP协议进行文件传输时,会建立两个连接(数据连接+控制连接),FTP适合传输较大的文件,FTP在进行文件传输时会进行身份验证,这一点HTTP是没有的。
FTP下载在链接地址中会以:ftp开头,而HTTP下载是以http或者http开头。
△ ftp和http在链接地址上的不同
△ ftp是一个双向系统
△ 电影网站中的ftp下载链接
▍③BT下载
BT:Bit Torrent,中文名:比特流,是P2P文件传输协议。对于传统下载方式(HTTP,FTP)来说,下载人数越多,下载的速度就会越慢,前面说了,因为服务器的上行带宽不可能是无限的。那要如何去解决下载速度的瓶颈?采用BT下载的方式,就可以解决。
BT下载是P2P下载模式其中的一种,这里的P2P(Peer to Peer)并非金融上的P2P,而是指数据传输不再通过服务器,网络用户可以直接进行数据传输的一种对等网络。P2P模式中无中心服务器,网络中的每个节点即可以作为客户端进行下载,也可以作为节点服务器提供给他人下载。这种下载方式的特点是文件下载的人数越多,下载的速度就越快。
△ HTTP/FTP下 载(左) - BT下载(右 )
BT下载过程解析:
下载者会先得到一个.torrent的种子文件。"种子文件"本质上是一个文本文件:由Tracker信息和文件信息两部分组成。
其中Tracker(译:追踪者)信息就是在整个BT下载过程中非常重要的Tracker服务器的信息。包含Tracker服务器的地址和服务器相关的设置。而文件信息对应的是我们需要下载的文件的相关信息,包含文件块的大小,块索引,Hash验证码等。
下载者使用BT客户端软件进行下载,BT客户端会先对torrent文件进行解析,得到Tracker地址,根据地址连接到Tracker服务器。Tracker服务器会返回信息告知下载者,该文件其他下载者(此时其他下载者作为服务器)的IP地址。下载者根据ip地址连接"其他下载者",下载者之间相互交换对方没有的文件块。在BT下载过程中,每个文件块的下载都会有验证和对比,确保数据下载的准确性。
在整个下载过程中,没有中心化的WEB服务器介入,全程点对点,用户对用户,只有一个Tracker服务器提供其他用户的ip地址。传统下载方式中服务器上行带宽的压力,在BT下载中不存在。参与下载的用户自行解决。
▍④磁力下载
BT下载有其优势,也有缺点。文件传输不经过中心化的服务器,无法进行管控,文件的安全性没有保障,盗版和非法的文件横行。BT下载遭到打压。而对于BT下载来说只需要将Tracker服务器关掉就可以阻断下载。
虽然BT下载是去中心化下载,但Tracker服务器还是一个中心化的环节。有没有一种方法,可以延续P2P下载的优势,还能不需要Tracker服务器这类中心化的组件,答案是:有,DHT网络技术。
解释DHT技术:
解析磁力链接:
△ 磁力链接解析
磁力链接的工作流程:
当我们点击某个磁力链接地址,然后在某个下载软件sw中打开。sw会实例化一个DHT节点并加入,将磁力链接中的40个字符提取并处理得到20字节的infohash,向距离该infohash最近的几个节点发送get_peers请求,得到节点回复的peers列表,sw软件会实例化一个BT客户端并向这些peers请求下载种子文件。得到种子文件,其中如果包含tracker,就像BT下载那样下载数据。如果其中不包含Tracker,那其中会有真正资源的node列表,则会向这些node节点发送下载请求,下载资源。
举例:
你问A要C的微信,A不知道,但是A认识B,你问B要,B知道C的微信,这样你就顺利拿到了C的微信。
通过以上的内容不难发现,磁力下载方式,并不是取代BT种子文件的下载方式。只是在没有Tracker服务器的情况下,通过DHT网络找到种子文件进行下载,DHT的作用是将所有节点变成Tracker服务器。
▍⑤ed2k下载
ed2k:eDonkey2000.NETwork,一种分布式文件共享网络,文件基于P2P原理存放在用户的电脑上,客户端程序连接到这个网络来共享文件。共享文件夹中的的文件会生成ed2k链接,其他人通过该链接就可以拿到共享文件夹中的文件。
ed2k常见的客户端:eDonkey2000,eMule,VeryCD等。
edek的客户端说白了,其实是一个共享软件。而BT和磁力下载对应的是下载软件。
ed2k链接:
ed2k://|file|<文件名>|<文件大小>|<文件Hash>|/
例如:ed2k://|file|eMule0.49c.zip|2868871|0F88EEFA9D8AD3F43DABAC9982D2450C|/
▍Tips:
① windows11 & 10正式版、预览版-纯净原版iso镜像---> 公众号回复:windc6 或者 windc68
② Windows软件、工具、浏览器插件、图片壁纸---> 公众号回复:wincmd68 。