局域网上IP多播与IP单播关于MAC地址的区别

IP单播进行到局域网上的时候:

网际层使用IP地址进行寻址,各路由器收到IP数据报后,根据其首部中的目的IP地址的网络号部分,基于路由表进行查表转发。

查表转发的结果可指明IP数据报的下一跳路由器的IP地址,但无法指明该IP地址所对应的MAC地址。因此在数据链路层封装该IP数据报成为帧时,帧首部中的目的MAC地址字段就需要通过地址解析协议ARP来确定

在局域网上进行硬件多播

将IPv4多播地址映射成多播MAC地址,即可将IP多播数据报封装在局域网的MAC帧中。这里MAC帧首部中的目的MAC地址字段的值,就设置为由IPv4多播地址映射成的多播MAC地址。

由此可见,和数据链路层将正常IP数据报封装成帧的步骤不同,正常单播情况下,会通过ARP询问目的主机的MAC地址,而多播情况下,不用询问,只需要在本地根据固定规则将多播IP转换成多播MAC即可。

一个问题:

  1. 问题:"源主机发出一个目的IP地址为一个组播地址的报文,但是这个组播地址映射到的MAC地址是唯一的,意思是路径上的所有组播路由器都是用这一个MAC地址吗?"
    解答:
    • 多播路由器会维护一个多播组列表,里面记录着该路由器所在局域网中的主机都可能属于哪一个多播组。当该路由器所在的以太网中有主机希望加入某个多播组,就会发送IGMP成员报告报文,路由器收到后就会在自己的多播组列表中添加上这个多播组
    • 同一网络中的多播路由器可能不止一个,可选择其中一个作为查询路由器(进行周期性地发送IGMP成员查询报文),其他多播路由器仅被动接收响应并更新自己的多播组列表即可。网络中只有IP地址最小的多播路由器成为查询路由器
    • 对于不同的多播组,在因特网上会维护不同的多播转发树,且必须动态地适应多播组成员的变化。这个很复杂,可能树中的某个路由器所在子网并没有多播组成员,如下图中的R2
    • 该提问者的错误想法根源于,以为IP多播的转发原理还和IP单播一样,在局域网上根据主机/路由器的MAC地址进行转发。但实际上并不是这样,主机/路由器的MAC地址是全球唯一的,并不会出现提问者所说的"多播路径上的所有路由器都共用同一个MAC地址"。实际上,多播路由器只是会有一个特殊设置,决定其是否接收/转发某一个多播组的IP多播数据报
相关推荐
christine-rr25 分钟前
【25软考网工】第四章(3)MAC层访问控制、移动Ad Hoc网络
运维·网络·软考·考试
UpUpUp……30 分钟前
HTTP/HTTPS
网络·网络协议·http
自由鬼4 小时前
深海科技服务博客简介
运维·网络·人工智能·程序人生·安全威胁分析·个人开发·数据安全
m0_564264185 小时前
【尝试解决】无法连接到xxx:L2TP连接尝试失败,因为安全层在初始化与远程计算机的协商时遇到一个处理错误。
网络·经验分享·内网穿透·vpn·局域网·ipsec·l2tp
努力也学不会java5 小时前
【网络原理】 《TCP/IP 协议深度剖析:从网络基础到协议核心》
网络·网络协议·tcp/ip·安全·php
Vicssic5 小时前
【Linux 网络】网络工具ifconfig和iproute/iproute2工具详解
linux·运维·网络
Hello.Reader5 小时前
NGINX `ngx_http_core_module` 深度解读与实战指南
网络·nginx·http
为什么要做囚徒6 小时前
CentOS网络之network和NetworkManager深度解析
linux·网络·centos·network·networkmanager
wanhengidc7 小时前
如何保证高防服务器中的系统安全?
网络
桦08 小时前
误触网络重置,笔记本电脑wifi连接不上解决方法(Win10,Win11通用)
网络·电脑