组播技术研究曹佳 鲁士文摘要 本文从组播路由、组播安全可靠性、组播拥塞控制等方面论述了IP 组播的研究现状和相关标准。
为了解决IP 组播过于依赖底层网络基础设施的问题,现在应用层组播已成为一个新的研究热点,本文也叙述了应用层组播的发展状况。
关键字 IP 组播、应用层组播、组播路由、组播安全可靠性、组播协议1 引言随着网络技术的不断发展,FTP 1、HTTP 2、SMTP 3等传统数据业务已经难以满足人们对信息业务的需求,视频点播、远程教学、新闻发布、视频会议等业务在应用中变得日益重要。
这类业务的特点是,信息在一个组内以一对多或者多对多的形式进行传输。
例如新闻发布-信息由一个服务器发布,大量不固定的接收端接收。
如果采用单播方式来传输这些信息(如图1(a)),那么发送源就必须维护每个客户信息。
当客户数目很多时,对于发送源来说还需要很高的传输速率。
另外,相同的数据可能在同一个链路上传输多次,消耗大量的网络带宽。
因此需要一种专门的组传输机制,这就是组播。
组播可以在网络的各个层次上实现:物理层(例如,卫星、以太网)、网络层(IP 组播)(如图1(b))、应用层(覆盖组播/应用层组播)(如图1(c))。
本文主要叙述IP 组播和覆盖组播这两种传输机制。
(a )单播 (b )IP 组播 (c )覆盖组播图1 组通讯的单播、IP 组播、应用层组播实现示意图1File Transfer Protocol 2 HyperText Transfer Protocol 3 Simple Mail Transfer Protocol2 IP组播目前致力于组播研究的国际研究组织很多,其中IETF(Internet工程任务组)下属的组播工作组有:IDMR4、PIM5、MSEC6、RMT7、MAGMA8和SSM9。
IDMR工作组致力于完成域间的组播路由;PIM工作组主要研究域内组播路由;MSEC工作组主要研究组播安全方面的内容,保证只有合法成员才可以得到组通讯内容,合法的组成员可以进行源认证和内容认证、抵抗拒绝服务攻击、组密钥管理和组策略管理;RMT工作组负责可靠组播传输的标准化工作;MAGMA 工作组研究组播和任播(anycast)机制,其中涉及组播成员的认证、访问控制等等,这一点与MSEC工作组的工作类似;SSM工作组负责定义特定信源组播机制。
这些工作组的分工不是十分明显。
比如负责组播安全的MSEC通常需要与具体实现安全的IPSec等工作组交融,与诸如PIM, RMT, IDRM, MAGMA工作组进行联系。
总体上,根据这些工作组的分工可以将组播的研究领域大致分成:组播路由、安全组播、可靠组播和特定源组播。
表1列出了几个典型的RFC(Request For Comments)文件,详细信息可参考/rfcs/np.html。
表1 几个典型的关于组播的RFC文件领域RFC 描述组管理RFC 3376 IGMPv310组播路由RFC 2362 PIM-SM11 RFC 2189 CBTv212 RFC 1075 DVMRP13 RFC 1584 MOSPF14 RFC 3913 BGMP15安全组播RFC 1949 可扩展的密钥发布RFC 2627 组播的密钥管理RFC 3740 安全组播框架RFC 3830 MIKEY16支持多媒体传输的密钥管理可靠组播RFC 3453 基于FEC17的可靠组播RFC 3048 针对大量数据传输的可靠组播指定源组播协议RFC 3569 指定源组播协议概述IP组播技术是一项很实用的技术,有众多的厂商和Internet业务提供商参与推动这项技术的发展。
他们还成立了一个论坛型的组织“IP组播倡议组织(IPMI)”。
成员包括差不多4Internet-Draft Multicast Remnants5Protocol Independent Multicast6Multicast Security7Reliable Multicast Transport8Multicast & Anycast Group Membership9Source-Specific Multicast10IGMP: Internet组管理协议11稀疏模式协议无关组播12CBT: Core-Based Tree13Distance Vector Multicast Routing Protocol14Multicast Open Shortest Path First15Border Gateway Multicast Protocol16Multimedia Internet Keying17Forward Error Correction所有全球主要的网络设备厂商、不少电信运营公司和ISP 18,如Cisco 、朗讯、3Com ,阿尔卡特、AT&T 、Sprint 、UUNET 等几十家。
他们共同致力于IP 组播协议标准的开发、应用、推广、项目实施和互通。
早在1988年Deering 就提出了IP 组播机制。
它是最早的、最有效的组播传输机制。
在IP 组播中,每个组播会话通过一个组播地址([IPv4]224.0.0.0 ~ 239.255.255.255;[IPv6]FF::)标识,即每个组播组对应一个组播地址。
于是每个源发方只需要向相应的组播地址传输一次报文,就可以保证所有的组成员都收到这个报文,如图1(b )所示。
其中,组播路由器(图中的圆圈)负责路由、复制和转发组播报文。
IP 组播避免了在链路上传输重复报文,从而节省了网络带宽,可实现高效的组播通讯。
2.1 相关的基本协议:组管理协议和组播路由协议在IP 组播通讯中需要完成两个方面的基本工作:组播成员如何加入组播,如何将组播信息路由到每个接收者那里去。
这样就产生了两类基本的协议:组管理协议和组播路由协议。
IGMP 用于主机与边缘组播路由器之间。
主机使用IGMP 消息通知本地的边缘组播路由器它想加入的组,即通知相应组的组播地址。
组播路由器通过IGMP 协议来维护一个组播成员列表,并且定期发送“成员询问”消息来探寻表中的各个成员是否仍然存在。
在IGMPv2中,增加了退出通知这一功能。
一旦组播路由器知道了所在域是否存在组播成员,就可以通过组播路由协议来决定是否加入到相应组通讯中,即是否进入组播的转发树中。
此时需要组播路由协议。
它运行于组播路由器之间,负责构建转发树和路由组播包。
按照组播路由协议使用的范围可以分为域内组播路由协议和域间组播路由协议。
其中域内组播路由协议包括DVMRP (距离向量组播路由协议)、 MOSPF (最短路径优先组播)、PIM-SM 、 PIM-DM 19(密集模式协议无关组播)和CBT (核心树协议)等;域间组播路由协议包括MBGP 20(组播边缘网关协议)等。
为了将组播数据传送到所有的组成员,组播路由器之间需要建立和维护组播转发树。
因此按照构建转发树方法的不同可以分成有源树和共享树协议。
有源树协议需要为同一个组播会话中的每个组播源构建一个最短路经组播生成树;而共享树协议需要在网络中选取某一点作为公共的根节点,然后再构建一棵生成树,各个组播会话的组播数据均沿着一个公共的转发树发送。
显然,有源树协议的构造、维护代价比较大,但是传输过程中每个组播源都可以获得自己最佳的传输路径。
图2 IP 组播路由协议的分类 18Internet service provider 19 Protocol Independent Multicast Dense Mode 20Multiprotocol Border Gateway Protocol域内 域间 组播路 由协议DVMRP MOSPF PIM-DM/SM CBT 有源树 共享树 组播路 由协议 DVMRPMOSPFPIM-DMPIM-SMCBTHIP (HierarchicalMulticast protocol ) MBGPDVMRP 是第一个在MBONE21(组播试验床)上得到普遍使用的组播路由协议,它是一个洪泛剪枝协议。
DVMRP在RIP22协议的基础上扩展了组播功能。
与RIP协议不同的是,RIP计算路由器到目的地的最佳下一跳,而DVMRP根据路由器到源方向的上一跳的信息来构建转发树。
DVMRP 协议首先通过发送探测消息来发现邻居,然后通过路由交换来进行路由选择和确定上下游依赖关系。
PIM_DM使用“扩散与剪枝”机制来建立和维护转发树。
路由器周期性地发送Hello 消息,以发现相邻的PIM路由器,并且负责在多路访问网络中选举指定路由器,然后根据单播路由表的信息来确定上下游依赖关系。
PIM_DM与DVMRP十分类似,当组播源第一次发送组播报文时,使用TRPB23算法沿着源的组播转发树向下转发组播数据包。
MOSPF是OSPF24协议的一个扩展,它通过OSPF路由表来获得网络拓扑。
MOSPF路由器除了进行组播路由选择外,还要进行正常的OSPF单播路由选择。
像OSPF一样,MOSPF 也是使用层次路由,包括区内组播路由、区间组播路由、自治系统间组播路由。
一种流行的组播体系结构是基于IGMPv3、DVMRP、MOSPF、PIM-SM和MBGP这些协议构建的。
2.2 可靠组播当前,支持IP组播的标准传输层协议只有UDP25(用户数据报协议),因而组播报文的传输是不可靠的。
IP层的Multicast通信只提供尽力型服务,不保证组播数据报文的可靠传输。
研究高效和可靠的可靠组播(RM: Reliable Multicast)机制,完成类似单播服务中TCP的可靠传输功能,成为最近五年来IP组播协议研究中的重要方向。
对RM机制的研究比对TCP可靠机制的研究要困难得多,其根本的原因是应用程序对可靠性的要求差异很大,不可能设计出一个可以满足所有应用要求的RM协议模型,所以每个协议都要针对一个应用类型进行设计。
协议要综合考虑应用的服务要求、应用的可扩展性能和应用所处的网络环境,并利用通信流的特点提供高性能、低开销的RM通信服务。
RM的核心问题是如何根据组播通信过程中丢失分组报文的情况来迅速、高效地恢复丢失的报文,使得接收者接收到正确、有序的报文。
这里主要涉及缓冲区的管理和对应答帧的处理。
RM必须在报文恢复的性能和代价之间折衷。
其算法主要包括RM错误恢复算法和拥塞控制算法两部分。
评价RM性能的要素有两个方面:一是数据吞吐率,即发送有用数据同冗余数据和控制报文的比例;二是恢复的时延。
最理想的RM算法应当使吞吐率最大,而恢复的时延最小。
目前主要有三类RM组播协议:云状可靠组播协议、环状可靠组播协议和树状可靠组播协议。
云状可靠组播协议直接利用IP组播协议所建立的组播转发树,根据谁负责发现错误的原则这类协议又可分为:基于发送方的可靠组播协议和基于接收方的可靠组播协议。