思科组管理协议(CGMP)主要用来限定只向与 IP 组播客户机相连的端口转发 IP 组播数据包。这些客户机自动加入和离开接收 IP 组播流量的组,交换机根据请求动态改变其转发行为。CGMP 主要提供以下服务:
- 允许只将 IP 组播数据包转发到连接 IP 组播客户机的那些端口。
- 通过限制不必要的 IP 组播流量,节省了网络带宽。
- 不需要改变终端主机系统。
- 不会产生为交换网络中的每个组播组创建独立 VLAN 的额外开销。
当启用了 CGMP 后,交换机能自动识别与启用了 CGMP 的路由器相连接的端口。CGMP 默认情况下是启用的,它支持最大为 64 个 IP 组播组注册。支持 CGMP 的组播路由器周期性地发送 CGMP 加入信息(join messages),向网络中的交换机通告自己的存在。交换机保存保存信息,并设置一个等同于路由器保持时间(holdtime)的计时器(timer)。交换机每次接收一个 CGMP 加入信息,定时器就会更新。当最后一个路由器保持时间失效时,交换机删除所有从 CGMP 学得的 IP 组播组。
CGMP 结合 IGMP 信息共同工作实现动态配置 Cisco Catalyst 交换机端口,从而使得 IP 组播流量只被转发给与 IP 组播客户机相连接的那些端口。由于启用了 CGMP 的 IP 组播路由器能够看到所有 IGMP 数据包,因此它可以通知交换机某个主机什么时候加入或离开 IP 组播组。当该路由器接收到一个 IGMP 控制数据包时,它会创建一个包含请求类型(加入或离开)、组播组地址和主机实际 MAC 地址的 CGMP 数据包。然后路由器将 CGMP 数据包发送到所有 Catalyst 交换机都在监听的一个地址上。当交换机接收 CGMP 数据包时,解读该数据包同时更改组播组的转发行为。至此,该组播流量只被发送到与 IP 组播客户机相连接的那些端口。该过程自动实现,无需用户参与。
协议结构
CGMP 信息格式:
| 1 byte | 6 bytes | 1 byte | 6 bytes | 1 byte |
| Count | Group Destination Address | Type | Unicast Source Address | Version |
- Count:无符号8位整数;
- Group Destination Address:目标设备的硬件 MAC 地址;
- Type:信息类型;
- Unicast Source Address:单播源设备的硬件 MAC 地址;
- Version:CGMP 版本号。
组织来源:CGMP 是思科私有协议
相关链接:http://www.cisco.com/univercd/cc/td/doc/product/lan/28201900/1928v67x/eescg67x/03cgmpl.pdf: Cisco Group Management Protocol


