我试图了解 Multicast 的实际工作原理,并阅读了大量文章和 Wiki 页面,并收集了以下信息:
多播地址在成员的路由器上占据状态,这是一个可扩展性问题
有一些命令可以查看 Windows 机器上的多播状态
IPv6 需要多播,因为广播不再是一种选择。
问题:
谁能告诉我一台机器如何向路由器“注册”以表示它想成为多播组的一部分?
主机如何找到适合他们的多播组?(例如组播组 1 是 VOIP,#2 是文件 xfer。服务器如何发现需要哪个 IP)
机器如何离开一个组?
我试图了解 Multicast 的实际工作原理,并阅读了大量文章和 Wiki 页面,并收集了以下信息:
多播地址在成员的路由器上占据状态,这是一个可扩展性问题
有一些命令可以查看 Windows 机器上的多播状态
IPv6 需要多播,因为广播不再是一种选择。
问题:
谁能告诉我一台机器如何向路由器“注册”以表示它想成为多播组的一部分?
主机如何找到适合他们的多播组?(例如组播组 1 是 VOIP,#2 是文件 xfer。服务器如何发现需要哪个 IP)
机器如何离开一个组?
1:谁能告诉我一台机器如何向路由器“注册”说它想成为多播组的一部分?
这是通过用于 IPv4 和多播侦听器发现(MLDv1和MLDv2 )的 Internet 组管理协议( IGMPv1、IGMPv2和IGMPv3 )来完成的。一般来说,多播路由器查询本地网络上的节点,本地节点报告他们感兴趣的多播组。
2:主机如何找到适合自己的组播组?(例如组播组 1 是 VOIP,#2 是文件 xfer。服务器如何发现需要哪个 IP)
那要看。一些协议具有众所周知的多播组。请参阅 IANA 的IPv4 多播地址空间注册表和IPv6 多播地址空间注册表。其他多播组使用其他一些协议、URL、配置文件等进行通信。
3:一台机器如何离开一个组?
当使用旧版本的 IGMP 和 MLD 时,当客户端停止发送它感兴趣的报告时,路由器将知道客户端不再对多播组感兴趣。将会有一个超时,当网络上没有客户端对特定的多播组感兴趣时,路由器将停止为该组转发多播数据包。较新版本的 IGMP 和 MLD 还为客户端提供了明确告诉路由器他们想要离开组的选项。然后路由器查询本地网络的其余部分,如果没有更多的侦听器,它将停止。
奖金
在以太网上,多播数据包被发送到某些多播 MAC 地址。将数据包传送到这些地址取决于以太网适配器正在侦听的 MAC 地址。因此,为了接收多播流量,客户端计算要监听的 MAC 地址,配置以太网适配器,然后让路由器知道它想要哪个多播流量。
多播中最困难的部分是如何在路由器之间转发多播流量。这里的风险是路由器开始相互转发相同的多播流量,从而形成环路。有多种协议可用于此。常见的有PIM-DM(密集模式)、PIM-SM(稀疏模式)和PIM-SSM(源特定组播)。