a我考网

 找回密码
 立即注册

QQ登录

只需一步,快速开始

扫一扫,访问微社区

查看: 70|回复: 0

[综合] 思科辅导:对BitTorrent协议的解释

[复制链接]
发表于 2012-8-3 20:03:30 | 显示全部楼层 |阅读模式
我们都知道BitTorrent协议所支持的软件是进行下载用的。但是这个协议并非只能应用到这个层面。普通的HTTP/FTP下载使用TCP/IP协议,BitTorrent协议是架构于TCP/IP协议之上的一个P2P文件传输协议,处于TCP/IP结构的应用层? BitTorrent协议本身也包含了很多具体的内容协议和扩展协议,并在不断扩充中?   根据BitTorrent协议,文件发布者会根据要发布的文件生成提供一个.torrent文件,即种子文件,也简称为种子?
9 q7 R! n$ g0 j  .torrent文件本质上是文本文件,包含Tracker信息和文件信息两部分?Tracker信息主要是BT下载中需要用到的Tracker服务器的地址和针对Tracker服务器的设置,文件信息是根据对目标文件的计算生成的,计算结果根据BitTorrent协议内的Bencode规则进行编码?它的主要原理是需要把提供下载的文件虚拟分成大小相等的块,块大小必须为2k的整数次方(由于是虚拟分块,硬盘上并不产生各个块文件),并把每个块的索引信息和Hash验证码写入.torrent文件中;所以,.torrent文件就是被下载文件的索引?
- g2 G+ J% t  l( H# E  下载者要下载文件内容,需要先得到相应的.torrent文件,然后使用BT客户端软件进行下载?! E" c$ L% o! |1 Y5 {: @) N
  下载时,BT客户端首先解析.torrent文件得到Tracker地址,然后连接Tracker服务器?Tracker服务器回应下载者的请求,提供下载者其他下载者(包括发布者)的IP?下载者再连接其他下载者,根据.torrent文件,两者分别告知对方自己已经有的块,然后交换对方所没有的数据?此时不需要其他服务器参与,分散了单个线路上的数据流量,因此减轻了服务器负担?+ O0 @8 p! l5 G/ w/ ?4 O$ u
  下载者每得到一个块,需要算出下载块的Hash验证码与.torrent文件中的对比,如果一样则说明块正确,不一样则需要重新下载这个块?这种规定是为了解决下载内容准确性的问题?
1 \( ]" K# c4 `! o2 Y& Y: |( e  一般的HTTP/FTP下载,发布文件仅在某个或某几个服务器,下载的人太多,服务器的带宽很易不胜负荷,变得很慢?而BitTorrent协议下载的特点是,下载的人越多,提供的带宽也越多,种子也会越来越多,下载速度就越快?
7 d0 R% L6 A. B! ~" Y2 W  而有些人下载完成后关掉下载任务,提供较少量数据给其他用户,为尽量避免这种行为,在非官方BitTorrent协议中存在超级种子(super seed)的算法?这种算法允许文件发布者分几步发布文件,发布者不需要一次提供文件所有内容,而是慢慢开放的下载内容的比例,延长下载时间?此时,速度快的人由于未下载完必须提供给他人数据,速度慢的人有更多机会得到数据。
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

Archiver|手机版|小黑屋|Woexam.Com ( 湘ICP备18023104号 )

GMT+8, 2024-5-15 07:05 , Processed in 0.358252 second(s), 21 queries .

Powered by Discuz! X3.4 Licensed

© 2001-2017 Comsenz Inc.

快速回复 返回顶部 返回列表