4

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

我的要求如下:

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

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

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

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

非常感谢你。

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

4

3 回答 3

4

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

于 2012-08-17T07:34:49.090 回答
3

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

于 2013-01-26T15:34:35.143 回答
0

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

于 2012-08-16T23:48:58.200 回答