了解BT原理
http://bt.acnow.net/help/bt_theory.htm
BT软件的特点:在下载download的同时,也在为其他用户提供上传upload,所以不会随着用户数的增加而降低下载速度。使用非常方便,很适合新发布的热门下载。其特点简单的说就是:下载的人越多,速度越快 。
具体原理请看:
[img]http://bt.acnow.net/help/img/central.jpg[/img]
一般来讲,下载是把文件由服务器端传送到客户端,例如FTP,HTTP,PUB等等。工作原理如下图:
但是这样就出现了一个问题,随着用户的增多,对带宽的要求也随之增多,用户过多就会造成瓶颈,而且搞不好还会把服务器挂掉,所以很多的服务器会都有用户人数的限制,下载速度的限制,这样就给用户造成了诸多的不便。
但BT就不同,用BT下载反而是用户越多,下载越快,这是为什么呢?因为BT用的是一种传销的方式来达到共享的,工作原理如下图:
[img]http://bt.acnow.net/help/img/torrent.jpg[/img]
BT 首先在上传者端把一个文件分成了Z个部分,甲在服务器随机下载了第N各部分,乙在服务器随机下载了第M个部分,这样甲的BT就会根据情况到乙的电脑上去拿乙已经下载好的M部分,乙的BT就会根据情况去到甲的电脑上去拿甲已经下载好的N部分,这样就不但减轻了服务器端得负荷,也加快了用户方(甲乙)的下载速度,效率也提高了,更同样减少了地域之间的限制。比如说丙要连到服务器去下载的话可能才几K,但是要是到甲和乙的电脑上去拿就快得多了。所以说用的人越多,下载的人越多,大家也就越快,BT的优越性就在这里。而且,在你下载的同时,你也在上传(别人从你的电脑上拿那个文件的某个部分),所以说在享受别人提供的下载的同时,你也在贡献。
××××××××××××××××××××××××××
bittorrent技术简述
1 概念
bittorrent是通过将文件分成若干数据段 (piece) ,在使用者 (peer) 间相互传送的p2p软件。
1.1 关于torrent文件
torrent文件包含了发布数据包中的文件名,文件大小,目录结构信息,同时它还高含了用于对传送数据进行效验的数据和tracker服务器地址。
1.2 tracker服务器
tracker服务器用于将所有使用者 (peer) 的地址告知每一个使用者 (peer) ,其同时收集关于每一个使用者(peer)拥有哪些数据段 (piece) 的信息。当然,其还收集一些使用者 (peer) 传送速度的信息,不过,仅仅是为了统计的目的。tracker服务器的功能被严格限定在以上几项内。
2 bittorrent是如何互通数据的
2.1 数据段 (piece) 传送的顺序
当使用者 (peer) 开始下载第一个数据段 (piece) 时,选择是随机的,这是为了较快得完成第一个数据段 (piece)的下载 [和下面的rarest first选取法相比较而言的] ,也就可以尽早开始向其他使用者 (peer) 发送数据。
第一个数据段 (piece) 下完后,使用者 (peer) 转而使用rarest first选取法,这种方法优先下载整个用户群中拥有量最小的数据段 (piece) ,该方法有利于在用户群中尽可能保留一个完整的copy。
2.2 使用者 (peer) 间传送对象的选取
默认模式下每个使用者 (peer) 最多同时给4个对象上传数据。bittorrent总是优先给向己方上传速度快的用户 (peer) 上传,通过这种方法每个使用者 (peer) 都有望最终找到最合适的互传方。这种局部最优的方法有助于充分利用每个使用者 (peer) 的带宽。[关于比较向己方上传速度的方法略] [限流的人注意了]
2.3 种子 (seed) 上传对象的选取
作种子 (seed) 时是不可能比较对方向己方上传速度,因此seed优先上传给接受上传速度快的使用者 (peer) 。
以上内容编译自Incentives Build Robustness in BitTorrent by
Bram Cohen, author of the bittorent
3 关于超级种子 (super seed)
超级种子 (super seed) 的运行方法与2.3中提到的普通种子( standard seed) 完全不同。当其他使用者 (peer) 试图与其连接时,超级种子(super seed)将自己伪装成一个只拥有一个数据段 (piece) 的普通使用者 (peer), ,这个数据段 (piece) 一般是其还未上传的或是用户群中拥有量少的 [这句我所见的文档都没有说清楚所以直接引用] ,而且在超级种子 (super seed) 发现其上传给某用户 (peer) 的数据段 (piece) 在用户群被分派 (即完成给另外某个用户的上传) 前拒绝再给该用户上传。超级种子 (super seed) 的编写者声称,该模式有助于减少发布者重复上传某些数据段 (piece) 的机会,从而将发布效率提高150%-200%
以上内容基于 网上关于超级种子 (super seed) 的说明 编写
参考资料:http://bt.acnow.net/help/
Super
seed 超级种子
对1个以上的人传送数据的时候
不对他们发送重复的数据分片.
意思就是如果接受数据的那群人有可以互相传送的数据的话,seeder就不给他们传数据,让他们自己互相传数据.
从而达到降低seeder的带宽和增加出种的速度的效果.