主要是查询功能 , 它会有两种查询报文 , General Query和Group-Specific QueryGeneral Query每隔一段时间就会向局域网内发送 , 目的地址是224.0.0.1(网内所有主机) , 所以子网里的每一个主机都会收到这个报文 , 并且会以Member Report报文回应 , 假如在一定的时间间隔内设备没有收到任何Member Report , 它就会认为子网内没有组员 。
Group-Specific Query报文 , 当路由器收到一个Leave Group报文的时候 , 它会发送这样一个具体包含有组地址的报文来查询这个组是否有组成员存在 。
当假如在一个子网上同时有两个多播路由器 , 他们一开始都会认为自己是组播成员的查询者 , 当他们发送General Query报文时 , 通过比较从对端收到的报文源IP地址的大小来决定谁是查询者谁不是查询者 , IP地址大的成为查询者 。假如在一段时间内没有收到查询的报文 , 就会认为查询者down掉了 , 它就会充当起查询者的角色 。
CGMP(Cisco专有)
考虑到了假如有交换机存在的情况 , 考虑到了在三层设备和主机中有二层设备 , 而IGMP是一个三层协议 , 二层设备假如收到这样一个类型的报文 , 只会向除了源端口以外的所有端口进行转发 , 这样会对网络的带宽和整体性能造成影响 。解决的方法是希望交换机可以对有组播成员的端口进行组播报文的转发 。
在交换式网络上 , 对组播流的控制有三种方法:
(1)手工配置的交换式多播树
在交换机的桥接表上配置静态的组播MAC地址和端口映射 。
(2)GMRP(802.1p)
他让MAC层的多播组地址动态地在交换机上注册和取消 。
(3)IGMP侦听
通过在交换机端口上配置 , 可以使交换机进行IGMP消息地检查 , 可以知道多播路由器和组员地位置 。但是 , 检测IGMP消息意味着所有地IP包都要进行检查 。尤其当这些假如是在软件地方式来实施 , 会严重降低交换机的性能 。
CGMP的做法是通过路由器来告诉交换机 , 组播成员的组MAC地址和主机MAC地址 , 让交换机可以知道在那个端口上有组员 , 并且可以进行转发 。
四、组播报文如何来进行路由
现下常用的组播路由协议有一下几种 , 由于现在主流的路由器产品只支持Pim , 其他的路由器协议都不支持 , 所以只会对PIM做个具体的解释 。
DVMRP它是通过RIP来发现到源的最短路径 , 采用广播/剪除的方式来构建一颗多播树 。
MOSPF它是通过OSPF协议来发现到源的最短路径 , 也是用在密集方式的拓扑下 。
CBT是一个与协议无关的 , 基于稀疏模式的 , 共享树协议 。他和DVMRP和MOSPF的区别有两点:
它无需要在组播中在加入一个路由协议 , 可以在现有的任何协议上查找到到源的最短路径;它是基于共享树的协议 , 所以必须要在网络里设置一个网络的核心来确保组播包的前转;更适合使用在稀疏模式下 。
PIM-DM
它是个与协议无关的组播协议 , 同时又是基于密集拓扑的组播协议 。采用广播/剪除的方法来进行多播树的构造 。
功能:
* 通过交换Hello报文发现邻居
* 当单播路由发生变化时 , 重新计算RPF接口
* 在多路访问的网络中选举指定路由器
* 在多路访问的网络中使用剪除覆盖
* 在多路访问的网络中用Assert消息选举指定前转器
其中会产生一下5中PIMv2消息:
* Hello
周期性地发送用来发
推荐阅读
- 协调人与自然关系,要以什么为引领
- 1 CCNA真题TCP/IP:地址和协议
- TCP/IP模型中的网络和协议
- 传输控制协议/网间协议 TCP/IP协议
- MPLS多协议标记技术增强网络传输作用
- TCP/IP协议数据报结构详解
- 什么是RIP协议
- 什么是SNMP协议
- 什么是SMTP协议
- 什么是OSPF协议