我不明白有关多播的段落

时间:2013-04-24 14:21:52

标签: sockets unix networking

本段如果来自UNP, 第21.3页第555页

  1. 运行已加入某个组播组的应用程序的主机 相应的以太网地址恰好是接口的一个 当它被编程为接收01:00:5e:00:01:01时接收(e.e. ,. 接口卡执行不完美的过滤)。该帧将被丢弃 通过数据链路层或IP层。
  2. 我只是不知道作者在谈论哪个特例。你能帮我解释一下吗?

1 个答案:

答案 0 :(得分:3)

IN 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位地址空间,网段上的所有主机都必须处理堆栈中更高的数据包,从而做更多的工作判断他们得到的包是否是他们感兴趣的包。)

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