BitTorrent(简称BT)是一个文件分发协议,每个下载者在下载的同时不断地向其他下载者上传已下载的数据。它是属于一个应用层的协议。
基于BT协议的文件分发系统由以下几个实体构成:
- 一个web服务器
- 一个种子文件
- 一个Tracker服务器
- 一个原始文件提供者
- 一个网络浏览器
- 若干个下载者
web服务器上保存着种子文件。种子文件又称为元文件或metafile,它保存了被共享文件的一些信息,如文件名、大小、Tracker服务器地址,种子文件以.torrent为后缀。Tracker服务器保存着当前下载某共享文件的所有下载者的IP和端口。原始文件提供者提供完整的共享文件供其他下载者下载。种子文件就是提供者使用BT客户端生成的。每个下载者通过运行BT客户端软件下载共享文件。某个下载者本身称为客户端,其他下载者称为peer。
下载过程:客户端首先解析种子文件,从中获取待下载的共享文件的一些信息,包括Tracker服务器地址。然后客户端连接Tracker获取当前下载该文件的所有下载者的IP和端口。之后客户端根据IP和端口连接其他下载者,从它们那里下载文件,同时把自己已下载的部分提供给其他下载者下载。
共享文件在逻辑上被划分为大小相同的块,称为piece,每个piece通常为256KB。实际使用中,每个piece又被划分为大小相同的slice,每个sli