|
由于组播源是向多播组发送数据包而非单播模型中的具体目标主机,所以组播路由器不能依靠IP包中的目标地址来决定如何转发数据包,而必须将组播数据包转发到多个外部接口上,以便同一多播组的成员都能接收到数据包。这使组播转发比单播转发更加复杂。大多数现有组播路由协议使用逆向路径转发(RPF)机制作为组播转发的基础。
|
|
|
逆向路径转发(Reverse Path Forward, RPF)
|
|
|
当组播数据包到达路由器时,路由器作RPF检查,以决定是否转发或抛弃该数据包,若成功则转发,否则抛弃。
|
|
|
|
检查数据包的源地址,以确定该数据包经过的接口,是否在从源到此的路径上;
|
|
|
若数据包是从可返回源主机的接口上到达,则RPF检查成功,转发该数据包到输出接口表上的所有接口;否则RPF检查失败,抛弃该数据包。
|
|
|
|
对于每一个输入组播数据包进行RPF检查会导致较大的路由器性能损失。因此,建立组播转发缓存时,通常由组播路由确定RPF接口。然后将RPF接口变成组播转发缓存项的输入接口。一旦RPF检查程序使用的路由表发生变化,必须重新计算RPF接口;并更新组播转发缓存项。
|
|
|
|
每当路由器转发组播数据包,IP包中的TTL(Time To Live)值都减1。若数据包的TTL减少到0,则路由器将抛弃该数据包。TTL阈值可用于组播路由器的各个接口,以防止在该接口上转发低于TTL阈值的组播数据包。这样可对组播的范围加以控制。下表给出典型的初始TTL值和作为不同TTL边界的路由器接口TTL阈值。
|
|
|
|
|
|
除TTL阈值外,组播提供另一种称为管理权限的地址机制作为边界,以限制组播信息转发到域外。管理权限的组播地址是从239.0.0.0到239.255.255.255,这段地址被认为是本地分配(类似于单播中的192.168.xx.xx),不能用于Internet。这种机制使得在Intranet内部可中已经没有任何成员的事件延时了一段时间,所以在IGMP v2.0中,当每一个主机离开某一个多播组时,需要通知子网组播路由器,组播路由器立即向IP子网中的所有多播组询问,从而减少了系统处理停止组播的延时。重复使用组播地址,提高组播地址空间的利用率。
|
|
|