如何为我的应用程序select多播地址?
我应该如何为我的应用程序select一个IPv4多播地址? 我可能需要不止一个(最终可能是整个范围),但只是想避免与其他应用程序的冲突。
- 数据包将完全包含在一个pipe理域中,可能是一个局域网
- 如果我的应用程序有几个独立的实例在同一个networking上使用,他们可以分别使用自己的多播地址 – 但是如果它们不这样做,它们将能够共存,它们只会有less量开销忽略彼此的包。
- 我的数据包已经包含一个“幻数”来避免问题
- 我会检查发件人的地址(我知道这个地址可以被欺骗),TTL和其他的东西,以防止意外的数据包被淹没。
想法请:)
目前我刚从“本地使用”空间239.255.42.99分配了一个任意的
看来你已经find了http://www.iana.org/assignments/multicast-addresses
,所以你通过从239.255/16
范围内select一个地址做了正确的事情。
由于这些范围完全是站点本地使用,因此您select的不是特定的地址,而是您可能需要与networkingpipe理员(假设不是您)协调select备用地址池。
正如其他人所build议的,只要确保有一个简单的方法来更改地址,以防与本地LAN上的另一个地址发生冲突。
如果多个应用程序问题成为问题,则提供应用程序可以与之通信的(本地)众所周知的多播地址,这将为客户端使用唯一的本地范围IP地址。
如已经build议的那样,允许范围被configuration。 但进一步考虑,不要求configuration。 您select范围并允许configuration覆盖(如有必要)。
您的应用程序中应该有一些逻辑来处理外部数据包,通过日志或其他机制警告用户,您的应用程序检测到来自另一个应用程序的多播数据包,并提供有关如何更改configuration的说明。
如果事实certificate存在冲突,请在彩票中播放这些数字!
你见过这个吗 ?
MADCAP
如果只是为了内部使用,那么为什么不将外部地址范围作为configuration进行外部化,并继续使用内部使用。
互联网号码分配机构负责分配IP地址。 他们不分配给互联网服务提供商或个人,但他们有信息根据您的地区分配号码分配。
ZMAAP是MADCAP的零configuration替代品。 我怀疑它有任何公共源代码的实现。 如果你find一个,那么我想知道它。