一、引言
随着网络的发展,人们在网络平台上开发了各种业务,如E-mail、TELNET、FTP、WWW等业务,这些都是点到点的数据传输;而人们更希望在Internet上开视频会议、听现场音乐会、看实况转播等,这些是点到多点或多点到多点的数据传输,需要采用IP组播(IP multicast)通信技术。目前,这种技术已成为国外各种研究团体和科研机构研究的热点,许多网络厂商纷纷提供能支持IP组播技术的产品,一些网络提供服务商(ISP)也逐渐提供这种高级服务,许多提供大规模网络应用和服务的大公司开始使用组播通信。
二、IP组播技术的产生
IP组播的概念最早在1988年出现在Steve deering的博士论文中,并在1989年Steve deering对标准IP网络层协议进行了扩展,提出了IP组播规范;1992年3月第一次建立组播主干网MBone,IETF并成功地在组播网上举行了一次会议,才引起了人们的广泛关注。而第一个WWW浏览器出现在1990年,到1993年已发展到100个WWW站点,所以组播和WWW虽处于同一时期,但组播的发展远远慢于WWW,主要原因是IP组播通信模式需要状态相当复杂的路由器,要求路由器能提供每个群组和每个源的信息状态,并且随着Internet的越来越复杂给组播的进一步发展带来了困难。后来,出现的一些设计精巧的组播路由协议(如PIM-DM、PIM-SM等),使组播IP包能正确而又迅速地发送给成千上万的接收者,IP组播的技术和应用开始快速发展。
目前,IP组播可以运行在任意体系结构的网络之上,包括因特网、ATM、帧中继、SMDS和卫星,并许多应用领域,能应用在视频会议、多媒体、新闻发布和来自太空的远程实况广播。
三、IP组播的概念
IP组播是利用一种协议将IP数据包从一个源传送到多个目的地,将信息的拷贝发送到一组地址,到达所有想要接收它的接收者处。IP组播是将IP数据包“尽最大努力”传输到一个构成组播群组的主机集合,群组的各个成员可以分布于各个独立的物理网络上。IP组播群组中成员的关系是动态的,主机可以随时加入和退出群组,群组的成员关系决定了主机是否接收送给该群组的组播数据包,不是某群组的成员主机也能向该群组发送组播数据包。
同单播(unicast)和广播(broadcast)相比,组播效率非常高,因为任何给定的链路至多用一次,可以节省网络带宽和资源。
在一个单播(unicast)环境里,视频服务器依次送出n个信息流,由网络中的用户接收,共需要nx1.5Mbit/s的带宽;如果服务器处于10Mbit/s的以太网内,6~7个信息流就占满了带宽;若在一个高速的以太网里,最多只能容纳250~300个1.5Mbit/s的视频流,所以服务器与主机接口间的容量是一个巨大的瓶颈。
在一个组播(multicast)环境里,不论网络中的用户数目有多少,服务器发出的一个视频流,由网络中的路由器或交换器同时复制出n个视频流,广播到每个用户,仅需1.5Mbit/s的带宽。
可见,IP组播能够有效地节省网络带宽和资源,管理网络的增容和控制开销,大大减轻发送服务器的负荷,从而高性能地发送信息。
另外,组播传送的信息能同时到达用户端,时延小,且网络中的服务器不需要知道每个客户机的地址。所有的接收者使用一个网络组播地址,可实现匿名服务,并且IP组播具有可升级性,与新的IP和业务能相兼容。
四、IP组播技术的特点
IP组播技术具有以下特点。
1.群地址
在组播网中,每个组播群组拥有惟一的组播地址(D类地址),一部分IP组播地址是由Internet管理机构分配的,其他的组播地址作为暂时地址被用户使用;组播数据包可以送到标识目的组机的组地址,发送者不必知道有哪些组成员,它自己不必是组成员,对组成员中主机的数目和位置也没有限制。主机不需要和组成员以及发送者商量,可以任意加入和离开组播组;使用组地址,不必知道主机指定的位置,可以找到具有此组播地址的任何资源和服务器,在动态变化的信息提供者中搜寻到需要的信息,或者发布信息到任意大小的可选用户群。
2.规模可扩展性
如果网络速率提高,广域组播网络的容量需要扩大,后来产生的组播路由算法和协议如PIM-DM、PIM-SM、CBT等都支持网络规模的扩展,而上述的群地址和动态性也是适应规模可扩展性的另一方面。
3.健壮性
IP组播网络使用的路由协议和算法能适应网络路由动态变化,它采用软件状态刷新机制,制作路由备份等方法,来维护群组成员之间的连接,加强网络的健壮性。
4.路由算法的独立性
组播路由算法和协议独立于单播路由使用的协议,但又依靠现存的单播路由表,在域内适应网络拓扑的变化,动态生成组播树。
5.组播生成树的灵活性
组播生成树的形成与发送者和接收者的分布、网络的流量状况以及组成员的动态性有关,且组播生成树也反映了不同的组播路由算法和组播应用。灵活的组播生成树有利于数据包的传送,不容易造成网络的拥塞。
五、IP组播技术
1.IP组播地址分配
在组播网内,一个组播群组指定为一个D类地址。使用点分十进制表示发来描述组播地址的范围是:224.0.0.0到239.255.255.255,但是地址224.0.0.0是保留的,它不能赋给任何群组。
在组播通信模型中,需要两种新型地址:一个IP组播地址和一个Ethernet组播地址,IP组播地址表示一组接收者,它们要接收发给整个组的数据;由于IP包封装在Ethernet帧内,所以还需要一个Ethernet组播地址。为使组播模型正常工作,主机应能同时接收单播和组播数据,主机需要多个IP地址和Ethernet地址,其中单播IP和Ethernet地址用于单播通信,而Ethernet组播地址用于组播通信。如果主机不准备接收组播地址,就设置为零组播地址。所以,单播和组播地址之间的主要差异在于每个主机都有一个惟一的单播地址,组播地址则不然。
将D类IP地址映射为Ethernet MAC地址是由数据链路层完成的。从组播映射到令牌环网络第2层地址的过程,是CISCO路由器采取的工作程序,而Ethernet及FDDI网络从组播到第2层的映射相当直接。
在映射过程中,组播IP地址中共有9位不参与替换,包括高位字节8位以及紧接在该字节后面的一个标志位,其中最开始的4位1110表示属于D类IP地址,剩下23位进行替换,将IP组播地址中的低23位取代Ethernet组播地址01:00:5E:00:00:00的低23位。因此,有5位真正不参与映射,无论这些位的值是什么,组播Ethernet地址都是相同的。由于5个位共可以有32种不同的组合,所以映射并不具有惟一性。
2.IGMP
在一个组播路由器建立路由,传送其组播群组成员关系信息之前,它必须确定在本地网络上有一个或多个主机是否加入了某个组播群组。为此,组播路由器和实现组播的主机必须使用互连网组管理协议(IGMP,Internet Group Management Protocol)来进行群组成员关系信息的通信。利用IGMP,组播路由器可判断在与自己连接的任何一个网络上,是否存在组播组的一些成员,如存在组成员,组播路由器便可加入一个特定的组播组,并将组播数据转发给加入该组的主机。因此,IGMP被主机用来通知直连的路由器,令其加入一个组播组,使组播网具有动态性和灵活性。
最初的IGMP规范是在RFC 1112文件里详细定义的,我们通常将这套规范称为“IGMP版本1”,由斯坦福大学的S.Deering成文于1989年8月。后来又由施乐PARC公司的W.Fenner对最早的IGMP版本1进行了大幅更新,更新的结果就是RFC 2236文件即IGMP版本2。两个版本的IGMP相互间可进行少许操作。在IGMP版本2临近正式批准时。IDMR已经开始IGMP版本3的研究工作,现在已有的draft为draft-ietf-idmr-igmp-v3-05.txt。IGMPv1中定义了基本的组成员查询和报告过程,IGMPv2在此基础上添加了组成员快速离开的机制,IGMPv3中增加的主要功能是成员可以指定接收或指定不接收某些组播源的报文。
3.二层组播相关协议
IP网络的二层组播相关协议包括IGMP Snooping和CGMP。
IGMP Snooping通过交换机去侦听主机发向路由器的IGMP成员报告消息的方式,形成组成员和交换机接口的对应关系,放在组播CAM表项中。交换机根据该对应关系将收到组播数据包只转给具有组成员的接口。
CGMP(Cisco Group Management Protocol)是Cisco基于客户机/服务器模型开发的私有协议,它将运行在路由器和交换机上,允许成员关系信息从路由器到交换机进行通信。在CGMP的支持下,组播路由器能够根据接收到的IGMP数据包通知交换机哪些主机何时加入和脱离组播组,交换机利用由这些信息所构建的转发表来确定将组播数据包向哪些接口转发。GMRP是主机到以太网交换机的标准协议,它使组播用户可以在第二层交换机上对组播成员进行注册。
4.IP组播路由协议
在路由式网络中,对于传递组播信息流,一个至关重要的问题是IP组播路由协议,它克服了利用单播通信模型传递组播信息带来的带宽瓶颈,减少了发送相同数据信息到多个接收者的通信费用,这也是IP组播应用得到发展的主要原因。组播网内数据的流动必须根据组播路由协议建立生成树,使发送源和组播组成员之间形成一条单独的转发路径,确保每个数据包都能转发到目的地。
IP组播路由协议分为域内协议和域间协议。域内协议包括PIM-SM、PIM-DM、DVMRP、CBT等。域间协议包括MBGP、MSDP、BGMP等。
【相关文章】