Linux下BT种子解析模块.docVIP

  1. 1、本文档共5页,可阅读全部内容。
  2. 2、有哪些信誉好的足球投注网站(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
  5. 5、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
  6. 6、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们
  7. 7、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
  8. 8、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
Linux下BT种子解析模块

Linux下BT种子解析模块 概要介绍 BT协议的介绍 BitTorrent是一个文件分发协议,每个下载者在下载的同时不断向其他下载者上传已经下载的数据。而在FTP,HTTP协议中,每个下载者从FTP,或HTTP服务器处下载自己所需要的文件,各个下载者之间没有交互。当非常多的用户同时访问和下载服务器上的文件时,由于服务器的处理能力以及带宽限制,下载速度会急剧下降,有的用户根本访问不了服务器。BT协议与FTP协议不同,它的特点是下载的人越多下载的速度越快,其原因在于每个下载者将已下载的数据提供给其他下载者下载,它充分利用了用户的上载带宽。 而Web服务器上保存着种子文件,下载者使用网络浏览器从Web服务器上下载种子文件。种子文件,又成为元原文件或者metafile,它保存了共享文件的一些信息,如共享文档的文件名,文件大小,Tracker服务器的地址。种子文件通常很小,一般1G大小的共享文件,其种子文件不足100KB,种子文件以torrent为后缀。BT客户端下载一个共享文件的开始过程,往就是客户端首先解析种子文件,获取待下载文件的一些信息,其中包括Tracker服务器的地址,然后根据得到的地址连接Tracker服务器,获得peer端信息,最后再在peer之间传送消息和数据。 共享文件在逻辑上被划分为大小相同的块,成为piece,每个piece的大小通常称为256K。对于共享文件,文件的第1字节到第256K字节为第一个piece,第256K+1字节到512K字节被称为第二个piece,依此类推。种子文件中包含有每个piece的hash值。BT协议规定使用Sha1算法对每个piece生成20字节的hash值,作为每个piece的指纹。 B编码的介绍 种子文件和Tracker的返回信息都是经过B编码的,要解析和处理种子文件以及Tracker的返回值,首先要熟悉B编码的规则。B编码中有4中类型:字符串,整型,列表和字典。字符串的编码格式为:字符串的长度:字符串,其中括号中的内容为必须的,例如有一个字符串spam,则经过B编码后为4:spam。 整型的编码格式为:i十进制的整型e,则B编码中的整数是以i作为起始符,以e作为终结符。例如,整数3,经过B编码后为i3e。 列表的编码格式为:l任何合法的类型e,列表以l为起始符,以e为终结符,中间可以为任何合法的经过B编码的类型。例如,列表l4:spam4:eggse表示两个字符串,一个是spam,另一个是eggs。 字典的编码格式为:d关键字值e,字典以d为起始符,以e为终结符,关键字是一个经过B编码的字符串,值可以是任何合法的B编码类型,在d和e之间可以出现多个关键字和值对。例如,d4:spaml3:aaa3:bbbee,它是一个字典,该字典的关键字是spam,值是一个列表,列表中有两个字符串aaa和bbb。 BT种子结构的介绍 种子文件包含了提供共享的文件的一些信息,它以.torrent为后缀名,种子文件也被称为元信息文件或metafile,它是经过B编码的。种子文件事实上就是一个B编码的字典,它包含有以下关键字: announce:tracker服务器的URL(字符串) announce-list(可选):备用tracker服务器列表(列表) creation date(可选):种子创建的时间,Unix标准时间格式,从1970 1月1日 00:00:00到创建时间的秒数(整数) comment(可选):备注(字符串) created by(可选):创建人或创建程序的信息(字符串) info:一个字典结构,包含文件的主要信息,为分二种情况:单文件结构或多文件结构 单文件结构如下: ????????? length:文件长度,单位字节(整数) ????????? md5sum(可选):长32个字符的文件的MD5校验和,BT不使用这个值,只是为兼容一些程序所保留!(字符串) ????????? name:文件名(字符串) ????????? piece length:每个块的大小,单位字节(整数) ????????? pieces:每个块的20个字节的SHA1 Hash的值(二进制格式) 多文件结构如下: ????????? files:一个字典结构 ???????????????? length:文件长度,单位字节(整数) ???????????????? md5sum(可选):同单文件结构中相同 ???????????????? path:文件的路径和名字,是一个列表结构,如\test\test.txt 列表为l4:test8test.txte ????????? name:最上层的目录名字(字符串) ????????? piece length:同单文件结构中相同 ???????

文档评论(0)

qwd513620855 + 关注
实名认证
文档贡献者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档