1 前言
组播(multicast)是一到多或者多到多的多方通信形式,远程会议、交互式仿真、分布式内容系统、多方游戏等应用都对组播业务(multicast service)提出了需求。在OSI模型的网络层或者应用层实现业务是目前组播业务的两种实现体制,本文对这两种体制的体系结构进行了讨论,对两种体系结构的发展及其对IP网络体系结构的影响提出了一些看法。
2 IP组播的历史、现状及困境
1988年Deering提出了将组播的功能机制增加到数据网IP层的组播实现体系结构,这种体系结构称为 IP组播(IP multicast)。IETF RFC1112对IP组播的业务提供的方式和形式进行了描述和定义,被看成是IP组播的标准业务模型的定义。
标准IP组播业务模型定义了主机和路由器IP层应有的功能机制和上层所看到的组播业务的形式。主机组(host group)是IP组播概念的核心,多个主机组成主机组,用一个IP组播地址标识,以组地址为目的地址的组播数据以IP数据报的best-effort方式转发到主机组的各个主机。组播路由器承担组播数据的寻路和转发控制功能,这些路由器及链路在网络中形成了一个控制组播数据传送的逻辑结构,称为组播转发结构(delivery structure),这种结构一般是树形的结构,称为转发树,在转发树上的组播路由器接收、复制、转发组播数据。
历经20多年的研究和发展,IP组播已经形成了较为完整的组播协议体系,包括组播主机和网络的交互协议、组播路由协议、组播的地址管理协议等。
组播路由协议是IP组播协议体系中最核心的功能。IP组播路由协议的发展分成域内(intra-domain)和域间(inter-domain)两个阶段:最初的IP组播路由协议将网络看成没有层次结构的平面网络,组播路由算法采用广播方式交互协议消息,因而只能应用在IP网络的路由自治域内,称为域内路由协议;域间路由协议的出现是为了解决在大型的、分层的IP网络中组播路由问题,大型IP网络采用自治域结构形式组织网络,域间路由协议解决了分层结构网络的组播路由问题。
1992年IP组播实验网——Mbone建立,从1992~1997年,IP组播的协议标准和部署方法在Mbone中进行研究实验。1997年以后,分层结构网络域间组播路由的标准化成为IP组播研究的主要领域,域间路由协议体系的部署实验开始在Internet 2的两个骨干网(vBNS, Abilene)中进行,从1999年中开始采用MBGP/MSDP[1,2]和PIM-SM[3]协议体系实现域间组播路由。
目前绝大多数面向内部网络的路由器都实现了PIM-SM组播路由协议和IGMP协议,具有支持组播业务的能力。在一些内部网络中,IP组播业务已经得到一些应用,比如基于IP组播建立的视频传输系统可以有效地支持大规模的接收终端,但是由于对组播业务的管理还缺乏有效的解决方案,路由器的组播功能往往没有开放。
随着对IP网络组播研究的深入,业界普遍认识到仅仅依靠标准组播业务模型无法很好地支持所有的组播应用,而大量的、可以预见的组播应用是源节点确定的应用,由此提出了采用单源组播业务模型支持单源组播应用的思想,IETF提出的 SSM(source specified multicast)[4]体系结构是基于单源组播思想的,SSM采用了严格的一到多业务模型。
SSM业务模型引入了组播通道的概念,组播通道(组播源地址,组播组)是二元组,组播源地址是唯一可以发送组播数据的源主机的IP地址,组播组是一个SSM组播地址,组播通道是组播路由器转发组播数据报使用的信息。
与标准组播业务模型相比较,SSM业务模型具有以下的优点:SSM模型提供了组播接入的限制机制;组播源节点确定,路由协议实现简化;组播组的管理由源节点管理和协调,不需要全网络的组地址管理机制。
SSM业务模型提出后,迅速得到了学术界、工业界的重视和支持,实现SSM业务的协议体系研究进入了一个快速发展时期,提出了PIM-SSM和IGMPv3草案,PIM-SSM是支持SSM业务模型的组播路由协议,IGMPv3草案支持SSM业务模型。
从因特网中IP组播的应用现状看,尽管经过了20多年的发展,IP组播并没有取得预期的成功。一方面,因特网中的网络极少开放IP组播业务,至今还没有全因特网范围的组播业务;另一方面,基于IP组播的上层应用也屈指可数,相对于WWW等新的体系结构,IP组播的发展非常缓慢。
从因特网发展的过程和IP网络的体系结构看,阻碍IP组播业务发展的主要因素为:
IP组播体系结构缺乏可扩展性。路由器需要为每个活动的组维护路由状态信息,而且这些组播地址不能聚合,网络中大量的活动组将需要路由器巨大的存储和处理开销。此外,组播组成员的动态使网络必须动态维护路由状态,更增加了组播路由器的处理开销。
开放的IP组播模型在开放的因特网环境中难以支持有效的管理和控制机制。标准的IP组播业务模型是一种any source、any receiver的开放模型,任何节点都可以创建组,可以向组发送数据,节点可以加入任何感兴趣的组接收数据,发送节点不知道具体的单个接收节点,接收节点也不需要知道发送数据的节点。在这种模型下,接入控制、组管理、组地址的协调机制一直没有有效的解决方案.
IP组播还没有清晰的商业费用模型,网络运营商之间有不同的利益取向。目前骨干网运营商以带宽使用获得收益,对承载的是IP单播业务还是IP组播业务没有必要区分,也就没有动力在路由器中增加对IP组播的支持。
3 应用层组播
面对IP组播业务在因特网中的困境,一些研究者开始反思IP组播体系结构本身的问题,提出将复杂的组播功能放在端系统实现的新思想。端系统实现组播业务的思想是将组播作为一种叠加的业务,实现为应用层的服务,因此,端系统组播又称为应用层组播(application layer multicast)。图1显示了应用层组播在IP体系结构中所处的位置。应用层组播网的节点是组播成员主机,数据路由、复制、转发功能都由成员主机完成,成员主机之间建立一个叠加在IP网络之上的、实现组播业务逻辑的功能性网络,称为叠加网(overlay network),主机基于自组织算法建立和维护叠加网。图2示意了应用层组播的基本思想及其与IP组播的差别,IP组播的数据沿着物理链路复制和转发,而应用层组播的数据则在主机实现复制和转发,数据报沿着逻辑链路转发,多跳逻辑链路可能经过同一条物理链路。