P2P 分发 - 用于监督对等点的抽象算法
Posted
技术标签:
【中文标题】P2P 分发 - 用于监督对等点的抽象算法【英文标题】:P2P distrubution - abstract algorithm for supervising peers 【发布时间】:2017-02-08 20:32:39 【问题描述】:我计划使用 BitTorrent 协议制作一个系统,用于在多个站点之间分发 VM 映像。当前系统如下:
|-[room with 20PCs]-
[srv_with_images]-->--[1Gbps-bottlneck]-->--|
|-[2nd room with 20PCs]-
所有的电脑每晚都在通过 1Gbps 的瓶颈下载图像,这需要很多时间。我们计划使用 BitTorrent 通过所有 PC 之间的点对点交换来加速图像的分发。但是有一个问题 - 当图像出现在原始服务器上时,它开始充当所有对等方同时下载文件的单个种子。于是我们又掉进了瓶颈的陷阱。为了加快分发速度,我们需要实现(至少我们认为我们需要)一个抽象的高级算法:
确保当新图像到达时,只有一小部分站点会从源站下载图像, 当一小部分 PC 开始播种时,其余部分或另一大部分 PC 将开始对等,或者它们将仅从班级中的 PC 进行对等,而不是从来源, 它不应该依赖初始对等点的“静态”列表,因为某些计算机可能在白天离线。我们不能假设任何计算机将始终处于启动和运行状态。对等点也可以随时关闭。是否有任何特定的算法可以帮助我们设计这个?最天真的方法是将活动服务器列表保留在某个地方,并制作一些守护程序,为每个种子选择初始对等点。但也许有一些更优雅的方式来做这类事情?
另一种选择是确保只有一些对等点可以从源下载,而其余对等点确实从彼此下载(但不是从源点下载) - 在 BitTorrent 协议中是否可能?
【问题讨论】:
也许你可以使用Murder,(基于BitTornado),Twitter 开发并使用它来做类似的事情。 Video.Blog.Fork.TF Article. 【参考方案1】:如果您使用的是 bittorrent,则无需特殊协调。
瓶颈背后的节点可以直接相互通信并共享带宽。使用rarest-first 片段挑选算法将主要确保他们从服务器下载不同的片段,然后相互共享。
LSD 可能有助于加快 lan-local 发现,但如果没有 NAT 恶作剧,它也应该与普通跟踪器一起使用。
【讨论】:
以上是关于P2P 分发 - 用于监督对等点的抽象算法的主要内容,如果未能解决你的问题,请参考以下文章