【问题标题】:Reliable Multicast over local network可靠的本地网络组播
【发布时间】:2012-08-13 02:55:00
【问题描述】:

我正在使用 C++ 和 Qt 实现一个消息传递系统。经过深思熟虑,我确定多播或多播风格的技术最能解决我的问题。但是,我了解到 UDP 的不可靠性,并认为它是不可接受的。

我的要求如下:

  • 消息将以二进制序列化形式发送。
  • 我必须能够从网络上的任何给定节点向其他节点发送消息。
  • 消息传递必须投保。

我听说过 OpenPGM 和 NORM 作为 UDP 的替代品。如果有人有这两种经验,可以分享一下吗?

我也对自己在应用层实现“可靠”多播的可能性持开放态度,但如果有一个库已经实现了这一点,我不希望这样做。

我正在使用 C++ 和 Qt,因此 .NET 或基于 Java 的解决方案是不可接受的,除非它们是开源的,我可以将它们移植到 C++。

非常感谢。

EDIT 20120816T1853 MDT: 另一个问题:PGM 或 NORM 是否必须在硬件/IP 级别实施?还是可以将它们覆盖在现有协议之上?

【问题讨论】:

    标签: c++ network-programming multicast reliable-multicast


    【解决方案1】:

    我们已经在 UDP 上实现了我们自己的可靠多播协议,称为 RSP,因为我们需要跨平台的东西,而当时无法在 Linux 和 Windows 之间找到一个好的解决方案。 Windows PGM 实现断开离开发送窗口的慢速客户端,而我们的实现类似于 TCP 限制发送方。 Afaik OpenPGM 可以配置为执行相同的操作。

    【讨论】:

    • 我喜欢我在您的 RSP 页面上看到的内容!那个库是开源的吗?我想使用该库作为集成到 Qt 生命周期中的参考来实现该协议的一个版本。
    • Nathan,库是 LGPL,托管在 github:github.com/Eyescale。最简单的方法是克隆 Buildyard 并从那里进行“制作拼贴”。
    • Qt 也是 LGPL,所以我将它们一起使用应该没有许可问题!谢谢!我会选择这个答案!
    【解决方案2】:

    http://cs.itd.nrl.navy.mil/work/norm 的开源 NORM 可以构建为一个库,并具有 C++ API 与 Python 和 Java 语言绑定。如果您通过邮件列表 ping 开发人员(我),我可以帮助您开始。

    【讨论】:

      【解决方案3】:

      有一个大型的 RFC 部门可靠的多播协议,以及许多实现。很久没看这个了,但是有TRAM,LRMP,...

      【讨论】:

        猜你喜欢
        • 2021-02-05
        • 1970-01-01
        • 1970-01-01
        • 2012-12-26
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多