2

This paragraph if from UNP, chapter 21.3 page 555

  1. A host running an application that has joined some multicast group whose corresponding Ethernet address just happens to be one that the interface receives when it is programmed to receive 01:00:5e:00:01:01 (e.e., the interface card performs imperfect filtering). This frame will be discarded either by datalink layer or by the IP layer.

I just don't know which special case is the author talking about. Could you help me explain it clearly?

4

1 回答 1

4

在 IPV4 中。多播地址(旧的 D 类)由 4 位固定组成,用于将其标识为多播(1110),其余 28 位用于标识组。

由于 MAC 地址中只有 23 位可用(高 25 位是固定的),当您将多播地址的低 23 位映射到 mac 的低 23 位时,您会丢失 5 位寻址信息。因此,多个组播地址都具有相同的 MAC 地址。

例如

237.138.0.1
238.138.0.1
239.138.0.1

所有映射到 MAC 地址:01:00:5e:0a:00:01 (还有更多,这只是一个子集来说明)

因此,如果您加入组 237.138.0.1,您的以太网卡将开始向该 MAC 的堆栈发送帧。由于它是不完美的匹配(因为我们丢弃了这 5 位),以太网卡也会将 238.138.0.1 和 239.138.0.1 发送到堆栈中。但是由于您对这些帧不感兴趣,当它们可以完全匹配时,它们将在第 2 层(数据链路)或第 3 层(网络)被丢弃。

所以特殊情况是,如果您有多个多播流占用相同的低 23 位地址空间,则网段上的所有主机都必须处理堆栈中更高的数据包,因此需要做更多的工作来判断是否他们得到的数据包是他们感兴趣的数据包)。

通常,您只需要确保在规划多播部署时,尽量避免地址重叠。

于 2013-04-24T14:38:16.380 回答