摘要: 多播通信是现在的一大
网络热点技术。本文主要叙述了
IP多播技术的基本概念,多播的编址,Internet组管理协议(IGMP),多播路由算法和已有的多播选路协议,以及正在研究的新多播选路协议。还介绍了多播中的主要问题:安全问题和
QoS问题,并简要多播应用现状及前景。
关键词:多播组 多播路由 多播树
1.引言
随着Internet的发展,出现了如 视频点播、电视会议、远程学习、 计算机协同工作等新的业务。用传统的点到点通信方式,不仅浪费大量的网络带宽,而且效率很低。一种有效地利用现有带宽的技术就是多播技术。多播是一种点到多点(和多点到多点)的通信方式,即多个接收者同时接收一个源发送的相同信息。
在多播中,组的概念是十分重要的。由多播的定义可知,多播报文是从一个源发到一组目的结点。在IP多播中,多播组有一ID号叫做多播组ID号,它指定了发送报文的目的组,这些ID号实际上是D类IP地址。若一个主机想要接收发到一个特定组的多播报文,它需要监听发往那个特定组的所有报文。为解决Internet上多播报文的选路,主机需通过通知其子网上的多播 路由器来加入一个组,多播中采用Internet组管理协议(IGMP)来达到此目的,离开组也要用IGMP。这样,网络上的多播路由器就知道网络上的多播组成员,并由此决定是否向它们的网络上转发多播报文。当一个多播路由器收到一个多播分组时,它检查报文的ID,仅当那个组有成员时才向其转发。IGMP提供了在转发多播报文到目的地的最后阶段所需信息。多播路由器之间相互交换信息,这些信息是从与它们直接相连的主机的组成员中搜集的。多播路由器间交换路由信息的算法有“泛洪”,“生成树”,“反向路径广播”“反向路径多播”等,有些算法被用于动态多播路由协议中,如距离矢量多播路由协议(Distance Vector Multicast Routing Protocol,DVMRP)、多播开放式最短路由优先协议(Multicast Open Shortest Path First,MOSPF),核心树协议(Core-Based Tree,CBT),独立于点到点协议的多播协议(Protocol Independent Multicast,PIM)等。从通过这些协议中取得的路由信息,多播路由器要决定是否向它们的网络上转发分组。最后,处于叶子节点的路由器要查看与其特定组相连的物理网络上是否有成员,并决定是否转发分组。
本文下一部分介绍多播编址,以及它们与MAC层地址的转换,然后是IGMP,再讨论路由算法和协议,最后,介绍了多播基干(Mbone)和多播的前景。
2.多播组
2.1编址
IP有三种基本类型的地址:单播,广播和多播。单播地址用于传输一个报文到一个单独的目的节点;广播地址用于传输一个报文到子网上的所有节点;多播地址用于传送一个报文到可能不在同一子网上的一组目的节点。
2.2Internet组管理协议(IGMP)
IGMP是多播路由器用来了解多播组成员信息的协议,它主要使用两种类型的报文:组成员查询报文和组成员报告报文。多播路由器周期性地发送组成员查询报文,以了解相连的子网上哪些组有成员。查询报文发送到所有的主机组。主机响应一成员报告报文,报告它们所属的多播组。当一个主机加入一个新的组时,它应立即发送一个加入报文,而不是等待一个查询,以防万一它是那个组的第一个成员。
当主机作为某个组的成员开始收到信息后,多播路由器就会周期性地对该组进行查询,检查组内的成员是否还参与其中,只要还有一个主机仍在参与,多播路由器就继续接收数据。当所有的主机都离开了组后,多播路由器会收到一个IGMP的“离开”消息报文,多播路由器就会马上查询组中是否还有活动的组成员。如果有活动的组成员,多播路由器就继续转发数据;如果没有,就不再转发数据。
3.多播路由算法及协议
实现多播通信的最普遍的方法是构造树型路由,这是因为树型路由有以下两个优点:1)分组以并行方式沿树枝到达不同的接收者;2)分组的复制仅在分叉处进行,使得网络中所传送的分组数最少。
多播路由就是寻找从源到一组目的节点的一棵树,信息沿着此树传送到所有的接收者。成组多播则是寻找一组树的集合,每一棵树对应一个节点的多播路由。
目前在构建多播树的算法中,主要有泛洪(Flooding),生成树(Spanning Tree, ST),最短路径树(Shortest Path Tree,SPT),最小生成树(Minimum Spanning Tree,MST),最大带宽树(Maximum Bandwidth Tree,MBT),反向路径广播(Reverse Path Broadcasting,RPB),裁剪的反向路径广播(Truncated Reverse Path Broadcasting,TRPB),Steiner树(Steiner Tree,ST),受限Steiner树(Constrained Steiner Tree,CST),反向路径多播(Reverse Path Multicasting,RPM)和核心树(Core-Based Tree,CBT)等算法。
Internet上的多播主要用两种类型的选路协议。第一种叫作多播内部 网关协议(Muticast Interior Gateway Protocol,MIGP),多播路由器用来在一个自治系统内进行通信。如距离矢量多播路由协议(DVMRP),多播开放式最短路由优先协议(MOSPF),核心树协议(CBT),独立于点到点协议的多播协议(PIM)。第二种是边界路由器用来在自治系统(AS)间进行通信的协议,如边界网关多播协议(Border Gateway Multicast Protocol,BGMP)。
在上面介绍的多播路由算法中,只有一部分用于实际中。DVMRP和MOSPF使用最短路径树,而CBT和BGMP使用核心树来进行多播,PIM则用核心树或反向最短路径树。以下介绍DVMRP,MOSPF,CBT,PIM等协议。还介绍了几种新的协议,明确要求单个源的协议EXPRESS(Explicitly Requested Single Source)和SM(Simple Multicast)。
3.1距离矢量多播路由协议(DVMRP)
DVMRP是在Mbone上使用的多播路由协议,它使用RPM来构建多播树。DVMRP为每条通信链路指定了一个尺度和阈值。尺度指定了链路的路由代价并用以构建反向最短路径树,阈值是一个多播分组需要转发到一给定链路的最小生存时间(TTL)。阈值可用来限制多播分组的传播范围,
在DVMRP中,多播路由器与它们的邻近多播路由器周期性地交换路由信息。多播路由器利用从邻近多播路由器得到的路由信息建立自己的多播路由表。
随着Mbone的飞速发展,由DVMRP而导致的大量路由控制分组定期在网络中的传播限制了网络规模的扩大。于是提出了分层DVMRP 的概念,即将Mbone分成多个区域进行分层管理,区域内的多播通信可按任何协议进行,而区域之间的多播通信由边界路由器按DVMRP协议进行。这样,就减少了路由控制信息的开销。
3.2开放式最短路径优先多播协议(MOSPF)
MOSPF是利用点到点的链路状态数据库,以OSPF为基础的多播路由协议。在OSPF中,链路状态数据库是通过五种不同类型的链路状态通告分组(Link-State Advertise ments,LSA)来建立的。LSA分组就是“描述路由器或网络的本地状态的数据单元。对路由器来说,这包括路由器的接口和邻近接口的状态。每个链路状态通告用泛洪算法在选路域中传播。”MOSPF通过加入一类新的LSA分组,叫组成员LSA分组,来对OSPF进行扩展。在MOSPF中,路由器用IGMP来了解相连的网络上的组成员信息,并用泛洪算法在自治系统内传播组成员LSA分组。因此,路由器通过使用链路状态数据库,可为自治系统内的任何节点建立最短路径树。当路由器收到多播分组时,它根据分组中的源计算最短路径树,并沿此树转发分组。为了节约路由器的CPU和内存资源,MOSPF可按需求执行算法,即只有当路由器收到一个信源关于一个组的的第一个分组时,才执行路由算法。这种做法的缺点是对第一个分组的时延较大。
3.3核心树协议(CBT)
在一个有许多活动的多播组的大型网络上,DVMRP就不适用了,有两个原因。第一,如果网络中有成千上万个节点,而只有少数的节点属于多播组,用RPM传播第一个分组的花销就特别大。第二,每个多播路由器都要记住每个(源,组)对,当多播组和源增加时,这操作起来就很难了。CBT就是为了克服DVMRP的这些缺点而提出的。在CBT中,树枝从树的核心处发出。这些树枝由别的路由器组成,这些路由器组成了从与主机直接相连的路由器和核心之间的最短路径。CBT减少了路由器中的多播路由表的大小,因为它只需为每个活动的组存储路由信息,而不是为每个活动的源组对。一旦核心路由器确定了,不在CBT上的路由器就可向核心路由器发出加入/请求报文,再由核心路由器在每一跳建立路由表。这样,CBT就建立了一棵共享的核心树。
CBT为每个组建立一棵传递树,在核心处传递并被发送分组到多播目的节点的节点共享。对于稀疏组的情况,CBT并不像RPM一样,需要偶尔广播。然而,这种好处是CBT通过为每个多播组强加一棵共享树来实现的。由于通信量来自所有的源,以及它在靠近核心时都通过同一链路,CBT将导致通信量的集中及核心路由器附近的瓶颈。
3.4PIM协议
PIM的的出发点是,在 广域网内同时支持共享树与SPT,并能完成二者之间的灵活转换,集中了二者的优点同时避免了它们的缺点,在组成员稀疏时,构造共享树传递,避免分组的广播开销;在组成员密集时,以广播形式传递数据,然后从树上删除不存在接收节点的分支。PIM有两种模式:稀疏模式(PIM-SM)和密集模式(PIM-DM)。
当网络中接收者的分布很散或多播组被广域网分隔开时,就用PIM-SM协议。它定义了一个集合点(Rendezvous Point,RP)来连接接收者和发送者。有组成员的路由器通过发送明确的加入报文来加入一棵PIM-SM树,而DVMRP则是通过修剪反向最短路径树来产生多播树。当接收者要发数据时,它先将数据发给RP,再由RP发到组中;而当接收者想要接收数据时,它需要向集合点路由器注册。
当发送者和接收者非常接近,且只有一部分发送者和许多接收者时,适合用PIM-DM协议。它属于数据驱动型协议,使用SPT构建多播树。它直接使用单播路由算法给出的路由表转发数据,但独立于单播协议。
3.5边界网关多播协议(BGMP)
边界路由器使用BGMP来在不同的AS间进行多播通信。BGMP由两部分组成,MIGP和BGMP。边界路由器使用MIGP来加入AS内的MIGP协议,用BGMP来在与别的边界路由器之间建立核心树。核心树的根是一个AS而不是一个路由器。
BGMP使用TCP作为其传输协议,边界网关在它们之间建立TCP连接,并交换BGMP报文。当组成员变化时,边界网关间就发送加入或修剪报文。因为从一个多播源到目的节点的最短路径与共享树使用的路径不同,BGMP也允许边界网关将一个源指定的分支连到核心树上。
3.6最新的协议
在以上的协议中,存在的主要问题是:第一,没有机制来估计多播组的大小。第二,没有机制来限制未授权的发送者向多播组中发送数据和未授权的接收者从多播组中接收数据。第三,该模型要求诸如MASC(Multicast Address Set Claim)之类的协议来分配全球唯一的多播组地址。下面的协议就是为解决这些问题而提出的。
明确要求单个源的协议(EXPRESS),是支持信道模型的IP多播的扩展。一个信道由一个明确指定的源和多个用户组成。EXPRESS为每个信道(S,M)建立源指定的树,S是源的IP地址,M是多播地址。EXPRESS并不要求协议分配全球唯一的多播地址,因为一个信道由多播地址和源节点的IP地址来识别。通过源来分配一个信道的密钥,未授权的主机就受到了限制。EXPRESS也提供了计算一个多播组中成员的数量的方法。
简单多播协议(SM)构建的是以核心节点为根的共享树,它在组成员的加入、离开,数据传输和多播树的维持方面同CBT类似。SM同CBT的主要区别在于它们如何解决多播地址的分配问题,SM的每个多播组由(C,M)来识别,C是多播树上的核心路由器的地址,M是一个多播地址。多播组的识别信息附在加入请求报文和数据报文里。由于多播组由多播地址和核心节点的IP地址来共同识别,故全球地址的管理也不是很难。
4.Mbone
为了 测试多播协议和应用程序,研究者们希望能找到一个方法,使得无需将整个Internet上的设备转换成能支持多播的设备就能使用多播应用程序,这就导致了Mbone的诞生。Mbone是一个跨越几个洲的志愿者共同进行试验、合作的成果。它其实是一个建立在Internet上的虚拟网络,使用隧道来穿过不支持多播的网络。通过隧道,多播分组就能通过Internet中无多播能力的部分,达到目的节点。
在Mbone中,最初的选路协议仅使用DVMRP。现在,尽管在Mbone中还使用了别的路由协议,如MOSPF、PIM,但是多数路由器还是使用DVMRP。
现在,IETF、NASA和其它研究组都用Mbone来研究和测试多播协议和服务,还把Mbone用于通过Internet多播的 多媒体会议,桌面会议,甚至多播实时音乐会。加入Mbone的站点数一直在迅速增长。
5.多播中的主要问题
5.1安全问题
IP多播使用无连接的协议UDP来避免响应风暴。由于UDP是一个无连接的协议,它不使用ACK或NACK来确保可靠传送,多播也不能被防火墙检测到,因此,最普通的防火墙类型(应用程序网关)不能对多播进行安全认证。
5.2 QoS问题
在多媒体环境中,少数分组的丢失是可以接受的,但是,在商业处理和文件传输中,这就不能接受了。在视频和声音的多播中,也只能容忍很小的丢失,但随着用户的增加,保护数据流量的质量问题就很突出了。多播需要可靠和迅速的传送,这样就可减少分组的丢失和延迟。一般分组的延迟是由于低层的协议引起的,如 以太网、 ATM和令牌环 网通过发送它们到目的端来处理分组,就很容易导致迟延。
由于在数据链路上的每一个路由器都会检查每一个分组的信息,所以这种延迟可以发生在所有的路由IP网络。通常在源端和目的端之间存在几个媒体 服务器来连接不同的网络。当分组从一个路由器到另一个路由器时,每一个路由器上的协议都决定分组到达下一个路由器的最短路径,这也很容易导致分组在到达目的端时发生延迟。
在多播中,应用程序需要控制它们收到的数据的QoS。区别网络服务的主要参数是:安全性、带宽、延迟、抖动和错误率等。网络主干也需要支持QoS协议,以便路由器和 集线器可以集中的、时间精确的业务流传递。根据网络的安全级别、带宽、延迟(等待时间)、抖动、错误率和成本等其它QoS参数提供有区别的网络服务。另外,QoS技术也提供了不同的方法,使不同的传播类型能在一个网络中共享路径。这些传播类型包括:恒定比特率(CBR)、可变比特率(VBR)和可用比特率(ABR)。
资源保留协议(RSVP)是QoS可能实现的主要协议。RSVP是在 IPv4或 IPv6的顶端运行的Internet传输控制协议,它的实施在后台完成,而不是在数据传送的路径中。RSVP允许主机要求来自于用特定的应用程序数据流或流程的网络指定的服务质量。例如,基于平均的最大的带宽、最大的接收迟延、优先队列以及其它参数,主机可以指定一个特定的网络服务级别。路由器也使用RSVP沿路径传递QoS要求给所有节点,并建立和维护提供这些要求的服务的位置。
6.多播的应用现状及前景
在国外,多播得到了很广泛的应用。 微软公司每个月都要用多播技术传播多媒体数据流; Cisco公司已经用IP/TV来进行实时视频流多播,用于公司内部的会议和培训;美国田纳西州的Promus饭店已经使用StarBurst通信公司的软件,通过卫星链路向所属分店分发软件升级和数据更新信息;MCI公司以及BBN Planet公司等一些ISP正在有限的基础上进行多播试验,包括UUNET Technologies在内的供应商已经开始向客户提供多播服务,Digital Xpress公司通过卫星经销多播服务。
多播是一项非常实用的技术,随着Internet对多播的进一步支持,以及许多厂商和ISPs对多播的推动,多播的发展越来越迅速。并且,由国际上主要的网络设备商、 电信公司和ISPs组成了一个国际性论坛“IP多播倡议组织(IPMI)”。它的目的是与IETF中的多播工作组一起制定IP多播标准,并加速这些标准的采用。随着多播技术的进一步完善,以及更多高效、实用的多播应用程序被开发出来,多播将获得更加广泛的应用。
关键词:多播组 多播路由 多播树
1.引言
随着Internet的发展,出现了如 视频点播、电视会议、远程学习、 计算机协同工作等新的业务。用传统的点到点通信方式,不仅浪费大量的网络带宽,而且效率很低。一种有效地利用现有带宽的技术就是多播技术。多播是一种点到多点(和多点到多点)的通信方式,即多个接收者同时接收一个源发送的相同信息。
在多播中,组的概念是十分重要的。由多播的定义可知,多播报文是从一个源发到一组目的结点。在IP多播中,多播组有一ID号叫做多播组ID号,它指定了发送报文的目的组,这些ID号实际上是D类IP地址。若一个主机想要接收发到一个特定组的多播报文,它需要监听发往那个特定组的所有报文。为解决Internet上多播报文的选路,主机需通过通知其子网上的多播 路由器来加入一个组,多播中采用Internet组管理协议(IGMP)来达到此目的,离开组也要用IGMP。这样,网络上的多播路由器就知道网络上的多播组成员,并由此决定是否向它们的网络上转发多播报文。当一个多播路由器收到一个多播分组时,它检查报文的ID,仅当那个组有成员时才向其转发。IGMP提供了在转发多播报文到目的地的最后阶段所需信息。多播路由器之间相互交换信息,这些信息是从与它们直接相连的主机的组成员中搜集的。多播路由器间交换路由信息的算法有“泛洪”,“生成树”,“反向路径广播”“反向路径多播”等,有些算法被用于动态多播路由协议中,如距离矢量多播路由协议(Distance Vector Multicast Routing Protocol,DVMRP)、多播开放式最短路由优先协议(Multicast Open Shortest Path First,MOSPF),核心树协议(Core-Based Tree,CBT),独立于点到点协议的多播协议(Protocol Independent Multicast,PIM)等。从通过这些协议中取得的路由信息,多播路由器要决定是否向它们的网络上转发分组。最后,处于叶子节点的路由器要查看与其特定组相连的物理网络上是否有成员,并决定是否转发分组。
本文下一部分介绍多播编址,以及它们与MAC层地址的转换,然后是IGMP,再讨论路由算法和协议,最后,介绍了多播基干(Mbone)和多播的前景。
2.多播组
2.1编址
IP有三种基本类型的地址:单播,广播和多播。单播地址用于传输一个报文到一个单独的目的节点;广播地址用于传输一个报文到子网上的所有节点;多播地址用于传送一个报文到可能不在同一子网上的一组目的节点。
2.2Internet组管理协议(IGMP)
IGMP是多播路由器用来了解多播组成员信息的协议,它主要使用两种类型的报文:组成员查询报文和组成员报告报文。多播路由器周期性地发送组成员查询报文,以了解相连的子网上哪些组有成员。查询报文发送到所有的主机组。主机响应一成员报告报文,报告它们所属的多播组。当一个主机加入一个新的组时,它应立即发送一个加入报文,而不是等待一个查询,以防万一它是那个组的第一个成员。
当主机作为某个组的成员开始收到信息后,多播路由器就会周期性地对该组进行查询,检查组内的成员是否还参与其中,只要还有一个主机仍在参与,多播路由器就继续接收数据。当所有的主机都离开了组后,多播路由器会收到一个IGMP的“离开”消息报文,多播路由器就会马上查询组中是否还有活动的组成员。如果有活动的组成员,多播路由器就继续转发数据;如果没有,就不再转发数据。
3.多播路由算法及协议
实现多播通信的最普遍的方法是构造树型路由,这是因为树型路由有以下两个优点:1)分组以并行方式沿树枝到达不同的接收者;2)分组的复制仅在分叉处进行,使得网络中所传送的分组数最少。
多播路由就是寻找从源到一组目的节点的一棵树,信息沿着此树传送到所有的接收者。成组多播则是寻找一组树的集合,每一棵树对应一个节点的多播路由。
目前在构建多播树的算法中,主要有泛洪(Flooding),生成树(Spanning Tree, ST),最短路径树(Shortest Path Tree,SPT),最小生成树(Minimum Spanning Tree,MST),最大带宽树(Maximum Bandwidth Tree,MBT),反向路径广播(Reverse Path Broadcasting,RPB),裁剪的反向路径广播(Truncated Reverse Path Broadcasting,TRPB),Steiner树(Steiner Tree,ST),受限Steiner树(Constrained Steiner Tree,CST),反向路径多播(Reverse Path Multicasting,RPM)和核心树(Core-Based Tree,CBT)等算法。
Internet上的多播主要用两种类型的选路协议。第一种叫作多播内部 网关协议(Muticast Interior Gateway Protocol,MIGP),多播路由器用来在一个自治系统内进行通信。如距离矢量多播路由协议(DVMRP),多播开放式最短路由优先协议(MOSPF),核心树协议(CBT),独立于点到点协议的多播协议(PIM)。第二种是边界路由器用来在自治系统(AS)间进行通信的协议,如边界网关多播协议(Border Gateway Multicast Protocol,BGMP)。
在上面介绍的多播路由算法中,只有一部分用于实际中。DVMRP和MOSPF使用最短路径树,而CBT和BGMP使用核心树来进行多播,PIM则用核心树或反向最短路径树。以下介绍DVMRP,MOSPF,CBT,PIM等协议。还介绍了几种新的协议,明确要求单个源的协议EXPRESS(Explicitly Requested Single Source)和SM(Simple Multicast)。
3.1距离矢量多播路由协议(DVMRP)
DVMRP是在Mbone上使用的多播路由协议,它使用RPM来构建多播树。DVMRP为每条通信链路指定了一个尺度和阈值。尺度指定了链路的路由代价并用以构建反向最短路径树,阈值是一个多播分组需要转发到一给定链路的最小生存时间(TTL)。阈值可用来限制多播分组的传播范围,
在DVMRP中,多播路由器与它们的邻近多播路由器周期性地交换路由信息。多播路由器利用从邻近多播路由器得到的路由信息建立自己的多播路由表。
随着Mbone的飞速发展,由DVMRP而导致的大量路由控制分组定期在网络中的传播限制了网络规模的扩大。于是提出了分层DVMRP 的概念,即将Mbone分成多个区域进行分层管理,区域内的多播通信可按任何协议进行,而区域之间的多播通信由边界路由器按DVMRP协议进行。这样,就减少了路由控制信息的开销。
3.2开放式最短路径优先多播协议(MOSPF)
MOSPF是利用点到点的链路状态数据库,以OSPF为基础的多播路由协议。在OSPF中,链路状态数据库是通过五种不同类型的链路状态通告分组(Link-State Advertise ments,LSA)来建立的。LSA分组就是“描述路由器或网络的本地状态的数据单元。对路由器来说,这包括路由器的接口和邻近接口的状态。每个链路状态通告用泛洪算法在选路域中传播。”MOSPF通过加入一类新的LSA分组,叫组成员LSA分组,来对OSPF进行扩展。在MOSPF中,路由器用IGMP来了解相连的网络上的组成员信息,并用泛洪算法在自治系统内传播组成员LSA分组。因此,路由器通过使用链路状态数据库,可为自治系统内的任何节点建立最短路径树。当路由器收到多播分组时,它根据分组中的源计算最短路径树,并沿此树转发分组。为了节约路由器的CPU和内存资源,MOSPF可按需求执行算法,即只有当路由器收到一个信源关于一个组的的第一个分组时,才执行路由算法。这种做法的缺点是对第一个分组的时延较大。
3.3核心树协议(CBT)
在一个有许多活动的多播组的大型网络上,DVMRP就不适用了,有两个原因。第一,如果网络中有成千上万个节点,而只有少数的节点属于多播组,用RPM传播第一个分组的花销就特别大。第二,每个多播路由器都要记住每个(源,组)对,当多播组和源增加时,这操作起来就很难了。CBT就是为了克服DVMRP的这些缺点而提出的。在CBT中,树枝从树的核心处发出。这些树枝由别的路由器组成,这些路由器组成了从与主机直接相连的路由器和核心之间的最短路径。CBT减少了路由器中的多播路由表的大小,因为它只需为每个活动的组存储路由信息,而不是为每个活动的源组对。一旦核心路由器确定了,不在CBT上的路由器就可向核心路由器发出加入/请求报文,再由核心路由器在每一跳建立路由表。这样,CBT就建立了一棵共享的核心树。
CBT为每个组建立一棵传递树,在核心处传递并被发送分组到多播目的节点的节点共享。对于稀疏组的情况,CBT并不像RPM一样,需要偶尔广播。然而,这种好处是CBT通过为每个多播组强加一棵共享树来实现的。由于通信量来自所有的源,以及它在靠近核心时都通过同一链路,CBT将导致通信量的集中及核心路由器附近的瓶颈。
3.4PIM协议
PIM的的出发点是,在 广域网内同时支持共享树与SPT,并能完成二者之间的灵活转换,集中了二者的优点同时避免了它们的缺点,在组成员稀疏时,构造共享树传递,避免分组的广播开销;在组成员密集时,以广播形式传递数据,然后从树上删除不存在接收节点的分支。PIM有两种模式:稀疏模式(PIM-SM)和密集模式(PIM-DM)。
当网络中接收者的分布很散或多播组被广域网分隔开时,就用PIM-SM协议。它定义了一个集合点(Rendezvous Point,RP)来连接接收者和发送者。有组成员的路由器通过发送明确的加入报文来加入一棵PIM-SM树,而DVMRP则是通过修剪反向最短路径树来产生多播树。当接收者要发数据时,它先将数据发给RP,再由RP发到组中;而当接收者想要接收数据时,它需要向集合点路由器注册。
当发送者和接收者非常接近,且只有一部分发送者和许多接收者时,适合用PIM-DM协议。它属于数据驱动型协议,使用SPT构建多播树。它直接使用单播路由算法给出的路由表转发数据,但独立于单播协议。
3.5边界网关多播协议(BGMP)
边界路由器使用BGMP来在不同的AS间进行多播通信。BGMP由两部分组成,MIGP和BGMP。边界路由器使用MIGP来加入AS内的MIGP协议,用BGMP来在与别的边界路由器之间建立核心树。核心树的根是一个AS而不是一个路由器。
BGMP使用TCP作为其传输协议,边界网关在它们之间建立TCP连接,并交换BGMP报文。当组成员变化时,边界网关间就发送加入或修剪报文。因为从一个多播源到目的节点的最短路径与共享树使用的路径不同,BGMP也允许边界网关将一个源指定的分支连到核心树上。
3.6最新的协议
在以上的协议中,存在的主要问题是:第一,没有机制来估计多播组的大小。第二,没有机制来限制未授权的发送者向多播组中发送数据和未授权的接收者从多播组中接收数据。第三,该模型要求诸如MASC(Multicast Address Set Claim)之类的协议来分配全球唯一的多播组地址。下面的协议就是为解决这些问题而提出的。
明确要求单个源的协议(EXPRESS),是支持信道模型的IP多播的扩展。一个信道由一个明确指定的源和多个用户组成。EXPRESS为每个信道(S,M)建立源指定的树,S是源的IP地址,M是多播地址。EXPRESS并不要求协议分配全球唯一的多播地址,因为一个信道由多播地址和源节点的IP地址来识别。通过源来分配一个信道的密钥,未授权的主机就受到了限制。EXPRESS也提供了计算一个多播组中成员的数量的方法。
简单多播协议(SM)构建的是以核心节点为根的共享树,它在组成员的加入、离开,数据传输和多播树的维持方面同CBT类似。SM同CBT的主要区别在于它们如何解决多播地址的分配问题,SM的每个多播组由(C,M)来识别,C是多播树上的核心路由器的地址,M是一个多播地址。多播组的识别信息附在加入请求报文和数据报文里。由于多播组由多播地址和核心节点的IP地址来共同识别,故全球地址的管理也不是很难。
4.Mbone
为了 测试多播协议和应用程序,研究者们希望能找到一个方法,使得无需将整个Internet上的设备转换成能支持多播的设备就能使用多播应用程序,这就导致了Mbone的诞生。Mbone是一个跨越几个洲的志愿者共同进行试验、合作的成果。它其实是一个建立在Internet上的虚拟网络,使用隧道来穿过不支持多播的网络。通过隧道,多播分组就能通过Internet中无多播能力的部分,达到目的节点。
在Mbone中,最初的选路协议仅使用DVMRP。现在,尽管在Mbone中还使用了别的路由协议,如MOSPF、PIM,但是多数路由器还是使用DVMRP。
现在,IETF、NASA和其它研究组都用Mbone来研究和测试多播协议和服务,还把Mbone用于通过Internet多播的 多媒体会议,桌面会议,甚至多播实时音乐会。加入Mbone的站点数一直在迅速增长。
5.多播中的主要问题
5.1安全问题
IP多播使用无连接的协议UDP来避免响应风暴。由于UDP是一个无连接的协议,它不使用ACK或NACK来确保可靠传送,多播也不能被防火墙检测到,因此,最普通的防火墙类型(应用程序网关)不能对多播进行安全认证。
5.2 QoS问题
在多媒体环境中,少数分组的丢失是可以接受的,但是,在商业处理和文件传输中,这就不能接受了。在视频和声音的多播中,也只能容忍很小的丢失,但随着用户的增加,保护数据流量的质量问题就很突出了。多播需要可靠和迅速的传送,这样就可减少分组的丢失和延迟。一般分组的延迟是由于低层的协议引起的,如 以太网、 ATM和令牌环 网通过发送它们到目的端来处理分组,就很容易导致迟延。
由于在数据链路上的每一个路由器都会检查每一个分组的信息,所以这种延迟可以发生在所有的路由IP网络。通常在源端和目的端之间存在几个媒体 服务器来连接不同的网络。当分组从一个路由器到另一个路由器时,每一个路由器上的协议都决定分组到达下一个路由器的最短路径,这也很容易导致分组在到达目的端时发生延迟。
在多播中,应用程序需要控制它们收到的数据的QoS。区别网络服务的主要参数是:安全性、带宽、延迟、抖动和错误率等。网络主干也需要支持QoS协议,以便路由器和 集线器可以集中的、时间精确的业务流传递。根据网络的安全级别、带宽、延迟(等待时间)、抖动、错误率和成本等其它QoS参数提供有区别的网络服务。另外,QoS技术也提供了不同的方法,使不同的传播类型能在一个网络中共享路径。这些传播类型包括:恒定比特率(CBR)、可变比特率(VBR)和可用比特率(ABR)。
资源保留协议(RSVP)是QoS可能实现的主要协议。RSVP是在 IPv4或 IPv6的顶端运行的Internet传输控制协议,它的实施在后台完成,而不是在数据传送的路径中。RSVP允许主机要求来自于用特定的应用程序数据流或流程的网络指定的服务质量。例如,基于平均的最大的带宽、最大的接收迟延、优先队列以及其它参数,主机可以指定一个特定的网络服务级别。路由器也使用RSVP沿路径传递QoS要求给所有节点,并建立和维护提供这些要求的服务的位置。
6.多播的应用现状及前景
在国外,多播得到了很广泛的应用。 微软公司每个月都要用多播技术传播多媒体数据流; Cisco公司已经用IP/TV来进行实时视频流多播,用于公司内部的会议和培训;美国田纳西州的Promus饭店已经使用StarBurst通信公司的软件,通过卫星链路向所属分店分发软件升级和数据更新信息;MCI公司以及BBN Planet公司等一些ISP正在有限的基础上进行多播试验,包括UUNET Technologies在内的供应商已经开始向客户提供多播服务,Digital Xpress公司通过卫星经销多播服务。
多播是一项非常实用的技术,随着Internet对多播的进一步支持,以及许多厂商和ISPs对多播的推动,多播的发展越来越迅速。并且,由国际上主要的网络设备商、 电信公司和ISPs组成了一个国际性论坛“IP多播倡议组织(IPMI)”。它的目的是与IETF中的多播工作组一起制定IP多播标准,并加速这些标准的采用。随着多播技术的进一步完善,以及更多高效、实用的多播应用程序被开发出来,多播将获得更加广泛的应用。