tcp/ip学习笔记--第12、13章 broadcasting and multicasting and IGMP

来源:互联网 发布:青龙山精神病医院知乎 编辑:程序博客网 时间:2024/06/08 11:16

在学习之前就对这部分内容非常感兴趣,好奇这种机制是如何实现的,但是在看完这两章之后,并没有完全解决自己的疑惑,略记一二,如果将来需要深入学习方便参考参考。


广播

受限的广播地址:255.255.255.255 在主机启动的时候可以用这个地址作为目的地址,无盘主机这个时候不知道自己的ip和掩码。

指向网络的广播地址:主机号全为1的地址。对于A类地址来说,即后3个字节全为1,B类地址后两个字节全为1,C类地址最后一个字节全为1.

指向子网的广播地址:如果网络划分了子网(这个需要通过掩码来判断),子网的主机号全为1.

指向所有子网的广播地址:跟指向网络的广播地址一样,区别只是有无划分子网(此处很理解可能不当)


组播

组播地址(也就是D类地址):


也就是224.0.0.0--239.255.255.255这个范围

一个多播组的成员可以属于不同的网络,组号是不变的,而组中的成员是动态变化的。


D类地址向以太网组播地址的转换

这一点书上写得比较令人费解,我谈谈自己的理解。

IANA组织拥有以太网地址块00:00:5E的分配权,然后这个组织将这个地址块的一半用来分配给组播地址,第25个bit为0的那一半。然后又因为,如果一个以太网地址要声明为组播地址,就必须将最高位设置为01。也就相当于,虽然IANA拥有的是太网地址块00:00:5E的分配权,但其实他也拥有对地址块太网地址块01:00:5E的分配权。所以,与D类ip地址相对应的以太网组播地址就是:01:00:5e:00:00:00到01:00:5e:7f:ff:ff。

转换方法是将D类ip地址的低23位放到以太网组播地址的低23位上。由此导致的问题是多个ip会对应同一个以太网组播地址,所以,在最底层之上还需要进行过滤,以确认数据包的目的地是否是本机。


IGMP

简介:让一个物理网络上的所有系统知道哪个主机属于哪个多播组。(看完整章,没明白这是怎么回事儿,个人理解:让路由器知道整个网络中有哪些组播地址是在被使用的,也就是路由器自身需要转发目的地址为哪些组播地址的包)

IGMP报文和ICMP一样,也是封装在IP报文中,格式如下:


IGMP reports and Queries

主要讲的是主机如何与路由器交互,让路由器知道子网中有哪些组播地址在被使用。1)加入一个组播组的时候会发送一个IGMP report报文  2)router会定期发送查询报文 3)主机地查询报文进行应答。相关的一些实现细节书上讲的都比较清楚,就不一一记录了。


疑惑:

不知道出于什么原因,书中并没有讲解,路由器与路由器之间是如何交互有关组播地址的信息的,从而保证一个目的地为组播地址的包能够被转发到组播组的每个成员,感觉相关知识有一个明显的逻辑空缺。



组播技术应用的现状:

本以为组播技术这么牛逼,现在的各大直播平台肯定都用了这个技术吧,可是一查,现状并非如此。

这也是这两章没有讲到的关键点:组播流量是如何在路由器与路由器之间传递的。事实是,一般来说,运营商的路由器并不转发多播流量,这是由于出于安全的考虑。所以说,目前,组播技术并没有真正的在互联网中用起来,当然,在局域网中是可以使用的。以及还有一些其他不完全的应用,比如说将多播流量打包从一个局域网通过互联网转发到另一个局域网。

直播平台主要使用的技术是CDN(content delivery network)

参考车小胖知乎回答:https://www.zhihu.com/question/65869123/answer/235679423


阅读全文
0 0
原创粉丝点击