GMP定义了一个协议,可使主机注册路由器,为特定多播组接收多播流量。IGMP侦听是一种抑制多播流量溢出的技术。LAN交换机“侦听”进入的IGMP分组,以确定IP多播接收器驻留在何处。根据IGMP分组的多播组成员信息,LAN交换机为特定多播组设置传送表。这样,交换机即可将针对特定组的IP多播信息流仅传送至拥有该组的有效接收器的端口。思科系统公司专用协议CGMP与IGMP交互,可动态修改桥接表。CGMP无需对主机作任何修改。CGMP独立于主机运行,仅涉及路由器和交换机。CGMP信息从路由器流向交换机,绝对不可能出现从交换机流向路由器的情况。
当一台主机向具CGMP功能的路由器发送IGMP成员报告时,该路由器经由CGMP向Catalyst交换机发送配置信息。Catalyst交换机可根据CGMP消息中所含信息修改其本地桥接表。
两台Catalyst 2950交换机级联,有一个路由器与其中一台相连(见图1)。PC机与Catalyst 2950交换机相连,希望接收多播流。路由器从这两台PC接收IGMP成员报告。该路由器向Catalyst交换机发送一个CGMP配置消息,告知它主机的源MAC地址和它希望从哪个多播组接收流量。
PC1请求加入224.1.10.10。路由器告诉Catalyst 2950交换机将目的地MAC地址为01-00-5E-01-0A-0A的多播信息流发送至源MAC地址为00-60-08-93-DB-C1的主机。Catalyst交换机搜索其桥接表来寻找相应的单播地址,并向与主机相连的端口添加多播组地址。Catalyst 2950交换机所发现的所有带此多播地址的帧都传输到该端口,不会干扰其他端口。多播组中可以有多台主机,每台主机单独注册此路由器,该路由器会更新Catalyst 2950交换机。