9.2 IGMP
9.2.6
CGMP

Cisco Group Management Protocol (CGMP) is a Cisco proprietary protocol that allows switches to learn about the existence of multicast clients from Cisco routers and Layer 3 switches. CGMP works with Internet Group Management Protocol messages to dynamically configure switch ports so that IP multicast traffic is forwarded only to those ports associated with IP multicast hosts. CGMP is based on a client/server model. The router is considered a CGMP server, with the switch taking on the client role. The basis of CGMP is that the IP multicast router sees all IGMP packets and, therefore, can inform the switch when specific hosts join or leave multicast groups. The switch then uses this information to construct a forwarding table.

When the router sees an IGMP control packet, the router creates a CGMP packet. This CGMP packet contains the request type, either a join or a leave, the multicast group address, and the actual MAC address of the client. The packet is sent to a well-known address to which all switches listen. Each switch then interprets the packet and creates the proper entries in a forwarding table.

Building on the previous video example, the client starts by sending an IGMP join message to the video server. However, when the next-hop router receives the IGMP join message, the router records the source MAC address of the IGMP message.  It then issues a CGMP join message downstream to the switch. The switch uses the CGMP message to dynamically build an entry in the switching table that maps the multicast traffic to the switch port of the client. In this example, the server delivers the 1.5-megabit-per-second (Mbps) video feed only to those switch ports participating in the multicast stream, as determined by the switching table. The ports on the switch that do not support any hosts in the multicast group do not propagate the traffic.