多播IP地址

我发布了这个StackOverflow ,并被告知这可能是更合适的。

我无法理解多播地址如何工作。

首先,如果我有N个客户端或对等设备在不同的networking上工作,它们都订阅相同的多播组,这个组允许任何源发送消息,这些对等体/主机可以通过这个互相通信组? (听起来像黑魔法!)

其次,我听说IANA控制/调节多播地址。 那么您是否必须向您的项目/公司请求/询问IANA是否有特定的多播地址? 这个怎么用? 我错了吗? 你能澄清我的组播networking吗?

非常感谢!

是的,你的理解在一定程度上是真实的。 从理论上讲,它的工作原理是这样的:你的应用程序绑定到一个多播地址,操作系统获取它并在多播组中订阅计算机。 当其他计算机将数据包发送到该地址时,它们会到达您的计算机,直到所有应用程序都从该地址解除绑定,并且操作系统将该计算机从多播组中移除。

神奇的是IGMP和PIM的结合。 在OS和最近的路由器之间使用IGMP,它允许OS告诉路由器它正在进入或离开多播组,并且它有兴趣接收该地址的分组。 在路由器之间使用PIM来发现和交换组播组数据,并且在发送到该组的报文时发现并到达所有组播组的用户。

IANApipe理组播地址(以及互联网上的其他任何内容)。 如果你想在互联网上使用多播,你需要一个多播地址分配,就像你使用单播地址一样:

  • IPv4多播地址空间registry
  • IPv6多播地址空间registry

如果您要在本地networking中使用多播,而无需路由到外部Internet,则您在RFC 2365中定义了用于私用的pipe理范围的范围。 地址范围是239.192.0.0/14。

组播就像你想的那样工作,除了沿着networking的交换机都必须“理解”客户想要的东西。 这意味着它只对私人networking有用,而且您不需要涉及IANA。 这也意味着您需要设置您的交换机以便多播正常工作; 如果您只有一个交换机或一个交换机堆栈,通常这相当容易。 如果你有多个堆栈,特别是如果你有不同的品牌,这可能会变得相当复杂。