P2P协议实验说明.docVIP

  1. 1、本文档共8页,可阅读全部内容。
  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文档。上传文档
查看更多
P2P协议实验说明.doc

P2P协议实验说明 使用平台: 修订日期:2010年8月 一、BT协议介绍: BitTorrent 是一种分发文件的协议。它通过URL来识别内容,并且可以无缝的和web进行交互。它基于HTTP协议,优势是:如果有多个下载者并发的下载同一个文件,那么,每个下载者也同时为其它下载者上传文件,这样,文件源可以支持大量的用户进行下载,而只带来适当的负载的增长。(注:因为大量的负载被均衡到整个系统中,所以提供源文件的机器的负载只有少量增长) 一个BT文件分布系统由下列实体组成:一个web服务器,一个静态的“元信息”文件(torrent文件),一个跟踪(tracker)服务器,种子提供站点及终端下载者。 理想的情况是多个终端用户在下载同一个文件。 要提供文件共享,那么一台主机需要执行以下步骤: 1、运行一个 tracker服务器(或者,已经有一个tracker服务器在运行了也可以); 2、运行一个web服务器,例如apache,或者已经有一个web服务器在运行了; 3、在web服务器上,将文件扩展名.torrent 和MIME类型 application/x-bittorrent关联起来(或者已经关联了); 4、根据 tracker服务器的 URL 和要共享的文件来创建一个“元信息”文件(.torrent); 5、将“元信息”文件发布到web服务器上; 6、在某个web页面上,添加一个到“元信息”文件的链接; 7、运行一个已经拥有完整文件的下载者(被成为’origin’,或者’seed’,种子); 要开始下载文件,那么终端用户执行以下步骤: 1、安装 BT(或者已经安装); 2、访问提供 .torrent 文件的web服务器; 3、点击到 .torrent 文件的链接(译注:这时候,bt会弹出一个对话框); 4、选择要把下载的文件保存到哪里?或者是一次断点续传; 5、等待下载的完成; 6、结束bt程序的运行(如果不主动结束,那么bt会一直为其它人提供文件上传)。 各个部分之间的连通性如下: 网站负责提供一个静态的文件,而把BT辅助程序(客户端)放在客户端机器上。 Trackers从所有下载者处接收信息,并返回给它们一个随机的peers的列表。这种交互是通过HTTP或HTTPS协议来完成的。 下载者周期性的向tracker登记,使得tracker能了解它们的进度;下载者之间通过直接连接进行数据的上传和下载。这种连接使用的是 BitTorrent 对等协议,它基于TCP。 Origin只负责上传,从不下载,因为它已经拥有了完整的文件。Origin是必须的。 元文件和tracker的响应都采用的是一种简单、有效、可扩展的格式,被称为bencoding,它可以包含字符串和整数。由于对不需要的字典关键字可以忽略,所以这种格式具有可扩展性,其它选项以后可以方便的加进来。 Bencoding格式如下: 对于字符串,首先是一个字符串的长度,然后是冒号,后面跟着实际的字符串,例如:4:spam,就是“ spam” 整数编码如下,以 ‘i’ 开始,然后10进制的整数值,最后以’e’结尾。例如,i3e表示3,I-3e表示-3。整数没有大小限制。I-0e是无效的。除了 i0e外,所以以0起始的整数都无效。I0e当然表示0。 列表编码如下,以’l’开始,接下来是列表值的编码(也采用bencoded编码),最后以’e’结束。例如:l4:spam4:eggse 表示 [‘spam’, ‘eggs’]。 字典编码如下,以’d’开始,接下来是可选的keys和它对应的值,最户以’e’结束。例如:d3:cow3:moo4:spam4:eggse,表示{‘cow’:’moo’,’spam’:’eggs’},而d4:spaml1:al:bee 表示 {‘spam’:[‘a’,’b’]}。键值必须是字符串,而且已经排序(并非是按照字母顺序排序,而是根据原始的字符串进行排序)。 元文件是采用bencoded编码的字典,包括以下关键字: announce tracker的服务器 info 它实际上是一个字典,包括以下关键字: Name:一个字符串,在保存文件的时候,作为一个建议值。仅仅是个建议而已,你可以用别的名字保存文件。 Piece length:为了更好的传输,文件被分隔成等长的片断,除了最后一个片断以外,这个值就是片断的大小。片断大小几乎一直都是2的幂,最常用的是 256k(BT的前一个版本3.2,用的是1M作为默认大小)。 Pieces:一个长度为20的整数倍的字符串。它将再被分隔为20字节长的字符串,每个子串都是相应片断的hash值。 此外,还有一个length或files的关键字,这两个关键字

文档评论(0)

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

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

1亿VIP精品文档

相关文档