多播技术主要由控制用户加入/离开多播组的IGMP协议和构造路由器间多播路径的多播路由协议来支持实现。
IGMP(Internet组管理)协议
IGMP协议是一种注册协议,主要完成多播用户组的管理。利用IGMP协议,主机与直接连接的路由器打交道,通知路由器主机希望加入或离开哪一个多播组。
利用IGMP协议,多播路由器可以判断出在它所直接相连的网段中是否存在多播组的成员。如果存在多播组成员,多播路由器就可以向上级多播路由器发送消息,申请加入一个多播组,并将上级多播路由器发送过来的多播数据包转发给多播成员主机。IGMP目前最新的协议为版本2,该协议在RFC2236中有具体说明。
多播路由协议
多播路由协议用于实现多播路由器之间的多播路由信息传递,目前主要有两大类的多播路由协议。
1. 密集模式
适合小规模的网络,例如城域IP网络。密集模式首先假定网络中的每一个路由器都想接收多播数据包,一个发自多播源的数据包会被转发到多播路由器所有的下游接口上,直到某个下游接口被剪枝出多播组。目前密集模式协议主要有DVMRP、PIM-DM等。
2. 稀疏模式
适合于大型网络,例如Internet网络。与密集模式不同,稀疏模式是根据下游路由器发来的加入消息来判断是否将多播数据包发送给下游路由器的。只有下游路由器(叶子路由器)通过IGMP协议检测到它所直连的主机中有某个多播组成员存在的情况下,才会向上游路由器发出加入消息,这样,上游路由器才将数据包向下游路由器进行转发。目前稀疏模式协议主要有PIM-SM。
多播技术是根据路由器下游是否有多播成员来决定是否转发数据包的,这样,支持多播协议的网络,由于只在路由有分支的节点复制数据包,与传统单播协议在源端复制后再一一发送出去的方式比较,不但大大节省了带宽资源,还减轻了源端及中间路由器节点处理重复分组的负担,缩短了通信所需的处理时间,大大提高了网络处理效率。