转自:http://blog.chinaunix.net/uid-14408083-id-2814554.html
鉴定
BitTorrent是由 布莱姆·科恩设计的一个端对端(peer to peer)文件共享协议,此协议使多个peers通过不可信任的网络的文件传输变得更容易。
目的
此规范的目的是详细介绍 BitTorrent 协议规范 v1.0 。Bram 的协议规范网站 http://www.bittorrent.com/protocol.html 简要地叙述了此协议,在部分范围缺少详细的行为阐述。该文档使用清楚明确的措辞书写,希望它能够成为一个正式的规范,当然也可用于将来实现和讨论的基础。
此文档旨在由 BitTorrent 开发社区维护和使用。欢迎大家为它做贡献,其中的内容仅代表当前协议,但它已经被目前许多存在的客户端实现所采用。
应用范围
本文档适用于 BitTorrent 协议规范的第一版(v1.0)。目前,这份文档应用于 torrent 文件结构规范、peer wire协议规范和Tracker HTTP/HTTPS 协议规范。如果某个协议有了新的修订,请到对应页面查看,而不是在这里。
(译者注:在本文档翻译过程中,如果遇到没有对应标准翻译的术语,一律不予翻译,例如torrent,peer,tracker等)
约定
为了简明和准确地表达信息,在本文档中,使用了许多约定。
- peer v/s 客户端(client):在本文档中,一个peer可以是任何参与下载的 BitTorrent 客户端。客户端也是一个peer,尽管 BitTorrent 客户端运行在本地机器上。本规范的读者可能会认为自己是连接了许多peer的客户端。
- 片(piece) v/s 块(block):在本文档中,片是指在元信息文件(metainfo file)中描述的一部分已下载的数据,它可通过 SHA-1 hash 来验证。而块是指客户端向peer请求的一部分数据。两块或更多块组成一个完整的可以被验证的片。
- 实际标准(defacto standard):粗斜体文本指出一个规则在许多不同的BitTorrent客户端实现中如此通用,以致于该规则被当做是一个实际标准。
(译者注:peer一般译成“端”,所以p2p应该翻译成端对端,但这并没有一个标准的译法,因此在本文中不作翻译,同时译者应该将peer to peer和数据链路层的点对点协议(也缩写成p2p)区分开)
B编码(Bencoding)
B编码是一种以简洁的格式描述和组织数据的方法。支持下列类型:字节串、整数、lists和dictionaries。
字节串(byte strings)
字节串按如下方式编码:<以十进制ASCII编码的串长度>:<串数据>
注意:字节串编码没有开始和结束分隔符。
例:4:spam表示字节串“spam”
整数
整数按如下方式编码:i<以十进制ASCII编码的整数>e
开始的“i”与结尾的“e”分别是开始和结束分隔符。可以使用如“i-3e”之类的负数。但是你不能把“0”放到数字的前面,如“i04e”。另外,“i0e”是有效的。

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容,请联系我们,一经查实,本站将立刻删除。
如需转载请保留出处:https://51itzy.com/kjqy/52663.html