主机如何订阅组播地址?

网络工程 MAC地址 IP地址 多播
2021-07-07 23:17:36

所以我很难在网上找到解释如何设置多播地址的材料。我理解单播是什么:基本上是一对一的通信。在这种情况下,一个地址标识一个唯一的主机。所以为此设置地址很简单。您分配该唯一地址。我明白什么广播:基本上是一对多/全部。在这种情况下,广播地址基本上是您发送到的地址,以确保您的消息发送到链接上的所有主机。所以设置或使用这个地址很简单,在第 2 层,你只需发送到 FF:FF:FF:FF:FF:FF 或子网的最后一个 IP 地址。我理解什么是多播通信:基本上不是泛洪所有主机,而是向选定的主机发送消息。因此,一个选择的模型,其中只有已“订阅”消息的主机。我也知道有为这种通信指定的地址。例如对于 IPv4,多播地址的最高位模式为 1110(我知道 IPv6 中存在类似的分类)。对于以太网,目标 MAC 地址第一个八位字节的最低有效位中值为 1 的以太网帧被视为多播帧。

我的问题是,主机如何订阅成为多播的一部分?我看到的大部分解释这个概念的材料都忽略了这一部分!

还可以在单​​个交换机/链路上进行多个多播。如果是这样,这些不同的多播组如何管理和保持隔离等。

2个回答

IP 多播路由器(通常是交换机)使用成员资格查询宣布可用组主机通过发送成员报告订阅其中一些组取消订阅通过发送离开组或当订阅者没有刷新其成员资格并且为每个主机保留的路由器计时器用完(在最大响应时间之后)来实现。

IGMPv2 在RFC 2236 中定义

内部机制取决于特定的操作系统,但一般来说,应用程序将套接字绑定到特定的多播地址,就像单播一样。然后操作系统:

  • 跟踪这个 - 稍后会需要它
  • 设置 NIC 多播地址过滤器
  • 立即发送“JOIN”消息,然后在收到组成员资格查询时发送成员资格报告
  • 最后在套接字关闭时发送“LEAVE”消息

一些较小的 NIC 没有多播地址过滤器;它们可以阻止或允许所有多播流量。所有 NIC 的地址槽数量都是有限的(前面提到的 0、4、12、16 等),因此尝试侦听过多的组会导致过滤器被关闭。

交换机使用IGMP 侦听功能来了解哪些流量需要流向何处。如果主机在其成员报告中不包含组,则上游交换机可以修剪任何不必要的多播流量。这对于减少交换机间链路上的流量非常有用。