【问题标题】:Reliable udp broadcast libraries?可靠的 udp 广播库?
【发布时间】:2011-02-14 11:33:05
【问题描述】:

是否有任何库将可靠性层置于 UDP 广播之上

我需要尽快将大量数据广播到大量机器上,一般情况下,这样的问题似乎已经解决了很多次,但我找不到任何东西,除了Spread 工具包,它具有某种病毒式许可(您必须在所有宣传最终产品的材料中提及它,我不确定我们的客户是否愿意这样做)。

我已经打算自己写这样的东西了(因为这样做会非常有趣!)但决定先问。

我还查看了 UDT (http://udt.sourceforge.net),但它似乎没有提供广播操作。

PS 我正在寻找像图书馆一样轻量级的东西 - 没有基础设施变化。

【问题讨论】:

    标签: networking udp broadcast


    【解决方案1】:

    UDP 多播怎么样?查看PGM protocol,其中有几个商业和开源实现。

    免责声明:我是OpenPGM 的作者,该协议的开源实现。

    【讨论】:

      【解决方案2】:

      虽然已经对可靠的 UDP 多播进行了一些研究,但我还没有使用过类似的东西。您应该考虑到这可能不像听起来那么简单。

      如果您没有目标网络中的节点列表,则您不知道何时以及向谁重新发送,即使接收您的消息的活动节点可以确认它们。发送到大量节点,期待所有节点的确认也可能导致网络拥塞问题。

      我建议重新考虑您的应用程序的网络架构,例如使用某种集中式解决方案,您将更新提交到服务器,并将此消息发送到所有连接的客户端。或者,如果原始发送者节点的地址是先验已知的,那么只需让客户端连接到它,并让发送者通过这些连接推送更新。

      【讨论】:

      • 我确实有一个目标网络中的节点列表,并且我已经考虑过“ack flood”,它不会像洪水那么严重而导致问题。虽然看起来我实际上确实不需要 UDP 广播——但这对我来说仍然是一个有趣的问题:)
      【解决方案3】:

      浏览 IETF 站点,了解有关可靠多播的 RFC。在这方面有一个完整的工作组。已经为不同目的开发了几种协议。还可以查看 Oracle/Sun 的 Java Reliable Multicast Service 项目 (JRMS)。这是 Sun 的一个研究项目,从未得到支持,但它确实包含用于 TRAM 和 LRMS 协议的 Java 绑定。

      【讨论】:

        猜你喜欢
        • 2017-04-05
        • 2010-09-07
        • 1970-01-01
        • 2017-04-19
        • 2015-03-14
        • 2012-06-01
        • 1970-01-01
        • 1970-01-01
        • 2012-03-07
        相关资源
        最近更新 更多