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 协议的测试环境,其中BT 客户机的IP 地址是 10.10.80.120,使用Wireshark 俘获BT 协议分组的交互过程,Wireshark 版本号为 1.4.1。它们与因特网相连,BT 服务器位于因特网,BT 版本号为1.24。 BT 协议的测试环境 BT 协议主要包括3 个部分:.torrent 文件的格式(现已加密,对非支持BT 协议的软件透明)、trackerHTTP/HTTPS 协议和 Bittorrent 协议。其中 trackerHTTP/HTTPS 协议是BT 客户机与tracker 服务器之间的通信协议,Bittorrent协议是BT 客户机之间的通信协议。下面介绍一下trackerHTTP/HTTPS协议。 BT 客户机依次向.torrent 中的tracker 服务器发送连接请求,以获得正在下载该文件的对等方列表(主...