IPv6为组播的实施提供了新的机遇,因为所有的IPv6主机都支持组播且不需要进行地址转换。组播的应用可以节省大量的网络带宽,使得视频会议、网络电视等应用能更好地发展,对于宽带网络用户而言具有重要的实际意义。然而组播的管理和部署相对比较困难,因此有必要研究IPv6下的组播及其相关技术。
IPv6组播
RFC 2373中定义了三种IPv6地址类型:
第一,单播。这是一个单接口的标识符。送往一个单播地址的包将被传送至该地址标识的接口上;
第二,泛播。这是一组接口(一般属于不同节点)的标识符。送往一个泛播地址的包将被传送至该地址标识的接口之一(根据选路协议对于距离的计算方法选择“最近”的一个);
第三,组播。这是一组接口(一般属于不同节点)的标识符。送往一个组播地址的包将被传送至有该地址标识的所有接口上。
组播就是将一个分组转发到一组节点,即用一个特殊的IP 地址来表示多个节点(接口)。组播分组和单播分组一样,以尽力传输的方式发送分组给一组主机。接收分组的组成员是动态变化的,任何时候都可能有主机加入或退出组。组播不限定接收者的位置、个数,同一节点也可以加入任意数量的组播组。使用组播的机制时,路由器之间相互学习组成员信息,发送者不必知道接收者的情况,发送分组在接收者的路径不同时才发生复制。无论组播的接收者有多少,组播数据量是一定的。这样可以适应组播拓扑结构的不断变化,节省大量的带宽,避免网络拥塞,提高服务性能。
像广播地址一样,组播地址在类似老式的以太网的本地网中特别有用,在这种网中,所有节点都能检测出线路上传输的所有数据。每次传输开始时,每个节点检查其目的地址,如果与本节点接口地址一致,节点就拾取该传输的其余部分。这使节点拾取广播和组播传输相对比较简单。如果是广播,节点只要侦听,无须做任何决定,因此简单。对组播来说,稍复杂一些,节点要预订一个组播地址,当检测出目的地址为组播地址时,必须确定是否是节点预定的那个组播地址。
与广播相比较,IP组播更为复杂。一个重要的原因是IP并不是不加鉴别就将业务流放在Internet上转发至所有节点,这也是IP成功之处。如果采用广播方式,它将迫使大多数甚至所有连接的网络屈服。这也是为什么路由器不应该转发广播包的原因。不过,对组播而言,只要路由器以其他节点的名义预订组播地址,就能有选择地转发它。
当节点预订组播地址时,它声明要成为组播的一个成员。于是任何本地路由器将以该节点的名义预订组播地址。同一网络上的其他节点要发送信息到该组播地址时,IP组播包将被封装到链路层组播数据传输单元中。在以太网上,封装的单元指向以太网组播地址;在其他用点对点电路传输的网络上(如ATM),通过其他某些机制将包发送给订户,通常通过某类服务器将包发送给每个订户。从本地网以外来的组播,用同样方法处理,只是传递给路由器,由路由器把包转发给预订节点。
IPv6组播地址的格式不同于IPv6单播地址,采用图1所示的更为严格的格式。组播地址只能用作目的地址,没有数据包把组播地址用作源地址。