IPv6 中的多播(与广播相比)有什么优势?

网络工程 ipv6 协议理论 多播
2021-07-15 07:14:31

我一直在努力让自己熟悉 IPv6,但让我悬而未决的一件事是在 IPv6 中多播优于广播的好处。以邻居发现地址解析为例,我知道节点在尝试将 IP 地址映射到其对应的 MAC 地址时将使用请求节点多播地址,但这实际上如何减少同一链路上其他节点的不必要处理是对我来说不是很清楚。

似乎要充分发挥多播的效用,我们需要一个支持多播侦听发现 (MLD) 的路由器和一个支持 MLD 侦听的交换机。我们需要路由器以便 MLD 在网络上处于活动状态,并需要“智能”交换机来跟踪哪些接口与哪些多播地址相关联。

否则,如果我们没有使用 MLD 的路由器或我们的交换机不支持 MLD 侦听,那么,当然,邻居请求将被定向到被请求节点的多播地址,但是当交换机时,任何潜在的网络聊天节省都将被否定只是广播出所有端口。

如果我说的是真的,这是否意味着对于几乎所有网络,尤其是消费者/soho 网络,从基于 ARP 的广播切换到基于 ND 的多播几乎没有任何好处?

编辑:

具有不包括 MLD 侦听的交换机的网络是否将多播与广播相同,从而否定多播的好处?至于你的第二点,请原谅我,因为我对这一切都很陌生,但是为什么不需要的多播比广播的破坏性小呢?如果我们以 ARP 为例,另一个节点看到广播 ARP 帧,看到它不是指自己,并丢弃它。在 ND 中,邻居看到多播请求(因为它已经被交换机广播了),然后丢弃?

1个回答

没有 MLD 或 IGMP 侦听的交换机会将多播和广播(如果在 IPv6 中有广播)视为相同——即,它们会将数据包从所有端口泛洪。

但是你陈述的后半部分,

“因此否定了多播的好处”

不遵循。组播的优势不是针对交换机的。它们用于最终主机。

终端主机可以比广播数据包更有效地处理多播。大多数主机上的网络接口卡 (NIC) 可以设置为接受特定的多播地址并拒绝所有其他地址,就像处理单播数据包一样。因此,NIC 会忽略不需要的多播流量以及不需要的单播流量。但是当主机收到一个广播包时,它必须接受它并发送给CPU进行处理,即使它对这个主机并不重要。在具有大量广播流量的网络中,主机会不断中断以处理广播,即使它们只关心很少的广播。

多播通过将选择重要数据包的任务“委托”给 NIC 硬件来解决这个问题。只有直接发往主机的数据包才会被送到 CPU 进行处理。