组播通信中,组播网络需要将组播数据发送给特定的组播组成员,因此组播网络需要知道组成员的位置与组成员所加的组播组。通过IGMP(Internet Group Management Protocol,因特网组管理协议),组成员可以将加组消息发送给组播网络,从而让组播网络感知到组成员的位置和所加组播组。
一、IGMP协议的概述
IP组播通信的特点是报文从一个源发出,被转发到一组特定的组播组成员。在组播通信模型中,组播源不关注接收者的位置信息,组播数据转发需要依赖组播网络才能将数据发送至组播组成员。组播数据在进行传递时,组播网络为了将组播数据转发至组播组成员,需要知道组播组成员的位置与所加组播组。
组播源不关心组播组成员位置,只要发送组播报文到特定的组播网络就行了,因此需要组播网络自行感知组播组成员进行转发。
1.1 感知组播组成员
组播网络感知组播组成员有两种方法:
-
手工静态配置:在组播路由器上静态指定连接组播组成员的接口,静态配置组成员加组信息。手工静态方式灵活性差,配置工作量大,但相对比较稳定,对于新上线的组成员能够快速建立组播转发通路。 -
动态感知:通过IGMP协议通知组播网络,组播网络根据IGMP消息感知组播组成员所在接口,以及组成员加组信息。动态感知方式较为灵活,且配置简单,现网一般使用动态感知方式。
1.2 IGMP协议
IGMP协议,即因特网组管理协议(Internet Group Management Protocol),是TCP/IP协议簇中的一种,主要负责在IP网络中管理主机的组播成员身份。它允许主机向本地路由器报告其希望接收的组播数据,同时也允许主机离开组播组。
IGMP通过在组播组成员和组播路由器之间交互IGMP报文实现组成员管理功能,IGMP报文封装在IP报文中。到目前为止,IGMP有三个版本:
-
IGMPv1 -
IGMPv2 -
IGMPv3
组播路由器与组成员间交互报文后会生成IGMP路由表项与IGMP组表项。IGMP路由表项与IGMP组表项将帮助设备生成组播路由表项。
1.3 IGMP组表项与路由表项
IGMP协议会生成IGMP路由表项与IGMP组表项,组播路由表项需要基于IGMP路由表项与IGMP组表项的信息生成。
IGMP组表项是由用户主机发送的IGMP加入报文触发创建的,用于维护组加入信息并通知组播路由协议(通常所说的为PIM协议)创建相应(*,G)表项。IGMP组表项如下:
IGMP路由表项的作用主要是用来扩展组播路由表项的出接口。IGMP路由表项如下:
示例:
组播组成员1会发送想要加入的组播组G1,组播组成员2会发送想要加入的组播组G2,然后IGMP路由器从IF1接口通过交互IGMP报文得到两个表项,一个是组播组:G1、G2,以及G1组对应的接口IF1,G2组对应的也是IF1,这样就生成了两个表项。
1.4 IGMP表项与组播路由表项
在最后一跳组播路由器(组播叶子路由器)上,组播路由表可以基于IGMP路由表项,IGMP组表项与组播协议路由表(PIM路由表)汇总后形成。
IGMP路由表项与IGMP组表项能为组播协议路由表提供组播组地址信息与出接口信息。
简单说就是通过IGMP生成的IGMP组表项结合PIM协议表项以及IGMP路由表项组合成为组播路由表项。
总结:今天学习了IGMP协议的基础概念,IGMP是组播组成员与组播路由器交互IGMP的协议,用于组播组成员发现,会生成IGMP组表项和IGMP路由表项,IGMP表项结合PIM协议表项组成了组播路由表项。
如果对文章感兴趣欢迎微信搜索公众号:不喜欢热闹的孩子
本文由 mdnice 多平台发布