朋友给了一个BT的种子,查后得知就是视频的下载链接,于是质问朋友:“为什么不给我视频,而给种子。”朋友无语,仿佛对待外星生物一样看待我,于是心有不甘,赶忙查清为什?摘录如下,与大家分享:

大家,都用过bt吧。现在bt可以说是继局域网、ftp、http之后最广泛使用的文件分享和传播途径,可以说已经融入了广大网民的生活中。bt,全称BitTorrent,是一种P2P下载方式。常见的P2P除了bt就是emule(俗称电骡,当然也有人叫电驴的–,区别见:http://www.quanyo.com/zt/emule/618.shtml)。

为什么P2P可以在如此短的时间内风靡世界呢,这里就要从它的原理说起,在介绍P2P的原理之前,有必要先解释下传统的http下载。

传统的http下载是从服务器(sever)上直接复制数据给客户端(PC),这种传输的快慢有带宽的限制。[什么是带宽?比如你家用的是2M ADSL,那么带宽就是2M,此处的2M指2Mbps,就是250kb/s(2000/8)。想想你下载的时候达到过带宽吗]由于一般服务器连接的客户端不止一个,服务器的带宽就会被分享[当然服务器的带宽比咱家大多了,一般都是光纤;没有特殊限制的话,服务器的带宽是等分的。]假设服务器的带宽是100M,即12500kb/s,有100台客户端连接,那么每一台分享到的带宽就是125kb/s,可见客户端的带宽没有完全发挥,为了弥补这种状况,flashget发明了多线程下载,这里就不深究了。

但是现实中,情况显然严重的多,大型软件下载站的访问量有多少大家可以百度百度。网民越来越多,这种情况需要改变。P2P就是在这种情况下诞生的。下面是P2P的示意图:

如图所示,P2P下载时,服务器(sever)不再担任以前的http下载中服务器的角色,他只负责将文件的基本信息在客户端之间中转,本身并未存放任何文件。P2P软件将文件被分成若干块,这里假设为A~Z块,客户端可以先下载K段再下载别的,没有固定的顺序,只要等最后文件被“填满”就完成了。这样的好处就是,http下载中宕机了你就下不全了(虽然也有断点续传,不过现在随机地址越来越多了–+),使用P2P你就完全不必担心这一点,即使你没有M段,只要等有M段的人传给你就行了,而且在别人传给你的同时,你也在将自己完成的部分分享给没有此区块的人,这样就是分享。当然单组客户端之间的传送速度是非常慢的,但是连接的用户数越多,理论上一台客户端连接的用户数就可以增多,下载速度就这样提起来了,既充分利用了带宽又保证了完整性。

下面是补充部分了:

1.在P2P传输中有“种子”这种说法。所谓的“种子”,就是指那些已经将文件下载完成的人,他们拥有全部的区块。发布资源的人自己就是一个最原始的种子,最先连接的客户端得到的块都是从他这边来的,直到新的种子出现。当种子消失时会发生两种情况,一是缺少区块,剩下的客户端最多下载到完全相同的进度;另一种就是区块正好完整,只不过分布在不同的客户端上而已,这样下去就会有人下载完,成为种子。所以,种子可是很重要的,大家如果下载完了一定要自觉做种,这是P2P世界默认的准则。

2.有关上传。在连接数能保证的情况下,下载的速度就要看你的带宽了。但是,如果你限制上传,你的下载速度可是会受到影响的哦。一般可以使用软件自动检测下可用上传/下载速度,然后将稍稍限制一下上传,这样在下载同时浏览网页也不会太卡。

3.有关内网与外网、ICS、upnp、端口映射等等请参考:http://bbs.btchina.net/showthread.php?s=48fde9c000f98be54974c9538ee9a2fa&threadid=459806 这里不赘述了。

4.目前常用的P2P软件:

正宗型:Bitcomet、Bitspirit、utorrent、BitTorrent Plus! II、Emule

边看边下型:Funshion、ToToLook、Blin

新兴加入型:迅雷、flashget

使用的是baiP2P(点对点du,BT也是这个方式)的zhi传输方式,就是网友之dao间传输数据的,zhuan你点击了那些资源shu链接,就是连接到那些拥有这个资源的网友的电脑,网友传给你的,你同时也在传给别人,传给你的人多了,速度就快.
第一个下载的人同时也在上传,如果假设5个人都不上传的话应该是速度都是50KB/S

 如何将一个文件快速下发到100万个服务器?(question)

如果集中式地放在一个服务器或缓存上的话,带宽、连接都会遇到问题。只说idea的话。

树状:
1. 每个服务器既具有文件存储能力也应具有文件分发能力。
2. 每个服务器接收到文件之后向较近的服务器分发,具体类似多叉树,应该挺快的。

索引状:
1. 设置1000个缓存服务器,文件先下发到这些缓存上。(具体多少缓存、分几层缓存和具体业务有关。)
2. 每个缓存服务器接收1000个服务器取文件。
=================================

A.对于树状传递,在100W台服务器这种量级上,可能存在两个问题
1.如果树上的某一个节点坏掉了,那么从这个节点往下的所有服务器全部宕机。
2.如果树中的某条路径,传递时间太长了(网络中,两个节点间的传递速度受很多因素的影响,可能相差成百上千倍),使得传递效率退化。
改进:
100W台服务器相当于有100W个节点的连通图。那么我们可以在图里生成多颗不同的生成树,在进行数据下发时,同时按照多颗不同的树去传递数据。这样就可以避免某个中间节点宕机,影响到后续的节点。同时这种传递方法实际上是一种依据时间的广度优先遍历,可以避免某条路径过长造成的效率低下。
B.最简洁省事的方法,组播!(类似索引式)。都有100W台服务器了,自己搞个组播网络不就好了,标准的TCP/IP协议啊

0 条评论

发表回复

Avatar placeholder

您的电子邮箱地址不会被公开。 必填项已用 * 标注

此站点使用Akismet来减少垃圾评论。了解我们如何处理您的评论数据

蜀ICP备16001794号
© 2014 - 2024 linpxing.cn All right reserved.