关于BitTorrent协议工作机理的探讨

网络 网络管理
BitTorrent协议的作用就是完成BT下载。那么在下载过程中,协议的流程是如何的呢?是怎样完成下载工作的呢?下面我们就来探讨一下。

相信有网络下载经验的朋友们肯定不会不知道BitTorrent协议。这个协议所支持的就是我们所常说的“BT”下载。那么这个协议的一些基础情况,我们在这里为大家详细介绍一下。其中也包含了它的具体工作原理,希望能让大家了解这部分的内容。

普通的HTTP/FTP下载使用TCP/IP协议,BitTorrent协议是架构于TCP/IP协议之上的一个P2P文件传输协议,处于TCP/IP结构的应用层。 BitTorrent协议本身也包含了很多具体的内容协议和扩展协议,并在不断扩充中。

根据BitTorrent协议,文件发布者会根据要发布的文件生成提供一个.torrent文件,即种子文件,也简称为种子。

.torrent文件本质上是文本文件,包含Tracker信息和文件信息两部分。Tracker信息主要是BT下载中需要用到的Tracker服务器的地址和针对Tracker服务器的设置,文件信息是根据对目标文件的计算生成的,计算结果根据BitTorrent协议内的Bencode规则进行编码。它的主要原理是需要把提供下载的文件虚拟分成大小相等的块,块大小必须为2k的整数次方(由于是虚拟分块,硬盘上并不产生各个块文件),并把每个块的索引信息和Hash验证码写入.torrent文件中;所以,.torrent文件就是被下载文件的索引。

下载者要下载文件内容,需要先得到相应的.torrent文件,然后使用BT客户端软件进行下载。

下载时,BT客户端首先解析.torrent文件得到Tracker地址,然后连接Tracker服务器。Tracker服务器回应下载者的请求,提供下载者其他下载者(包括发布者)的IP。下载者再连接其他下载者,根据.torrent文件,两者分别告知对方自己已经有的块,然后交换对方所没有的数据。此时不需要其他服务器参与,分散了单个线路上的数据流量,因此减轻了服务器负担。

下载者每得到一个块,需要算出下载块的Hash验证码与.torrent文件中的对比,如果一样则说明块正确,不一样则需要重新下载这个块。这种规定是为了解决下载内容准确性的问题。

一般的HTTP/FTP下载,发布文件仅在某个或某几个服务器,下载的人太多,服务器的带宽很易不胜负荷,变得很慢。而BitTorrent协议下载的特点是,下载的人越多,提供的带宽也越多,种子也会越来越多,下载速度就越快。

而有些人下载完成后关掉下载任务,提供较少量数据给其他用户,为尽量避免这种行为,在非官方BitTorrent协议中存在超级种子(super seed)的算法。这种算法允许文件发布者分几步发布文件,发布者不需要一次提供文件所有内容,而是慢慢开放的下载内容的比例,延长下载时间。此时,速度快的人由于未下载完必须提供给他人数据,速度慢的人有更多机会得到数据。

BitTorrent协议原理图

BitTorrent协议原理在该图示中,由不同颜色区分的是某一文件的不同部分,当传输开始时,只有种子发布都拥有全部文件,在传输进行中,有部分用户获得部分文件(带颜色线条表示),随着传输的继续,文件已经全部公布在系统中,此时,种子拥有者可以退出,也不会影响该文件的传播。

责任编辑:佟健 来源: 互联网
相关推荐

2010-06-24 15:07:20

FTP协议

2010-06-28 10:35:18

Bittorrent协

2010-06-24 16:40:16

Bittorrent协

2010-07-13 16:17:03

BitTorrent协

2010-05-27 14:39:32

2010-06-21 18:04:08

2010-07-08 14:54:30

BitTorrent协

2010-06-21 14:09:33

Bittorrent协

2010-06-21 16:56:03

BitTorrent协

2010-06-21 13:26:32

BitTorrent协

2010-06-24 17:03:45

BitTorrent协

2010-06-21 14:42:27

BitTorrent协

2010-07-02 11:45:09

BitTorrent协

2010-06-21 10:42:50

BitTorrent协

2010-06-28 11:08:32

BitTorrent协

2010-04-14 16:42:05

AdHoc无线网络路由

2011-01-11 11:18:20

2010-06-28 11:15:45

BitTorrent协

2010-07-27 10:24:01

NFSVMware

2015-10-22 22:57:21

点赞
收藏

51CTO技术栈公众号