将IP多播转换为以太网多播地址



有人可以解释一个映射IP多播地址到以太网多播地址吗?我知道以太网几乎没有地址保留,但不知道哪些地址

基本上,您在Multicast Mac的开头上添加了最后23位IPv4,并添加01:00:5E,例如:

ip = 224.1.2.3
mac = 0x01005e000000 + ip & 0x7FFFFF

IPv4多播数据包使用以太网MAC地址范围01:00:00:00:00:00:00:00-01:00:5E:5E:7F:7F:FF:FF:FF:FF(由IANA拥有的OUI(。该范围有23位可用的地址空间。第一个八位(01(包括广播/多播位。28位多播IP地址的下部23位映射到23位可用以太网地址空间。这意味着交付数据包存在歧义。如果在同一子网上的两个主机每个订阅的一个不同的多播组仅在前5位中有所不同,则两个多播组的以太网数据包将交付给两个主机,要求主机中的网络软件丢弃未频繁的数据包。

来源:Wikipedia或RFC 1112

将IP多播地址转换为48位MAC多播地址,您需要了解48位Mac Mac多播地址。

要获得48位Mac地址OUI(24位,留下24位用于单个地址(,该地址曾经在IEEE注册,曾经花费1000美元,那是当时的 lot 。尝试使用多播的那个人负担不起,所以他和其他人一起购买了OUI,他们将其分开,每个人都在OUI中得到23位的地址。

IPv4多播地址具有28位地址(224.0.0.0/4,SO 32-4=28(。您必须以某种方式将28位IPv4地址映射到23位MAC地址中。这意味着有32次(28-23=52^5=32(,因为有48位MAC多播地址,IPv4多播地址。每个48位Mac多播地址将映射到32个不同的IPv4多播地址。

从IPv4多播地址到48位Mac多播地址的映射非常简单。只需以01-00-5E的48位MAC多播OUI,附加零位,然后附加IPv4多播地址的低阶23位即可。从IPv4多播地址创建48位Mac多播地址。

反向映射更为复杂,并且由于每个48位MAC多播地址实际上代表32个不同的IPv4多播地址,因此不确定。您只能从48位MAC多播地址恢复IPv4多播地址的最后23位。

最新更新