组播 IP 地址

Jos*_*h G 3 networking p2p multicast udp

我在StackOverflow上发布了这个,并被告知它可能更适合在这里。

我无法理解多播地址的工作原理。

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

其次,我听说 IANA 控制/规范多播地址的暗示。那么您是否必须向 IANA 请求/询问您的项目/公司的特定多播地址?这是如何运作的?我错了吗?你能为我澄清多播网络吗?

非常感谢!

Jul*_*ano 5

是的,你的理解在某种程度上是正确的。理论上它是这样工作的:你的应用程序绑定到一个多播地址,操作系统得到这个地址并订阅多播组中的计算机。当其他计算机向该地址发送数据包时,它们会到达您的计算机,直到所有应用程序从该地址解除绑定并且操作系统从多播组中删除该计算机。

神奇的是IGMPPIM的组合。IGMP 用于操作系统和最近的路由器之间,它允许操作系统告诉路由器它正在进入或离开多播组,并且它有兴趣接收该地址的数据包。PIM 用于路由器之间发现和交换组播组数据,并在发送寻址到该组的数据包时查找和到达组播组的所有订阅者。

IANA 管理多播地址(以及 Internet 中的几乎所有其他内容)。如果您想在 Internet 上使用多播,则需要像使用单播地址一样分配多播地址:

如果您想在本地网络中使用多播,而不需要路由到外部 Internet,您可以在RFC 2365 中定义用于私人用途的管理范围。地址范围是 239.192.0.0/14。