B T 协议分析 支持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 客户机的运行过程
图2 显示了BT 协议的