1 概述
1.1 产生背景
传统的IP通信有两种方式:一种是在源主机与目的主机之间点对点的通信,即单播;另一种是在源主机与同一网段中所有其它主机之间点对多点的通信,即广播。如果要将信息发送给多个主机而非所有主机,若采用广播方式实现,不仅会将信息发送给不需要的主机而浪费带宽,也不能实现跨网段发送;若采用单播方式实现,重复的IP包不仅会占用大量带宽,也会增加源主机的负载。所以,传统的单播和广播通信方式不能有效地解决单点发送、多点接收的问题。
组播是指在IP网络中将数据包以尽力传送的形式发送到某个确定的节点集合(即组播组),其基本思想是:源主机(即组播源)只发送一份数据,其目的地址为组播组地址;组播组中的所有接收者都可收到同样的数据拷贝,并且只有组播组内的主机可以接收该数据,而其它主机则不能收到。
1.2 技术优点
组播技术有效地解决了单点发送、多点接收的问题,实现了IP网络中点到多点的高效数据传送,能够大量节约网络带宽、降低网络负载。作为一种与单播和广播并列的通信方式,组播的意义不仅在于此。更重要的是,可以利用网络的组播特性方便地提供一些新的增值业务,包括在线直播、网络电视、远程教育、远程医疗、网络电台、实时视频会议等互联网的信息服务领域。
P组播技术的出现及时解决了以上问题,也是一种点对多点传输方式。当网络中的某些用户需要特定数据时,组播数据发送者(即组播源)仅发送一次数据,借助组播路由协议为组播数据包建立组播分发树,被传递的数据到达距离用户端尽可能近的节点后才开始复制和分发。
组播传输的特点是一点发出,多点接收。如上图,网络中存在信息发送源Source,感兴趣的用户HostA和HostC提出信息需求,Source发出的数据只有HostA和HostC会接收到。
在组播通信中,需要理解以下几个重要的基本概念。
1、组播组:用组播IP地址进行标识的一个集合,是一个组播成员的集合,各组播成员共享这一个组播组IP地址。相当于iStack堆叠和CS集群中,各成员交换机共享使用同一个管理IP地址一样。但要注意,组播成员自己在IP协议中配置的IP地址不是组播IP地址,仍是单播IP地址。任何用户主机(或其他接收设备),加入一个组播组就成为了该组成员,可以识别并接收发往该组播组的组播数据。
2、组播源:以组播组IP地址为目的地址(组播源配置的也是单播IP地址),发送IP报文的信源称为组播源。但组播源通常不需要加入组播组,否则自己接收自己发送出去的数据了。上图中的Source就是一个组播源。一个组播源可以同时向多个组播组发送数据,多个组播源也可以同时向一个组播组发送报文。
3、组播组成员:所有加入某组播组的主机便成为该组播组的成员。如上图中的HostA和HostC。组播组中的成员是动态的,主机可以在任何时刻加入或离开组播组。组播组成员可以广泛地分布在网络中的任何地方。
4、组播路由器:支持三层组播功能的路由器或三层交换机(它们不是组播组成员),如上图中的各个Router。组播路由器不仅能够提供组播路由功能,也能够在与用户连接的末梢网段上提供组播组成员的管理功能。
2 组播技术实现
组播技术的实现需要解决以下几方面问题:
1、组播源向一组确定的接收者发送信息,而如何来标识这组确定的接收者?——这需要用到组播地址机制;
2、接收者通过加入组播组来实现对组播信息的接收,而接收者是如何动态地加入或离开组播组的?即如何进行组成员关系管理;
3、组播报文在网络中是如何被转发并最终到达接收者的?——即组播报文转发的过程;
4、 组播报文的转发路径(即组播转发树)是如何构建的?——这是由各组播路由协议来完成的。
2.1 组播地址机制
2.1.1 IP组播地址
IP组播地址用于标识一个IP组播组。IANA把D类地址空间分配给组播使用,范围从224.0.0.0到239.255.255.255。
图1 IP组播地址格式
如图1所示,IP组播地址前四位均为“1110”,而整个IP组播地址空间的划分则如图2所示。
224.0.0.0到224.0.0.255被IANA预留,地址224.0.0.0保留不做分配,其它地址供路由协议及拓扑查找和维护协议使用。该范围内的地址属于局部范畴,不论TTL为多少,都不会被路由器转发;
224.0.1.0到238.255.255.255为用户可用的组播地址,在全网范围内有效。其中232.0.0.0/8为SSM组地址,而其余则属于ASM组地址。有关ASM和SSM的详细介绍,请参见“2.5 组播模型分类”一节;
239.0.0.0到239.255.255.255为本地管理组播地址,仅在特定的本地范围内有效,也属于ASM组地址。使用本地管理组地址可以灵活定义组播域的范围,以实现不同组播域之间的地址隔离,从而有助于在不同组播域内重复使用相同组播地址而不会引起冲突。
224.0.1.0/24网段内的一些组播地址也被IANA预留给了某些组播应用。譬如,224.0.1.1被预留给NTP(Network Time Protocol,网络时间协议)所使用。
2.1.2 IP组播地址到链路层的映射
本文只讨论以太网链路层协议的组播实现,其它链路层协议的组播实现并不作为本文讨论的重点。
IANA将MAC地址范围01:00:5E:00:00:00~01:00:5E:7F:FF:FF分配给组播使用,这就要求将28位的IP组播地址空间映射到23位的组播MAC地址空间中,具体的映射方法是将组播地址中的低23位放入MAC地址的低23位,如图3所示。
图3 IP组播地址到组播MAC地址的映射
由于IP组播地址的后28位中只有23位被映射到组播MAC地址,这样会有32个IP组播地址映射到同一组播MAC地址上。
2.2 组成员关系管理
组成员关系管理是指在路由器/交换机上建立直联网段内的组成员关系信息,具体说,就是各接口/端口下有哪些组播组的成员。
2.2.1 IGMP
IGMP运行于主机和与主机直连的路由器之间,其实现的功能是双向的:一方面,主机通过IGMP通知路由器希望接收某个特定组播组的信息;另一方面,路由器通过IGMP周期性地查询局域网内的组播组成员是否处于活动状态,实现所连网段组成员关系的收集与维护。通过IGMP,在路由器中记录的信息是某个组播组是否在本地有组成员,而不是组播组与主机之间的对应关系。
目前IGMP有以下三个版本:
l IGMPv1(RFC 1112)中定义了基本的组成员查询和报告过程;
l IGMPv2(RFC 2236)在IGMPv1的基础上添加了组成员快速离开的机制等;
l IGMPv3(RFC 3376)中增加的主要功能是成员可以指定接收或拒绝来自某些组播源的报文,以实现对SSM模型的支持。
以下着重介绍IGMPv2的原理。
如图4所示,当同一个网段内有多个IGMP路由器时,IGMPv2通过查询器选举机制从中选举出唯一的查询器。查询器周期性地发送普遍组查询消息进行成员关系查询,主机通过发送报告消息来响应查询。而作为组成员的路由器,其行为也与普通主机一样,响应其它路由器的查询。
当主机要加入组播组时,不必等待查询消息,而是主动发送报告消息;当主机要离开组播组时,也会主动发送离开组消息,查询器收到离开组消息后,会发送特定组查询消息来确定该组的所有组成员是否都已离开。
通过上述机制,在路由器里建立起一张表,其中记录了路由器各接口所对应子网上都有哪些组的成员。当路由器收到发往组G的组播数据后,只向那些有G的成员的接口转发该数据。至于组播数据在路由器之间如何转发则由组播路由协议决定,而不是IGMP的功能。
2.2.2 IGMP Snooping
IGMP是针对IP层设计的,只能记录路由器上的三层接口与IP组播地址的对应关系。但在很多情况下,组播报文不可避免地要经过一些交换机,如果没有一种机制将二层端口与组播MAC地址对应起来,组播报文就会转发给交换机的所有端口,这显然会浪费大量的系统资源。
IGMP Snooping的出现就可以解决这个问题,其工作原理为:主机发往IGMP查询器的报告消息经过交换机时,交换机对这个消息进行监听并记录下来,为端口和组播MAC地址建立起映射关系;当交换机收到组播数据时,根据这样的映射关系,只向连有组成员的端口转发组播数据。
2.3 组播报文转发
2.3.1 组播转发树
组播报文在网络中沿着树型转发路径进行转发,该路径称为组播转发树。它可分为源树(Source Tree)和共享树(RPT)两大类:
1. 源树
源树是指以组播源作为树根,将组播源到每一个接收者的最短路径结合起来构成的转发树。由于源树使用的是从组播源到接收者的最短路径,因此也称为最短路径树(SPT)。对于某个组,网络要为任何一个向该组发送报文的组播源建立一棵树。
源树的优点是能构造组播源和接收者之间的最短路径,使端到端的延迟达到最小。但付出的代价是,在路由器中必须为每个组播源保存路由信息,这样会占用大量的系统资源,路由表的规模也比较大。
2. 共享树
以某个路由器作为路由树的树根,该路由器称为汇集点(RP),共享树就是由RP到所有接收者的最短路路径所共同构成的转发树。使用共享树时,对应某个组网络中只有一棵树。所有的组播源和接收者都使用这棵树来收发报文,组播源先向树根发送数据报文,之后报文又向下转发到达所有的接收者。
共享树的最大优点是路由器中保留的路由信息可以很少,缺点是组播源发出的报文要先经过RP,再到达接收者,经由的路径通常并非最短,而且对RP的可靠性和处理能力要求很高。
2.3.2 组播报文转发机制
当路由器收到组播数据报文时,根据组播目的地址查找组播转发表,对报文进行转发。与单播报文的转发相比,组播报文的转发相对复杂:在单播报文的转发过程中,路由器并不关心报文的源地址,只关心报文的目的地址,通过其目的地址决定向哪个接口转发;而组播报文是发送给一组接收者的,这些接收者用一个逻辑地址(即组播地址)标识,路由器在收到组播报文后,必须根据报文的源地址确定其正确的入接口(指向组播源方向)和下游方向,然后将其沿着远离组播源的下游方向转发——这个过程称为逆向路径转发(RPF)。
在RPF执行过程中会利用原有的单播路由表确定上、下游的邻接节点,只有报文从上游节点所对应的接口(称为RPF接口,即路由器上通过单播方式向该地址发送报文的出接口)到达时,才向下游转发。RPF的主体是RPF检查,通过RPF检查除了可以正确地按照组播路由的配置转发报文外,还可以避免可能出现的环路。路由器收到组播报文后先对其进行RPF检查,只有检查通过才执行转发。
RPF检查的过程为:路由器在单播路由表中查找组播源或RP对应的RPF接口(使用SPT时查找组播源对应的RPF接口,使用RPT时查找RP对应的RPF接口),如果组播报文是从RPF接口接收下来的,则RPF检查通过,报文向下游接口转发;否则,丢弃该报文。
4 总结和展望
组播技术从1988年提出至今已经历了20年的发展,许多国际组织对组播的技术研究和业务开展进行了大量的工作。在IP网络中多媒体业务日渐增多的情况下,组播技术为多媒体业务的开展提供了传输基础。
组播技术涵盖了从地址方案、成员管理和路由建立等各个方面,其中组播地址的分配方式、域间组播路由以及组播安全等仍是研究的热点。从目前的情况看,组成员管理技术普遍采用IGMPv2;PIM-SM因其良好的扩展性以及从RPT向SPT切换的能力而成为域内组播路由技术的首选;域间组播路由协议现阶段普遍采用PIM-SM/MBGP/MSDP的组合方案。
组播技术可以提供包括流媒体、视频会议、IPTV等在内的各种宽带增值业务,但这些业务的顺利开展还依赖于有效的业务管理、监控及安全控制。结合在业务运营管理方面的理解和经验积累,H3C公司提供不断完善的可运营、可管理的组播解决方案,我们将继续致力于推动组播技术的发展、组播业务的普及和功能的完善。
今天的文章组播技术概述分享到此就结束了,感谢您的阅读。
版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 举报,一经查实,本站将立刻删除。
如需转载请保留出处:https://bianchenghao.cn/64007.html