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