局域网上的硬件多播

  • 由于MAC地址(也称为硬件地址)有多播MAC地址这种类型
    • 因此只要把IPv4多播地址映射成多播MAC地址,即可将IP多播数据报封装在局域网的MAC帧中
    • 而MAC帧首部中的目的MAC地址字段的值,就设置为由IPv4多播地址映射成的多播MAC地址
    • 这样,可以很方便地利用硬件多播来实现局域网内的IP多播
  • 当给某个多播组的成员主机配置其所属多播组的IP多播地址时,系统就会根据映射规则从该IP多播地址生成相应的局域网多播MAC地址

IPv4多播地址映射成多播MAC地址

  • 因特网号码指派管理局 IANA,将自己从 IEEE 注册管理机构申请到的以太网 MAC 地址块中从 01-00-5E-00-0000 到 01-00-5E-7F-FF-FF多播MAC地址,用于映射IPv4多播地址
  • 这些多播 MAC 地址的左起前 25 个比特都是相同的,剩余 23 个比特可以任意变化,因此共有 2^23 个
  • MAC地址为6字节

最小多播MAC地址

25 比特固定部分保持不变,剩余 23 比特全部取 0,就可以得到最小多播MAC地址

最大多播MAC地址

将 25 比特固定部分保持不变,剩余 23 比特全部至1,就可以得到最大多播MAC地址

32比特的IPV4多播地址映射成48比特的多播MAC地址

  • 32 比特的 IPV4 多播地址的左起前 4 个比特固定为1110,剩余 28 个比特可以任意变化
  • 然而 48 比特的多播MAC地址只有低23比特可以任意变化,因此只能与多播IP地址的低23比特进行映射
    • 这带来一个影响:IP多播地址可变化的 28 比特的前 5 个比特无法映射到MAC多播地址
      • 这会造成IP多播地址与多播MAC地址的映射关系并不是唯一的

IP多播地址与多播MAC地址的映射关系并不是唯一

下面是两个IP多播地址和他们各自的二进制形式

  • 左起前四个比特固定为1110,表示这是 IP 多播地址
  • 剩余可变化的 28 个比特中的这 5 个比特无法映射因此只有剩余 23 比特可映射到多播MAC地址
    • 第 23 比特多播MAC地址左起,前 25 个比特固定不变,将IP多播地址的第 23 比特映射到,或者说作为MAC多播地址的第 23 位,这样就得出了IP多播地址相应的多播MAC地址
  • 由于IP多播地址与多播MAC地址的映射关系不是唯一的
    • 因此收到IP多播数据报的主机还要在网际层利用软件进行过滤,把不是主机要接收的IP多播数据报丢弃
相同映射关系的IP多播数据报进行过滤