可靠的udp广播库?

时间:2011-02-14 11:33:06

标签: networking udp broadcast

是否存在将可靠性层置于UDP广播之上的库?

我需要尽快向大量机器广播大量数据,而且通常看起来这样的问题必须已经多次解决,但我找不到任何东西,除了Spread工具包,它有一些病毒许可证(你必须在广告最终产品的所有材料中提及它,我不确定我们的客户愿意做什么)。

我自己已经开始写这样的事了(因为这样做会非常有趣!)但是我决定先问一下。

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

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

3 个答案:

答案 0 :(得分:4)

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

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

答案 1 :(得分:1)

虽然已经对可靠的UDP组播进行了一些研究,但我还没有使用过类似的东西。你应该考虑到这可能不像它最初听起来那么微不足道。

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

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

答案 2 :(得分:1)

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