(1)组播协议
在IP组播传输模型中,发送者不关心接收者所处的位置,只要将数据发送到约定的目的地址,剩下的工作就交给网络去完成。网络中的路由器设备必须收集接收者的信息,并按照正确的路径实现组播报文的转发和复制。在组播的发展过程中,形成了一套完整的协议来完成此任务。
· 接收者信息的收集和管理,通过IGMP(Internet Group Management Protocol)或MLD(Multicast ListenerDiscovery)协议完成。IGMP用于IPv4网络,MLD用于IPv6网络。
· 组播报文转发路径的建立,有多种组播路由协议可以完成。目前应用广泛的是PIM(ProtocolIndependent Multicast)协议。PIM是一种域内组播路由协议,当跨PIM域传递组播源信息时,需要MSDP(Multicast Source Discovery Protocol)协议;当跨AS(Autonomous System)域建立组播路由时需要MBGP(MultiProtocolBorder Gateway Protocol)协议。
在一个小型网络中,所有的组播路由器都在一个PIM组播域内。图1所示为单PIM域的组播网络。
图1 单PIM域组播网络示意图
表1 单PIM域组播网络中应用的协议 | ||
---|---|---|
协议 | 部署位置 | 作用 |
IGMP,用于IPv4网络MLD,用于IPv6网络 | 组播路由器与用户主机之间,路由器配置在与主机相连的接口上 | 在主机侧实现组播组成员动态加入与离开。在路由器侧实现组成员关系的维护与管理,同时与上层组播路由协议进行信息交互。 |
PIM,可以是PIM-DM(Dense Mode),也可以是PIM-SM(Sparse Mode) | 所有组播路由器上,配置在所有接口上 | 实现组播路由与转发,并可以动态响应网络拓扑变化,维护组播路由表。 |
IGMP Snooping,用于IPv4网络MLD Snooping,用于IPv6网络 | 组播路由器和用户主机之间的二层交换机上,配置在VLAN内 | 侦听路由器和主机之间发送的IGMP/MLD报文建立组播数据的二层转发表,从而管理和控制组播数据在二层网络中的转发。 |
为了便于控制和管理组播资源(组播组、组播源和组播组成员),需要将组播资源在域间进行隔离,从而形成一个个隔离的PIM-SM域。图2所示为跨PIM-SM域的组播网络。
图2 跨PIM-SM域的组播网络示意图
为了使不同的PIM-SM域之间组播数据能够互通,需要在域间部署MSDP协议。MSDP通过在各个PIM-SM域之间建立MSDP对等体关系,对等体之间交互SA消息来传递组播信息,从而实现接收者主机可以接收其他PIM-SM域的组播源数据。MSDP仅用于IPv4网络,只对ASM服务模型有意义。在单个PIM域内,使用IGMP管理组成员关系,使用PIM-SM建立组播路由指导数据转发。
由于PIM协议依赖于单播路由表,从而组播转发路径与单播转发路径是一致的。当组播源与接收者分布在不同的AS中时,需要跨AS建立组播转发树。此时可以部署MBGP协议,生成一张独立于单播路由的组播路由表,使组播数据通过组播路由表进行传输。图3所示为跨AS域的组播网络。
说明:
关于MBGP的描述,请参见《特性描述-IP路由》中的“BGP”。
图3 跨AS域组播网络示意图