BitTorrent(简称BT) 是一个文件分发协议,每个下载者在下载的同时不断的向其他下载者上传已下载的数据。BT协议通过一定的策略保证
上传的速度越快,下载的速度也越快。
BT协议的文件分发系统的构成:
一个Web服务器
一个种子文件
一个Tracker(跟踪)服务器
一个原始文件提供者
一个网络浏览器
一个或多个下载者
BT客户端下载的一个共享文件的过程是:客户端首先解析种子文件,获取待下载的共享文件的一些信息,其中包括Tracker服务器的地址。
然后客户端连接Tracker获取当前下载该文件的所有下载者的IP和端口。之后客户端根据IP和端口连接其他下载者,从他们那里下载文件,同时
把自己已下载的部分提供给其他下载者下载。
共享文件在逻辑上被划分为大小相同的块,称为piece,每个piece的大小通常为256KB,对于共享文件,文件的第1字节到第256K字节为第
一个piece,第256k+1到第512k字节为第二个piece。种子总包含有每个piece的hash值。BT协议规定使用Shal算法对每个piece生成20字节的hash值,
作为每个piece的指纹。每当客户端下载完一个piece,即对该piece使用shal算法计算其hash值,并与种子文件中保存的该piece的hash值进行比较,
如果一直表明下载了一个完整而正确的piece。一旦某个piece被下载,该piece即提供给其他peer下载。在实际上传和下载中,每个piece又被划分为大小
相同的slice,每个slice的大小固定为16KB。peer之间每次传输以slice为单位。
综上所述:BT软件(即BT客户端)主要包含的功能及要点:
解析种子文件获得待下载的文件的一些信息。
连接Tracker获取peer的IP和端口。
连接peer进行数据上传和下载。
对要发布的提供共享文件制作和生成种子文件。