通过本地网络可靠的多播

时间:2012-08-16 17:35:28

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

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

我的要求如下:

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

我听说OpenPGM和NORM是UDP的替代品。如果有人对这些中的任何一个有经验,请你分享一下吗?

我也很乐意在应用程序层中自己实现“可靠”的多播,但如果有一个库已经实现了这个,我不愿意这样做。

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

非常感谢。

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

3 个答案:

答案 0 :(得分:3)

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

答案 1 :(得分:3)

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

答案 2 :(得分:0)

有一个可靠的多播协议的大型RFC 部门,并且有许多实现。我看了很长时间,但有TRAM,LRMP,......