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