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组播的数据沿着物理链路复制和转发,而应用层组播的数据则在主机实现复制和转发,数据报沿着逻辑链路转发,多跳逻辑链路可能经过同一条物理链路。
自组织算法是端系统组网的核心功能和机制,自组织算法的主要功能包括:周期性地交换节点状态信息,通报组成员状态;周期性地收集网络逻辑连接的带宽、时延等动态参数;动态地调整叠加网拓扑。
直观上,端系统实现组播功能可以避开网络层实现组播功能的许多难题:一是应用层组播的状态在主机系统中维护,不需要路由器保持组的状态,解决了业务的扩展性问题,网络可以支持大量的组播组。二是组播应用可以随时部署,不需要网络设备的升级和功能扩展。三是可以简化组播的控制、可靠等功能的实现,建立在网络连接之上的应用层组播可以使用TCP、UDP服务,如可以利用TCP的可靠和拥塞控制简化组播的可靠和拥塞控制。
当然,应用层组播也有许多局限:一是端系统对IP网络的了解有限,节点参与组网时,只能通过探测获得一些网络性能参数,选取的逻辑链路难以优化;二是主机不了解IP网络的拓扑结构,只能通过带宽和时延等外在的特性参数,以启发式的方式建立叠加网,逻辑链路不能较好地利用质量较好的底层网络资源,叠加网的多条链路可能经过同一条物理链路。
4 应用层组播的研究现状和进展
应用层组播思想提出后的短短几年内,多个研究机构开展了应用层组播体系结构的研究项目,如:ESM(end system multicast)[5]、YOID[6]、Scattercast[7]、Overcast[8]、ALMI[9]、HM(host multicast)[10]等,我们首先对这几个项目进行简单的介绍,然后做一个比较。
(1)ESM
ESM是CMU(卡耐基·梅隆大学)开展的一个端系统组播研究项目,是目前为止最成功的一个项目。2000年,ESM的研究表明,在端系统中实现组播功能的体系结构是可行的,可以支持组成员在几百范围内、分布稀疏的、较小规模的多方通信。2001年,通过在因特网中实际运行基于ESM的视频会议,验证了ESM采用的自组织协议可以在动态的、异构的因特网中支持较小规模的视频应用。
Narada是ESM的组网协议。Narada协议首先在组播成员之间建立一个网状的叠加网, 然后在叠加网上运行组播路由协议,建立一棵组播转发树。通过动态探测网络状态,Narada动态地对叠加网进行维护和改良。
(2)YOID
YOID是ACIRI(AT&T Center for Internet Research at ICSI) 研究中心在2000年提出的,基于应用层组播的一整套内容分发的解决方案,包括了应用层组播之上的可靠、安全、拥塞控制等机制。YMTP(YOID multicast tree protocol)是YOID体系的核心,是一种自组织的拓扑管理协议,将主机组织成网状网和共享的组播转发树。
(3)Scattercast
2000年,Berkeley大学的Y.Chawache在其博士论文中提出了Scattercast的体系结构。这是一种基于应用层组播实现因特网大规模广播业务的体系结构。其思想是在因特网中部署支持广播业务的服务器,称为Scattercast Proxy节点,应用层组播将这些服务器组织成一个因特网广播业务的支撑网,支持用户规模巨大的Internet 广播和软件分发应用。 Scattercast体系结构包括应用层组播机制、应用层组播之上的传输层机制以及内容请求的实现机制。Gossamer是Scattercast体系结构的自组织组网协议。
(