BITTORRENT协议规范.doc
上传人:sy****28 上传时间:2024-09-13 格式:DOC 页数:21 大小:115KB 金币:14 举报 版权申诉
预览加载中,请您耐心等待几秒...

BITTORRENT协议规范.doc

BITTORRENT协议规范.doc

预览

免费试读已结束,剩余 11 页请下载文档后查看

14 金币

下载此文档

如果您无法下载资料,请参考说明:

1、部分资料下载需要金币,请确保您的账户上有足够的金币

2、已购买过的文档,再次下载不重复扣费

3、资料包下载后请先用软件解压,在使用对应软件打开

BitTorrent协议规范(BitTorrentProtocolSpecification)系列之B编码(Bencoding)-第一部分鉴定BitTorrent是由布莱姆·科恩设计的一个端对端(peertopeer)文件共享协议,此协议使多个peers通过不可信任的网络的文件传输变得更容易。目的此规范的目的是详细介绍BitTorrent协议规范v1.0。Bram的协议规范网站http://www.bittorrent.com/protocol.html简要地叙述了此协议,在部分范围缺少详细的行为阐述。该文档使用清楚明确的措辞书写,希望它能够成为一个正式的规范,当然也可用于将来实现和讨论的基础。此文档旨在由BitTorrent开发社区维护和使用。欢迎大家为它做贡献,其中的内容仅代表当前协议,但它已经被目前许多存在的客户端实现所采用。应用范围本文档适用于BitTorrent协议规范的第一版(v1.0)。目前,这份文档应用于torrent文件结构规范、peerwire协议规范和TrackerHTTP/HTTPS协议规范。如果某个协议有了新的修订,请到对应页面查看,而不是在这里。(译者注:在本文档翻译过程中,如果遇到没有对应标准翻译的术语,一律不予翻译,例如torrent,peer,tracker等)约定为了简明和准确地表达信息,在本文档中,使用了许多约定。peerv/s客户端(client):在本文档中,一个peer可以是任何参与下载的BitTorrent客户端。客户端也是一个peer,尽管BitTorrent客户端运行在本地机器上。本规范的读者可能会认为自己是连接了许多peer的客户端。片(piece)v/s块(block):在本文档中,片是指在元信息文件(metainfofile)中描述的一部分已下载的数据,它可通过SHA-1hash来验证。而块是指客户端向peer请求的一部分数据。两块或更多块组成一个完整的可以被验证的片。实际标准(defactostandard):粗斜体文本指出一个规则在许多不同的BitTorrent客户端实现中如此通用,以致于该规则被当做是一个实际标准。(译者注:peer一般翻译成‘端’,所以p2p应该翻译成端对端,但是这并没有一个标准的译法,因此在本文中不作翻译,同时读者应该将peertopeer和数据链路层的点对点协议(也缩写为p2p)区分开)B编码(Bencoding)B编码是一种以简洁的格式描述和组织数据的方法。支持下列类型:字节串、整数、lists和dictionaries。字节串字节串按如下方式编码::注意:字节串编码没有开始和结束分隔符。例:4:spam表示字节串“spam”整数整数按如下方式编码:ie开始的“i”与结尾的“e”分别是开始和结束分隔符。可以使用如“i-3e”之类的负数。但是你不能把“0”放到数字的前面,如“i04e”。另外,“i0e”是有效的。例:“i3e”表示整数“3”注意:对于这个整数的最大位数规范并没有做出规定,(待译)listslists按如下方式编码:le开始的“l”(l是小写的L,而不是大写的i)与结尾的“e”分别是开始和结束分隔符。lists可以包含任何B编码的类型,包括整数、串、dictionaries和其他的lists。例:l4:spam4:eggse表示含有两个串的lists:[“spam”、“eggs”]dictionariesdictionaries按如下方式编码:de开始的“d”与结尾的“e”分别是开始和结束分隔符。注意键(key)必须被B编码为串。值可以是任何B编码的类型,包括整数、串、lists和其他的dictionaries。键(key)必须是串,并且以排序的顺序出现(以原始串排列,而不是以字母数字顺序)。串采用二进制比较方式,而不是特定于某种文化的自然比较(即既不是按照中文的比较方式,也不是按照英文的排序方式)。例1:d3:cow3:moo4:spam4:eggse表示dictionary{"cow"=>"moo","spam"=>"eggs"}例2:d4:spaml1:a1:bee表示dictionary{"spam"=>["a","b"]}例3:d9:publisher3:bob17:publisher-webpage15:www.example.com18:publisher.location4