为什么分发文件的随机片段比连续传输更快?


17

为什么说BitTorrent更快,部分是因为它传输文件的随机部分而不是以连续/线性方式从头到尾传输它?


编辑:但为什么他们必须 '随机'?为什么不是一个更可预测的“半连续”转移,其中一个同伴给你上半部分,第二个同伴另一半?这理论上可以减少开销。

Answers:


6

关于编辑询问为什么它们必须是随机的:假设种子被更改为仅下载下载器尚未具有的第一个块,从而保证连续传输。

然后我分享一个100MB的文件。在我离线之前,有10个人连接,每个人下载50MB。

然后这些人被搞砸了,因为他们都有文件的前半部分,而只有我有下半部分。在我再次使用之前,他们无法完成下载。

相反,如实际情况那样,随机顺序传输块,这10个人中的每一个都有不同的块集,因此他们可以相互交换以完成下载而无需我在身边。

但更好的是,因为每个块都有不同的块集,每个块都可以从所有块中下载其他人填补他们副本的空白。您的编辑暗示了从文件中的随机点开始并从该点连续下载的想法,但这会增加从一个下载程序的副本到下一个副本的重叠量(如果Alice从文件的开头开始并且Bob启动10%,然后有40%的文件,他们都有,只有10%独特的他们可以交易,没有我重新连接,以使其余的可用)。以随机顺序下载最大化每个下载程序所拥有的块的唯一性,从而最大化下载程序之间开始交易的能力,并最大化它们在没有种子可用时组装完整副本的可能性。

单个连续下载可能(或可能不会,取决于条件)对更好,但是以随机顺序下载对于整个网络来说更好。


“随机顺序最大化每组的唯一性” - 正是如此。
eternalmatt 2011年

30

关键是您要同时从多个来源(对等方)获取文件,而不是从一个来源获取文件。

如果你有一个分成10个部分并从1个服务器下载需要100秒的文件,那么理论上你可以在10秒内从10个对等体中获取文件(加上一些开销),因为每个对等体可以在10秒内完成它的部分。在实践中,它需要更长的时间,因为每个同行都不会是完美的,你可能会达到你的带宽限制(但你明白了)。

因为你必须重新组装文件,所以你不必按顺序获取文件。因此,如果您只有5个对等体,每个对等体提供2个部分,则这些可以是文件的随机部分。


简单。明确。+1
Xavierjazz 2011年

5
“如果6名男子可以在6分钟内挖出6个洞,那么需要10个人挖10个洞需要多长时间?”
马丁

4
@martin取决于孔的大小(块大小)和可用的设备(带宽):)
棘轮怪胎

14

应该说这完全取决于所讨论的文件,同伴的数量和非bittorent源的速度。

您的下载速度永远不会超过连接的最大下载带宽,如果您从带宽足够的地方下载,它将比使用Bittorrent更快。

然而,随着互联网速度越来越快,我们已经到了(较小的)网站和主机无法跟上的程度。

例如,几个月前,当我在伦敦寻找托管价格时,我被引用了5Mb连接的绝对可怕的价格。如果我这样做,它将为大多数人服务。

但是,在同一条线路上,如果我要托管几个500Mb文件,并且每个人都有Cable(50Mb)或快速ADSL2 +(24Mb)线路,你会注意到我的服务器无法快速提供给你的速度...

...但是,如果我通过Bittorrent为您提供相同的文件,并且有200人,每个只提供30Kb / s,那将等于5.8Mb / s(而且,许多人的上传速度要快得多!) ....现在,如果我要在我的服务器上运行Bittorrent并提供相同的文件,则意味着总共可以下载10.8Mb / s - 远远超过我通过5Mb / s管道提供的数据我自己的。

Bittorrent是一个非常多的数字游戏,你必须有足够的人上传足够的带宽...由于涉及额外的步骤,如完整性检查(以及你应该上传的事实),它很难直接击败从一个有足够带宽的好网站下载,但是,对于许多较小的网站来说,它只是想要节省带宽费用的精彩甚至更大的网站。


更不用说标准电缆连接中的上传和下载带宽是不一样的(ADSL中的A)
棘轮怪胎

奇怪的colo带宽规则,听起来像我。在科罗拉多州,似乎大多数colos提供100 Mbps连接并按月使用收费,如果您需要降低成本,则需要管理和限制自己的连接速度。
Zan Lynx

另一条评论:由于完整性检查,我希望在可能的情况下从Bittorrent下载。因为SHA1不匹配而被迫重新下载整个DVD ISO令人难以置信。Bittorrent会检查每个块,因此它只能替换一小块。
Zan Lynx

@Zan Lynx - 哎哟!在过去的5年里,我只遇到过一次这个问题......在那之前,主要是当我记忆中的坏记忆肆无忌惮地破坏事物时,我能理解,但是,多年来都没见过它......无论如何,我一直想寻找托管和托管国外从一段时间 - 英格兰是非常昂贵的几乎所有:(
William Hilsum

4

大多数回复似乎没有回答你的问题。

BitTorrent并不快。

由于连接到多个源的开销,它实际上更慢

然而,实际的真正区别在于,您从许多来源下载的内容可能比网站提供的更快。许多Web服务器都处于高负载状态或速度受限,因此您不会将它们吸干。

BitTorrent以看似随机的顺序传输文件这一事实对其速度没有直接影响。

关于你的编辑,这些作品不是随机的!它们根据稀有性进行优先排序:一个罕见的部分需要尽快变得不那么稀有,所以如果有它的源突然离开它就不会丢失。它与可用性有关,而不是速度。


3

这是一个可用性问题。如果你必须连续下载,那么你依赖于托管比你更多文件的人。文件少于您的每个人都将无法向您发送任何数据。

如果块是随机分布的,则可以从中下载的主机数量会更高,因此您可以更快地下载文件。


1

Torrent并不总是更快,但是当它们存在时,一个原因就是网络熵。任何持续时间的连接(大文件的下载)都可能随着时间的推移而降级,因为随机的,不可控制的因素会影响数据包的传输,例如路由器过载以及您和服务器之间的其他问题。更多错误意味着更多的数据包重传,并且这种情况会随着时间的推移而恶化。Torrent在许多路由路径上建立了许多较小的连接,这种策略可以在适当的情况下减少错误并丢失或损坏数据包,并且似乎更快,特别是随着种子和对等体数量的增加。


1

假设您派两个人到杂货店拿起物品清单。你给他们每个完全相同的清单。但是,其中一个必须按照它们在列表中显示的确切顺序来选择项目。另一个可以按他们喜欢的顺序拿起物品。您认为哪个会先完成?


如果物品全部按顺序排列怎么办?(碎片整理?)
Mateen Ulhaq 2011年

按什么顺序排列?按字母顺序排列?除非他们恰好按照超市安排的方式安排,否则无济于事。在类比中,“超市”是各种上传者的阻止列表。(如果每个人从一开始就开始,那么每个人有33%的文件都不能互相帮助,因为他们有完全相同的块。哎呀。)
David Schwartz
By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.