BT是如何工作的?
目前采用BT协议实现的下载工具,比较有代表性的有:BitTorrent(及继承版本),BitComet,FlashBT等,这些软件都很好的实现了
BT协议,以及有些还实现了DHT协议。
BT的下载是通过下载用户之间的互相下载来实现,一个BT用户可以从多个BT用户那边下载同一个文件的不同片断,同时也将已下载完成的文件片断提供给其他的BT用户下
载。所以,BT用户既是一个下载者,也是一个下载服务提供者。用户首先要到网上下载*.torrent的BT文件,在这个文件里,描述了下载的文件信息,以及BT服务器的信息,包含
服务器的地址,端口等。BT服务器可以是TCP模式,也可以使UDP模式,这些端口都是可以随意可变的。BT下载软件在解析*.torrent文件后,将会连接BT服务器,以获取可以
下载这个文件的其他BT用户信息,并将自己的信息告诉给BT服务器。之后与这些BT用户连接,开始下载。但这里有关键的一步,BT用户必须通过BT服务器获取其他BT用户的
信息。
为了解决不需要BT服务器的问题,BT新的协议中,引入了Kademlia
协议,Kademlia
network简称KAD网络,在BT中叫DHT。DHT采用UDP方式通信,他不需要任何的服务
器协助,只要有其他一个BT用户的信息,就可以通过这个用户获取到其他与这个BT用户相邻的BT用户的信息,同时将自己的信息告诉给这个相邻的BT用户。从而获得整个网络
中在下载这个文件,有这个文件的在线BT用户,并与这些用户连接,完成下载。同时BT软件会启动一个监听端口,等待其他的BT用户来连接,这个BT监听端口是可以用户自己
设定的。所以无法通过防火墙封堵端口来实现对BT的封堵。
eMule(eDonkey)是如何工作的?
eMule/eDonkey中采用的是ED2k协议与BT协议类似,eD2K的服务器维护着所有eD2K用户共享着的文件信息。用户通过服务器获取文件信息和拥有这些文件的用户信息,
并与这些用户连接完成下载,采用TCP方式通信。最初,只有eDonkey一种客户端,后来,在ED2k协议的基础上发展出许多客户端,例如:MLdonkey、BOT、xMul……