打开APP
userphoto
未登录

开通VIP,畅享免费电子书等14项超值服

开通VIP
BitTorrent种子文件格式
 BitTorrent作为一种流行的P2P下载软件而被广泛使用.比起其他的P2P软件来,BitTorrent的优点有几点:
  • 下载速度特别快.这是因为BitTorrent的协议设计精妙.
  • 下载内容不会被篡改.BitTorrent使用了RSA SHA1算法来保证文件块的正确性.上传被篡改内容的伙伴会被踢下线.

Bencode编码

Bencode编码是一种简洁的表示数据的方法.它被BitTorrent协议广泛应用.它支持字符串,整数,列表和字典.

字符串:

字符串被如此编码:<字符串长度>:字符串正文.这种表示法没有任何的分界符.
例子:如"8:announce"指"announce".

整数:
整数被如此编码:<i>整数值<e>.可以为负数,如'i-3e'
例子:'i3e' 指 3.

列表:
列表是如此被表示的:<l>BencodeValue<e>,
列表可以用来表示多个对象.
列表内容可以包括字符串,整数,字典,甚至列表本身.
例子:'l4:spam4:eggse' 指 [ "spam",eggs" ]

字典:
字典是一个一对一的映射.它表示了一个主键(必须为字符串)和一个数据项(可以为任何Bencode值)的关系.字典可以用来表示一个对象的多种属性.
字典是如此被编码:<d><bencodedstring><bencodedelement><e>
注意:字典必须根据主键预排序.

Metainfo

BitTorrent下载时,用户必须下载一个.torrent文件.它就是所谓"Metainfofile",里面存储有关于下载内容的announce地址,长度,大小,SHA1杂凑项等内容.它由Bencode编码组成.而且字符串是用UTF-8编码的.
不过在中国,常常使用GBK编码。它由如下几项组成:
  • Info:描述下载内容的信息,是一个字典.有两种可能,一种是"单文件"模式:当BitTorrent只下载一个文件的时候使用.另一种是"多文件"模式,是在下载多个内容的时候使用.两种情况下Info各有不同.
        单文件模式:
  • length:整数,指文件的大小.
  • md5sum:(可选),字符串,含有32字节md5校验码.BitTorrent没有使用MD5而是使用了SHA1作为自已的签名算法.这是为其他P2P软件兼容而设置的可选内容.
  • name:字符串,这是下载文件的名字,纯粹是建议.
  • piecelength:整数,是BitTorrent文件块的大小.
  • pieces:字符串,连续的存放着所有块的SHA1杂凑值,每一个文件块的杂凑值为20字节.
        多文件模式:
  • files: 一个由字典组成的列表,每个字典表示一个文件,字典的键值有如下内容:
    • length:整数,指当前文件的大小.
    • md5sum:(可选),字符串,同单文件模式,指当前文件.
    • path:由字符串组成的列表,每个列表元素指一个路径名中的一个目录或文件名.比如说:"l3:abc3:abc:6abc.txte",指文件路径"abc/abc/abc.txt".
  • name:字符串,BitTorrent下载路径中最上层的目录名
  • piecelength:整数,是BitTorrent文件块的大小.
  • pieces:字符串,连续的存放着所有块的SHA1杂凑值,每一个文件块的杂凑值为20字节.
  • announce:字符串,指向tracker的URL.
  • announce-list:(可选),字典,这是一个对官方协议的扩展,支持"多Tracker".
  • creationdate:(可选),整数,创建日期(UNIX创世纪格式:1970-1-1日00:00UTC到当时的秒数)
  • comment:(可选),字符串,注释
  • createdby:可选,字符串,创建此.torrent文件的BT下载端程序名和版本号
  • encoding:BitComet对Metafile的扩展,一般用来指出不使用utf-8而使用gbk.


举一个例子,星球大战:
d8:announce34:http://tracker.ydy.com:86/announce10:createdby13:BitComet/0.5813:creationdatei1117953113e8:encoding3:GBK4:infod6:lengthi474499162e4:name51:05.262005.StarWarsEpisode IV A New Hope-Rv9.rmvb10:name.utf-851:05.26.2005.StarWasEpisode IV A NewHope-Rv9.rmvb12:piecelengthi262144e6:pieces36220:XXXXXXXXXXXXXXX(SHA1杂凑值)
表示了如下信息:
Tracker地址 : http://tracker.ydy.com:86/announce
被BitComet/0.58创建
创建时间:1970-1-1 00:00秒后1117953113秒.即Sun Jun  514:31:53 2005.
encoding是BitComet的扩展,实际上用了UTF-8就不需要GBK.
  • info: (这是单文件模式的代表)
  • 大小:474499162(452Mb)
  • 文件名:05.262005.Star Wars Episode IV A New Hope-Rv9.rmvb
  • name.utf-8:也是BitComet的扩展,指出文件名编码不是GBK而是UTF-8.
  • 文件块大小:262144字节(256KB)
  • pieces:长度为366220的SHA1杂凑值内容,由于每一个文件块20字节SHA1杂凑值,可见文件块有36620 / 20 =1831个
本站仅提供存储服务,所有内容均由用户发布,如发现有害或侵权内容,请点击举报
打开APP,阅读全文并永久保存 查看更多类似文章
猜你喜欢
类似文章
【热】打开小程序,算一算2024你的财运
BT协议分析
浅入浅出BitTorrent协议 | Azard的博客
BitTorrent协议
怎样使用BT下载(1)
BT下载没种了,怎么办?
BT下载步步通 5分钟摸清BT底细(图解)
更多类似文章 >>
生活服务
热点新闻
分享 收藏 导长图 关注 下载文章
绑定账号成功
后续可登录账号畅享VIP特权!
如果VIP功能使用有故障,
可点击这里联系客服!

联系客服