合理可靠的UDP广播库/协议?

时间:2012-08-09 14:10:05

标签: udp broadcast

我正在尝试在多个ad-hoc节点之间的无线广播信道上创建共享总线。每个节点可以随时传输,并且所有节点都需要能够相互听到。这听起来像是多播的工作,特别是OpenPGM(参见this question其他人的要求),除了我读过的关于OpenPGM的内容是它无法处理多个广播公司多播地址(显然,NACK会丢失,但我不是专家,如果有人想纠正我,请随意!)。由于OpenPGM可能不起作用,我决定长时间地考虑我对库的最低要求。他们在这里:

  • 必须通过UDP工作。
  • 需要处理消息;希望能够一次向图书馆发送一条消息,并一次收到一条消息。
  • 只需要到达最近的邻居!
  • 需要进行广播,以便同时更新许多邻居。
  • 需要支持多个邻居同时广播,而不需要任何协调。
  • 需要自动重新组合来自相应数据包的消息,并将消息分解为数据包。
  • 只需要合理可靠;这意味着以下所有内容:
    • 消息可能会丢失,因为有些数据包根本无法通过。
    • 可以假设消息已通过,因为NACK不会回来。
    • 您能想到的任何其他原因。

最后一点很重要;消息可能丢失,我不在乎。这就是“合理可靠”的地方;我不希望图书馆向我发送不完整的消息,我宁愿他们在一段合理的超时期后被丢弃。我也不在乎它是否无法保证传递任何信息;如果需要,我可以在顶部建立更强大的可靠性保证。基本上,它只需要确保如果我收到消息,那么它就完成了。它不必保证任何其他内容。

那么,有什么类似的吗?或者我应该自己编写吗?

编辑:为了澄清,我的消息可能比单个UDP数据包可以处理的大。如果不是这种情况,我会直接进行UDP广播,并提供某种号码方案,让我知道如果我收到了一个数据包。这就是为什么我正在寻找一个可以为我处理它的库。

还要注意我的节点本身不可靠;他们失去连接,并定期重新启动。这很少发生,但它会发生。如果一个图书馆因同伴死亡而挂断,那么我就无法使用它了。

感谢您的帮助!

0 个答案:

没有答案