Chinaunix首页 | 论坛 | 博客
  • 博客访问: 539276
  • 博文数量: 102
  • 博客积分: 950
  • 博客等级: 准尉
  • 技术积分: 1094
  • 用 户 组: 普通用户
  • 注册时间: 2010-07-28 16:07
文章分类

全部博文(102)

文章存档

2020年(2)

2016年(5)

2015年(15)

2014年(25)

2013年(18)

2012年(19)

2011年(18)

我的朋友

分类: LINUX

2011-05-30 15:15:25

文件分发协议,下载的同时利用上传带宽给其他peer提供数据块(slice=16KB)
通过策略保证上传的越快下载的越快!
 
组成部分:
1. web服务器,保存种子文件
2. 浏览器:从web server下载种子
3. 种子文件:保存了要下载的共享文件的信息,文件名,大小,tracker server address, .torrent
4. Tracker server: 保存当前下载共享文件的下载者ip和端口等信息
5. 原始共享文件提供者:保存完整的共享文件的提供者,种子文件就是由提供者生成的。
6. 一个或多个下载者:通过BT客户端下载共享文件,称为peer
 
BT客户端下载一个共享文件的过程是:
客户端首先解析种子文件获取待下载的共享文件的一些信息,其中包括Tracker服务器的地址
客户端连接Tracker获取当前下载该文件的所有下载者的IP和端口
客户端根据IP和端口连接其他下载者,从他们那里下载文件,同时把自己已下载的部分提供给其他下载者下载。
 
P-to-P
 
peer
 
共享文件逻辑上分成大小相同的块,叫piece,一般256KB,1~256k叫第一个piece,依次类推第二个piece
BT协议用sha1算法对每个piece生成hash值。
在实际下载过程中,每个piece会划分成16KB大小的slice,peer之间用slice传输单位。
 
slice
 
实际过程:
BT客户端解析种子文件-》连tracker server获取peer的ip和端口,通过HTTP协议
BT客户端和其他peer 采用TCP通讯
种子文件和tracker的返回信息采用简单而高效的编码方式编码,叫B编码。bencoding
 
阅读(955) | 评论(0) | 转发(0) |
给主人留下些什么吧!~~