如何为应用程序选择多播地址?

我应该如何为我的应用程序选择一个 IPv4多播地址?我可能需要不止一个(最终可能是整个范围) ,但只是想避免与其他应用程序发生冲突。

  • 数据包将完全包含在一个管理域中,可能是一个 LAN
  • 如果我的应用程序的几个独立实例在同一个网络上使用,它们可以各自使用自己的多播地址——但如果它们不使用自己的多播地址,它们将能够共存,它们只会有一小部分开销忽略彼此的数据包。
  • 我的数据包已经包含了一个“神奇数字”来避免问题
  • 我将检查发端地址(我知道这当然可以欺骗) ,TTL 和其他事情,以试图防止意外的数据包搞砸事情。

想法请:)

目前,我只是从“ local use”空间中分配了一个任意的空间,即239.255.42.99

58701 次浏览

如果它只是内部使用,那么为什么不将地址范围外部化为配置,并继续使用内部使用。

互联网号码分配局负责分配 IP 地址。他们不分配给 ISP 或个人,但他们有 资料在哪里得到的号码分配取决于你的地区。

正如已经建议的那样,允许配置范围。但进一步说,不需要配置。您可以选择范围,并在必要时允许重写配置。

您的应用程序中应该有一些逻辑来处理外部数据包,通过日志或其他机制提醒用户,您的应用程序已经检测到来自另一个应用程序的多播数据包,并提供有关如何更改配置的说明。

如果最后发现有冲突,那就把这些数字拿去买彩票吧!

你看过这个吗?

MADCAP

看起来你已经找到了 http://www.iana.org/assignments/multicast-addresses,所以你已经做了正确的事情,从 239.255/16范围选择一个地址。

由于这些范围完全是为站点本地使用的,所以您选择哪个特定地址与其他人无关,但是您需要与网络管理器(假设不是您)协调以选择一个替代地址池。

正如其他人所建议的,只要确保有一个简单的方法来更改地址,以防它与本地 LAN 上的另一个地址发生冲突。

如果多个应用程序问题成为一个问题,提供一个(本地)众所周知的多播地址,应用程序可以对其进行通信,该地址将发出唯一的本地范围的 IP 地址供客户机使用。

ZMAAP MADCAP的零配置替代品。我怀疑是否有任何公共来源的实现。如果你找到了,我想知道。