是否存在将可靠性层置于UDP广播之上的库?
我需要尽快向大量机器广播大量数据,而且通常看起来这样的问题必须已经多次解决,但我找不到任何东西,除了Spread工具包,它有一些病毒许可证(你必须在广告最终产品的所有材料中提及它,我不确定我们的客户愿意做什么)。
我自己已经开始写这样的事了(因为这样做会非常有趣!)但是我决定先问一下。
我也查看了UDT(http://udt.sourceforge.net),但它似乎没有提供广播操作。
PS我正在寻找像图书馆一样轻量级的东西 - 没有基础设施的变化。
答案 0 :(得分:4)
UDP组播怎么样?看看PGM protocol,其中有几个商业和开源实现。
免责声明:我是OpenPGM的作者,是该协议的开源实现。
答案 1 :(得分:1)
虽然已经对可靠的UDP组播进行了一些研究,但我还没有使用过类似的东西。你应该考虑到这可能不像它最初听起来那么微不足道。
如果目标网络中没有节点列表,则无法知道何时以及向谁重新发送,即使接收消息的活动节点可以确认它们。发送到大量节点,期望所有节点的ack也可能导致网络拥塞问题。
我建议您重新考虑应用程序的网络架构,例如:使用某种集中式解决方案,您可以向服务器提交更新,并将此消息发送给所有连接的客户端。或者,如果原始发件人节点的地址是先验已知的,那么只需让客户端连接到它,然后让发件人通过这些连接推送更新。
答案 2 :(得分:1)
浏览IETF网站,了解Reliable Multicast上的RFC。这方面有一个完整的工作组。已经为不同目的开发了几种协议。还可以查看Oracle可靠多播服务项目(JRMS)的Oracle / Sun.这是Sun的一个研究项目,从未得到支持,但它确实包含了TRAM和LRMS协议的Java绑定。