摘要:主要讨论IP组播的路由选择问题,指出了路由选择的目的地址问题和回路问题的解决方法。
关键词:IP组播;反向路径转发
近年来,随着信息技术的迅猛发展,网络应用大量增加,使得原来已经存在的、庞大的数据传输量成倍增长,而优化带宽可满足数据传输 量增长的需要,IP组播技术则是优化带宽的重要手段。它适用于多点到多点或一点到多点的数据传输业务,其基本原则是IP组播依托IP协议完 成;IP组播强制网络在数据分布树的分叉处进行信息包复制,而不是由信息源节点多次重复地发送相同的数据包。
一、IP组播模型特征
用户的增加和去除不需要全局协调,加入组播组仅是需要为用户设置一个IP组播地址。为了接收数据,用户在特殊IP组播交叉点中进行注 册,而不需要知道组中其它用户的情况,路由对用户隐藏了组播实现的细节。
如果组播起源于同一个源,而终止不同的用户,且携带的数据相同,需要定义一个组播地址,让网络决定如何将源数据流发往组播地址, 如何在它的链路上组织数据流传输,以最佳地利用带宽。
路由器建立分布树,用于连接组播组所成员,把那些寻址到组播组的IP分组一直转发到具有组播组成员的网络中,并解决组播路由选择中 的回路问题。
发送者使用组播地址发送分组,发送方可以不知道接收方的任何信息,而只需要了解地址。一个组可有任何源。
二、组播路由选择
组播路由选择是网络的一个问题,这个难题的解决需要复杂的有时是难以处理的协议。
1.组播路由选择的两个基本问题
(1)目的地址问题
即如何让网络知道每个组的每个目的地址。每个路由器都连有某个组播成员的主机。组中有一个成员发出组播数据,每个主机使用 Inte.net组播管理协议与直接相连的路由器通信。
当源发送组播分组给它的路由器1时,此路由器将分组转发给网络内的另一个路由器2,路由器2将分组转发给路由器3和与该路由相连接的 目主机;下一跳路由器运行与此相似。结果是每个主机都看到从组播源来的数据流。如果第3和第4个路由器没有任何相连接的主机是组播组成 员,第2个路由器不知道不应转发分组给其余路由器,造成未加入组播组的地址也获得了信息,目的地址不明确。其解决方法是运行Internet组 播管理协议机制侦听网络,以获知网络上哪些节点需要接收组播通信协议。IGMP具有两个功能:将组播成员消息报告给紧接邻域多播路由器; 构建主机和路由的组播群。
(2)组播路由回路问题
有4个路由器的网络中,假设路由器向所有需要组播数据流的路由器或主机所在的接口转发数据流,由于路由器除与主机相连接以外,还相 互连接,结果是产生了组播路由选择回路,造成链路的带宽完全消耗在数据流的传输上。
2.反向路径转发
反向路径转发的基本思想是从每个目的地构建返回到源的最短路径,组播分组转发给所有接口(未有接口除外)。如果组播分组抵达的接 口不是返回到源端的最短路径,则抛弃该分组。距离矢量组播路由协议是IP组播广泛使用的路由协议,它使用反向路径转发来做出组播路由选 择回路的一种方法。它是这样工作的:当路由器收到组播分组时,查看此分组是否在最短返回源路径的接口上。如果不是,则丢弃该分组;如 果是,则转发分组到接口或者路由器。
(1)首先组播源发送一个分组给路由器1,然后路由器1将其转发给路由器2和路由器4;
(2)路由器2通过它的单播路由选择表确定路由器1是在最接近源的接口上收到的,然后它将分组转发给直接相连的接收方,此接收方用 Internet组管理协议加入该组。路由器2也转发分组给路由器3;
(3)路由器4像路由器2一样,用它的单播路由选择表示确定路由器1的分组是在最接近源的接口上收到的。然后,它将分组转发给直接相 连的接收方,此接收方用Internet组管理协议加入该组。路由器4也将分组转发给路由器3;
(4)路由器3收到路由器2和路由器4的组播分组,查找路由选择确定哪一个路由器最接近源主机。路由器3选择了连接到路由器4的通道, 即使连到路由器2的通道到源主机的距离相同,然后路由器3转发组播分组给路由器4和直接相连接的目的主机2;
(5)路由器4收到路由器3的组播分组,确定该分组不是在最近组播源的接口上收到的,结果丢弃该分组。
应用IP组播,用户只需发送自己信息的一个拷贝到所有接收者的IP组播地址中,这显然最佳地利用了网络带宽,IP组播还可以大大减少发 送服务器的负担。IP组播通过分布树能有效地进行一对多的数据流传输,在这种分布树中,两个路由器之间仅需一条传输路径,数据流只在路 径分叉点时才被拷贝。
当某主机希望加入该组时,主机发送Internet组播管理协议加入报文给了解组播源的路由器,路由器发送一个距离矢量组播路由协议嫁接 报文以便开始接收必需的组播通信,嫁接报文被发往上行流直到它们找到分布树。此分布树将一个组播中的分组传递给该组成员。就发送者而 言,仅需要简单发送一个以相应组播地址为目的地址的单个IP分组,剩下的工作都由路由器来完成,其规模可以从一个接收者扩展到数个接收 者。如果路由器发现所有直接相连的组播主机都离开该组,并且没有下行流路由器依赖于组通信,则路由器发送一个剪枝消息给上行流以关闭 通信,发送者根本不用关心组成员的变化。