精品文档---下载后可任意编辑支持 BT 协议的 P2P 应用程序很多,如 BitBuddy、FlashBT、BitComet 和 BitSpirit 等,这里以应用程序 BT 为例来分析 BT 协议
本文中的 BT,如其后没有“协议”两字,表示的是 BT 应用程序
BT 由如下几部分组成:
torrent 文件、种子提供站点、目录服务器和内容发布者/下载者
torrent 文件是一个文本文件,包含了 tracker 信息和文件信息两部分
tracker 信息主要是 BT 下载中需要用到的 tracker 服务器的地址和针对 tracker 服务器的设置;文件信息是指将目标文件计算处理后再根据 BT 协议的 B 编码规则网编码后得到的信息
BT 的主要原理是把提供下载的文件虚拟分成大小相等的块,块大小必须为 2Kbyte 的整数次方(由于是虚拟分块,硬盘上并不产生各个块文件),并把每个块的索引信息和 Hash 验证码写入
torrent 文件中,所以
torrent 文件就是被下载文件的“索引”
种子提供站点也就是
torrent 文件的提供站点,为下载者提供
torrent 文件下载服务
目录服务 器记录被下载的文件的索引信息及下载该文件的用户的信息(主要是 IP 地址及端口号)
早期的 BT 协议只支持 tracker(种子发布站)服务器,这种目录服务器是集中式目录与分布式查询的混合型;在 BT 协议的升级版本中,增加了对 DHT(分布式 Hash 表)网络的支持,该网络中目录服务器是分布式的
本文的讨论只涉及 tracker 服务器
内容发布者/下载者是 BT 网络的主体,最终的下载由它们完成
构成 BT 网络的这几部分的相互关系如图 1 所示
图 1 BT 覆盖网络的结构根据 BT 的工作原理,为了分析 BT 协议的交互过程,本文重点关注本地 BT 客户机的运