、BT协议的工作过程
BT协议主要包括3个部分:.torrent文件的格式、tracker HTTP/HTTPS协议和Peer wire协议(使用TCP)。其中tracker HTTP/HTTPS协议是BT客户机与tracker服务器之间的通信协议,Peer wire协议是BT客户机之间的通信协议。
使用Ethereal跟踪分析下载一个文件的过程中BT协议的具体交互过程,结合BT协议规范,绘制了BT协议各组件的工作时序图(参见图3)。
图3 BT协议各组件的工作时序
3.1 .torrent文件的结构
图4是下载中使用的.torrent文件的一段主要内容,采用了B编码。B编码是一种简洁的数据组织方式,支持4种数据类型:byte strings、integers、lists和dictionaries。integers、lists和dictionaries类型分别以字母i、l、d作为首定界符,以字母e作为尾定界符。byte strings类型不使用首/尾定界符,其格式为<十进制表示的字符串长度>:<字符串>,如4:spam表示字符串“spam”。这4种数据类型嵌套使用构成了.torrent文件的内容。其中,用*号代替空格以便于分析。
图4 .torrent文件的内容
其中的一些主要成份如下:
●announce:tracker服务器的URL,本例中为http://tracker.c