多播数据报的寻址方式(怎么找到目的主机)

最近看了多播的教学视频,发现很多小伙伴对于其中的原理莫名奇妙,比如:

a.mac地址不是出厂就设置好了吗,那多播物理MAC地址是什么鬼。

b.多播ip地址都一样,并且还不同于广播地址,广播地址至少我还能找到目的网段号,然后给所有网段中的机器发就完事了,但多播是给网段中的指定的几个机器发,怎么做到的呢。

我查阅了资料,谈谈自己的理解:

1.首先要实现多播,肯定是离不开匹配的设备的,主要涉及下面俩设备(设备才是关键):

多播路由器:与普通路由器不同的地方就是能通过“多播路由选择协议”进行逆向洪泛算法处理过程,使得多播路由器也会产生一个路由表(包括下一跳是哪个路由器)。

最终端连接局域网的多播路由器通过IGMP(International group management protocal)来知晓自己所在的网段有哪些主机要接收多播消息。

另一个设备就是网卡:网卡其实有两种模式,一种就是单一MAC地址,出厂就有的,另外一种其实它是可以默认接收多播MAC地址的,起到一个过滤作用。

2.然后说下过程:

主机发送报文给连接自己的多播路由器,多播路由器就更新一个类似NAT表(NAT不合适,NAT用于私有IP转公共IP,应该是类似于ARP协议的表,将MAC地址转IP,以及RARP协议的表)的玩意,哪些主机接收这些信息,这是IGMP的一些内容。然后多播路由器逆向发送数据报给多播源,多播源以及路途上的主机就知道路由该咋选了(并不一定是最优路由)。

现在路由有了,MAC地址也有了,多播源就发送多播数据报,然后到了最后一个路由器,就根据NAT表发给主机,主机一看这个MAC地址虽然不是我的,但是多播地址,所以就接收了,这还没完。

因为有标准规定,多播MAC地址后23位是从多播IP地址映射来的,多播IP地址的第5~9位可以是不同的数字,也就是说多个多播IP地址最后会映射成一个多播MAC地址,比如你看斗鱼直播,跟你一个宿舍的同一局域网的小伙伴看虎牙直播,他们两家公司来的数据报多播IP地址不同,但是MAC地址却一样。你就有可能收到虎牙直播的数据报,咋办呢,MAC地址是属于帧头的,数据报走完MAC层(数据链路层)就拆掉帧头帧尾,网络层就能看到它的多播IP地址了,然后网络层就看这是不是我要的多播IP,不是就丢掉,这样就不会收错啦。

当然网络中不可能全都是多播路由器(虽然现在路由器越来越好),万一遇到普通路由器就走不通了怎么办,那就把带多播IP地址的多播数据报整个当作一个数据包,前面加上IP头部,就变成了普通IP数据报/分组了,然后就可以传输啦,这就像你要过一座山,过不了,就挖个隧道,然后隧道包裹着你,就能通过啦,所以叫隧道方式。

3.我理解也不深入,后续继续研究,有错误的会及时更正并深入。

  • 4
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值