【问题标题】:How to efficiently broadcast a large file from CMS to n clients in LAN如何有效地将大文件从 CMS 广播到 LAN 中的 n 个客户端
【发布时间】:2020-01-09 10:17:16
【问题描述】:

我在 LAN(WiFi) 中有一个主设备和 n 个从设备,在互联网上有一个 CMS。

我需要能够通过在主服务器上选择它来将 CMS 中的数 GB 视频文件推送/下载到所有从服务器。进入局域网的流量必须加密,局域网内的加密会很好。如果任何从站丢弃了一个数据包,它应该能够从 CMS 或其他从站请求它。局域网中的所有设备都是运行安卓的平板电脑。主机应能够触发将位于互联网服务器上的视频文件分发给所有从机。此文件传输应尽可能快。服务器将重新设置,因此基本上可以运行任何东西。

Internet ------------------------> WLAN
   |                                |
   |                                +----Master
  CMS                               +----Slave-1
  holds large file                  +----Slave-...
                                    +----Slave-n

我认为有 4 种方法可以做到这一点:

  1. (Trivial)给从站文件名,让他们单独下载文件。流量:O(n*filesize)
  2. (Trivial)将文件下载到主服务器,从服务器从主服务器而不是从 Internet 下载文件。互联网流量:O(filesize),局域网流量:O(n*filesize)
  3. 将文件下载到主服务器并广播给所有客户端。流量:O(2*filesize)
  4. 使用某些东西在 LAN 内广播文件。由于 WiFi 是共享介质,理论上每个数据包只需发送一次,流量应该是 O(filesize)。

虽然解决方案 1 很容易实现,例如scp 下载它显然会非常缓慢和低效。如果可能,我希望实施解决方案 4,但我不知道有任何可用的技术能够开箱即用地做到这一点。有什么方法可以实现3和4中描述的广播?

【问题讨论】:

    标签: ssl content-management-system broadcast file-transfer large-files


    【解决方案1】:

    这里的细节很重要。你能容忍丢失一些数据吗?有多少客户?您必须具备什么样的平台兼容性?

    对于这个答案,我们假设您不能容忍数据丢失。因此,您的多播选项是不可能的。无法确定特定客户是否能够跟上流程。无法保证数据包甚至可以到达设备。

    现在,让我们假设您想让这个基于网络的平台。再次打击多播。

    虽然有一个简单的解决方案......种子。特别是如果您使用WebTorrent,它会使用经过加密的 WebRTC 数据通道。如果需要,您可以采取进一步的措施对内容进行加密,并通过其他方式共享密钥。

    少数客户端将直接连接到您的服务器,而其他客户端将通过 LAN 下载。您不必担心任何可用性问题,因为您的服务器在需要时仍然可用。

    【讨论】:

    • 不,我希望每个从站都有一个完整的多媒体文件。加密不应该是问题;通过 DH,可以在 n 方之间建立共享秘密:crypto.stackexchange.com/a/1027/63290 或简单地在各方之间共享对称密钥以实现共享 ssl 连接。 Webtorrent 是一个好的开始,但也不是解决方案。如果这是解决方案,我可以将它下载一次到主服务器,然后让从服务器从主服务器下载;但是我会在 LAN 中有 O(n*filesize) 的流量,比 2 或 3 慢 n 倍。
    • @jaaq 与进行多播相比,LAN 上的流量不会显着增加。正如我所说,在这种情况下你真的不能进行多播。
    • 在您的演讲厅场景中,讲师知道每个人都在房间里,并且通常知道学生吸收信息的速度。在大多数人类语言的句子中,都有一种向前纠错的形式……上下文、动词时态等。讲师也知道学生不需要逐字写下所有内容。这是一个完全不同的问题......(续,下一条评论)
    • 要使用相同的场景,讲师会向大厅里的人口授一本大书。而且,有些人并不是真的在大厅里,他们在门外。而且,这不是真正的演讲厅,而是鸡尾酒会,讲师的声音并不比任何人大。此外,每个人都必须按原样将整本书写在纸上。
    • 我明白你的意思,但你所要求的肯定会导致比它解决的问题更多的问题。也许您要采取的一个方向是使用一种尽可能收集广播数据并存储它的方法来扩展这个 torrent 系统。然后你就得到了现成的所有分段和校验和魔法。
    猜你喜欢
    • 2016-07-21
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2012-01-23
    • 2019-04-01
    • 2018-01-09
    • 1970-01-01
    相关资源
    最近更新 更多