当前位置: 首页 > news >正文

局域网上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多播数据报
http://www.lryc.cn/news/192264.html

相关文章:

  • 三数之和[中等]
  • 基于天牛须优化的BP神经网络(分类应用) - 附代码
  • 渗透波菜网站
  • Spring Boot:Dao层-实例介绍
  • 接口测试入门:深入理解接口测试!
  • Redis微服务架构
  • 【C++】 局部对象,引用返回
  • 线性代数中涉及到的matlab命令-第二章:矩阵及其运算
  • 计算机毕业设计选什么题目好?springboot 美食推荐系统
  • 爆肝整理,Jmeter接口性能测试-跨线程调用变量实操(超详细)
  • Maven导入程序包jakarta.servlet,但显示不存在
  • es6(二)——常用es6说明
  • 经典垃圾回收器
  • 台达DOP-B07S410触摸屏出现HMI no response无法上传的解决办法
  • [资源推荐] 复旦大学张奇老师科研分享
  • C++数位动态规划算法:统计整数数目
  • ip 网段设置 --chatGPT
  • 使用JMeter进行接口测试教程
  • 文本生成解码策略
  • 华为数通方向HCIP-DataCom H12-831题库(单选题:221-240)
  • AttributeError: module ‘hanlp.utils.rules‘ has no attribute ‘tokenize_english‘
  • 苍穹外卖(四) AOP切面公共字段自动填充及文件上传
  • vue-cli + vue3 项目 ios 苹果手机白屏问题
  • Spring Boot中的JdbcTemplate是什么,如何使用
  • Python测网络连通性、能否访问某个网络或者端口号<网络检测、ping主机、测试端口>
  • 【沧元图】玉阳宫主是正是邪,和面具人有勾结吗?现在已有答案了
  • C++笔记之popen()和std_system()和std_async()执行系统命令比较
  • pycharm2020无法打开,点击无反应
  • 深度学习之微调
  • 【# 完美解决 node.js 模块化后报错 ReferenceError: require is not defined】