针对网络应用层实现多播的探析
论文关键词:应用层组播;网络层组播;控制拓扑
论文摘要:传统的多播(Multicasting)服务被实现在TCP/IP协议的网络层,但由于网络层的多播服务实现需要扩展网络层的路由与数据包收发协议,这在大多数的实际网络环境里并不是一件容易的事情.为了加速组播的应用,解决现有组播存在的问题,近年来提出了应用层组播.将组播的功能从路由器转移到终端,不需要路由器维护组播组的路由表,且不用改变现有网络设施,方便实现组播功能.本文介绍了应用层多播的定义和方法,及现阶段国内外已提出的应用层多播协议,并简单地讨论了应用层多播协议的性能评价问题.
0引言
1988年SteveDeering首先在他的博士论文中提出IP组播.IP组播用于一对多、多对多、多对一的组通信.它是一种有效的数据传输应用,发送的同一数据在物理链路中只传输一次,减少了数据包在网络传输中的冗余,节约了带宽,提高了传输效率.然而,十多年过去了,虽然对IP组播的研究一直都在进行,但是由于IP组播本身所带来的缺点,使得IP组播至今并没有能够得到广泛的应用.
IP组播要求路由器为每一个组播组保留状态信息.这样路由器的路由和转发表将需要对每一个不同的组播地址保留一个相应的路由表项,但是组播地址并不像单播地址一样容易集成,因此增加了路由器的系统开销和复杂性.
IP组播是一种尽力而为(best effort)的服务.当要提供高层的特性时,例如:可靠传输、拥塞控制、流量控制以及安全管理等,就会比简单的单播要更困难,以至于因特网服务提供商(ISPs)不愿意提供IP Multicast的支持.虽然目前已经出现了针对上面这些特性的研究,但是这些解决方案目前在Internet上的影响并不明确,需要在大范围应用前进行更好的研究.
IP组播需要对现有网络做底层的改变.同时由于在收费机制方面的技术无法突破,使得目前只有少数的因特网服务供应商支持IP组播.
出于以上的考虑,近年来国外一些研究者开始研究新的组播架构,试图绕开IP组播的种种难题,因此提出了基于应用层的组播协议.即在应用层实现组播的功能,而不是再依靠网络层路由器来实现.这种组播方法不需要任何网络底层架构的改变来实现组播,从而为组播的大范围开展与应用提出了一种新的途径.应用层组播将对组播功能的支持从路由器转移到终端系统,在终端之间运用原来的单播方式进行传输,这样不必改变原有网络中基础设施,也不需要路由器维护组播组的路由表,可以比较容易地实现组播,加速了应用.
1应用层组播介绍
应用层组播的基本模型图如图1所示.图la为IP组播数据传输的方式,数据在网络内部的路由器上进行复制;图1b为应用层组播的数据包在网络的终端系统进行复制.
由于应用层多播不像网络层多播实现数据包的复制在网络层路由器,而是在应用层上.因此,应用层的多播协议要求具有以下特点:
(1)自组织性.多播所基于的逻辑拓扑结构的构建应该是分布式的自组织方式.参与多播的成员可能分布在极广的地理位置范围内,地理位置相近的成员应能先自组织成一个逻辑子拓扑结构来联人整个多播拓扑中.
(2)自适应性.多播基于的数据逻辑拓扑在构建后要能自适应地根据网络服务状态和多播组成员变化做出改变和优化,以便可选择更佳的多播传输路径.
(3)高效性一般地,多播构建的数据传输逻辑拓扑结构必须尽量使得在同一条逻辑传输路径上的冗余数据传输最低.但针对不同的应用要求,多播的高效性也具有不同的侧重含义.如对于视频会议的应用,多播的有效性是指传输的实时性,而对于白板之类的应用即要求实时性也要求传输的可靠性.
1.1应用层组播的优点
(1)应用层组播能够很快就进人应用,不需要改变现有网络路由器.
(2)接人控制更容易实现.由于单播技术在这方面比较成熟,而应用层组播是通过终端系统之间单播来实现的,所以差错控制、流控制、拥塞控制容易实现.
(3)地址分配问题也就可以有相应的解决方案.
1.2应用层组播的缺点
(1)可靠性:终端系统的可靠性比路由差.
(2)可扩展性:底层的路由信息对应用层组播来说是隐藏其来的,可扩展性不好.
(3)延迟比较大:IP组播主要是在链路上的延迟,而在应用层组播中,数据还要经过终端系统,因而延迟相对要大一些.
(4)数据传输效率不如IP组播:应用层组播在数据传输过程中会产生数据冗余,因此它们比IP组播的效率差.
2应用层组播协议的实现
应用层组播协议通常把组成员组织成两个逻辑拓扑:控制拓扑和数据传输拓扑.拓扑上的每条边相当于一条单播连线.控制拓扑主要用来在端系统间周期性的交换控制信息来发现和恢复由于一些成员的非法离开造成的拓扑破坏.数据拓扑通常是控制拓扑的一个子集,主要用来表明数据包的传输路径。实际上,数据拓扑一般是一个网状拓扑结构.因此,根据构建控制拓扑和数据拓扑的顺序,可以将目前网络层组播协议的实现方法分为:网优先(Mesh-first)多播、树优先(Tree-first) 多播和隐含多播三类
网优先多播协议中,多播成员首先分布式地组织形成一个网型的控制拓扑,在某一对多播组成员之间可能存在多条的连接路径.基于这个网型的拓扑,每一个多播组成员根据某种路由协议分布式地计算出自己到每一个其它多播组成员的数据传输路径.然后可借助许多网络层多播协议如DVMRP使用的转发逆向路径(Reverse Path Forwarding)算法可构造出基于任一多播组成员为树根的树型多播传输拓扑.Narada就是属于这类的一种应用层多播协议,也是最早提出的应用层多播协议之一
相反地在树优先多播协议中,首先构建的是一个所有多播组成员共享的树型多播数据传输拓扑,接着,每个多播组成员发现那些树型中与其不相邻的多播组成员,并分别建立连接路径到这些成员,这样在树型拓扑基础上再加入这些新添的连接路径构成网型的控制拓扑.目前的Yoid和HMTP都是属于这类的应用层的多播协议.
隐含多播协议里,控制拓扑是有协议使用的一定的算法将多播组成员事先组织成某种逻辑结构.基于这个逻辑结构,分别按照某种数据的转发算法来定义形成协议的控制拓扑与数据传输拓扑.这样控制拓扑和数据传输拓扑都是在协议事先基于的逻辑结构中被定义,而不需要像前面提到的两类多播协议一样来基于其中之一构建形成另一者.并且协议只需维护多播组成员事先组织成的逻辑结构,不需要去直接维护协议的控制拓扑与数据传输拓扑.这类应用层多播协议由于不需要在多播组成员之间进行频繁的状态信息的通信交互,从而避免了除数据传输之外的成员状态信息通信的传输负载,因此特别适合于大规模的多播通信.目前这类应用层多播协议很多,如NICE .CAN-Multicast、Scribe和Bayeux协议等.
3应用组播的性能参数
评价应用层组播协议一般用以下几种方式:
3.1数据分发路径的质量
主要有下面三个指标:
(1)强度(Stress).在一条物理链路中发送相同数据包的数量.显然IP组播进行转发反而时候并进行多于的复制,所以是最优值1.如图1b中1一4的强度为2.
(2)伸展度(Stretch).就是在覆盖网分发拓扑中从源到成员的延迟与利用单播直接传输的延迟比例.
(3)资源利用率(Usage).所有参加到数据传输的成员,他们的延迟和强度的乘积的总和.这个指标用于评定传输过程中网络资源的利用情况,假定链路的延迟越高,花费越大.
3.2终端的性能
(1)失效后包丢失:单个节点突然失效后,平均的丢包数量.强调突发事件发生的鲁棒性.
(2)收到第一个包的时间:当成员加人到组中,收到第一个包的时间.
3.3控制负荷(Control Head)
为了有效地利用网络资源,对每个成员的控制负荷必须尽量的小,这是能否很好扩展的重要指标.
4结束语
应用层的多播研究目标是构建高效的应用层的数据传输拓扑和用来维护这种拓扑的控制拓扑以解决多播组的动态变化,目前的应用层多播研究也主要是研究构建这两种拓扑的算法和基于它们的数据传输与组管理机制.应用层多播作为一种在应用层实现数据多播服务的传输方式,相对于网络层多播具有更好的应用灵活性和可伸缩性.虽然在传输性能上要低于网络层的多播,但由于其不需要对现有网络层协议的单播数据传输服务进行扩展,而只需凭借现有的网络提供的单播服务在应用层实现多播功能,因此应用层的多播在应用实现中具有更强的现实意义.