该帧由右侧的数据链路根据我们所说的不完善过滤接收,这是由接口使用以太网目标地址完成的。我们说这是不完美的,因为通常情况下,当接口被告知接收目的地为一个特定以太网组播地址的帧时,它也可以接收目的地为其他以太网组播地址的帧。
这本书进一步解释了为什么这种过滤不完美——
...许多当前的以太网接口卡对地址应用哈希函数,计算 0 到 511 之间的值...
我的问题是 - 以太网地址是 6 个字节,其中前 3 个字节对于任何多播以太网地址都是恒定的。剩下的就是 3 个字节。为什么不逐字节比较它们,而不是所有的哈希逻辑。过滤将是完美的(至少在以太网级别我的意思是,在 IP 层我们也可能最终检测到这个帧不属于我们的多播组)并且逻辑要简单得多。
与简单比较相比,散列有哪些性能优势?
编辑:我认为这里有些混乱。它不是将 32 个 IP 地址映射到单个以太网地址。因为如果是这样的话,以太网层的完美过滤将是不可能的。但是这本书接着给出了能够完美过滤的卡片的例子
另一个接口卡对 80 个多播地址做了完美的过滤,但随后必须进入多播混杂模式。即使接口进行了完美的过滤,IP层仍然需要完善的软件过滤,因为IP组播地址到硬件地址的映射不是一一对应的
粗线清楚地表明 32-1 映射问题存在于 IP 层而不是以太网层。