第四篇:Tracker 协议
Tracker 是一个基于 HTTP(S) 的服务器,通过 HTTP GET 的方法提供服务。BT客户端通过 HTTP GET 请求,发送上传、下载相关的信息到 Tracker,以助于 Tracker 统计种子的数据信息。请求的返回数据中,包括当前参与该种子上传、下载的伙伴信息列表。
Tracker 的 URL 被包含在种子文件中,即 announce 字段,而请求携带的参数则添加到 URL 的 queryString 中。
注意:二进制参数必须转义为 URL 标准编码格式。这意味着除
[-0-9A-Za-z\._~]
之外的字符都将被转义为形同%nn
的十六进制格式。参考 RFC1738。
Tracker 请求参数说明
- info_hash 种子文件的 info 字段的 SHA-1 校验值。
- peer_id 表示请求者(BT客户端)的唯一 ID,一般是客户端在启动时生成的 20 字节字符串。此值不限制格式,任意二进制值都是可以的。但由于 peer_id 没有相关的产生准则,因此它仅被假定在您的本地计算机上是唯一的。
- port BT客户端 监听的网络端口号,一般是
6881-6889
,当然也可以监听其它的端口。 - uploaded 自上一次向 Tracker 发送
event=start
请求之后,BT客户端 (对于该种子)的总上传字节数,以十进制整数 ASCII 字符串表示。 - downloaded 自上一次向 Tracker 发送
event=start
请求之后,BT客户端 (对于该种子)的总下载字节数,以十进制整数 ASCII 字符串表示。
(未完待续)