Chinaunix首页 | 论坛 | 博客
  • 博客访问: 714341
  • 博文数量: 67
  • 博客积分: 3148
  • 博客等级: 中校
  • 技术积分: 1084
  • 用 户 组: 普通用户
  • 注册时间: 2010-11-10 14:33
文章分类

全部博文(67)

文章存档

2013年(2)

2012年(11)

2011年(33)

2010年(21)

我的朋友

分类:

2011-12-28 17:48:07

  摘要:随着在Internet上流媒体、视频等业务的相继开展,IP组播的技术和应用开始快速发展。本文主要分析IP组播技术的产生、概念和特点,以及相关的IP组播技术,最后介绍了IP组播技术在视频业务中是如何应用的。

  关键词:IP组播 视频 协议 应用

  一 引言

  随着网络的发展,人们已经在网络平台上开发了各种业务,如E-MAIL、TELNET、FTP、WWW等业务,这些都是点到点的数据传输;而人们希望在Internet网络上开视频会议、听现场音乐会、看实况转播等,这些是点到多点或多点到多点的数据传输,需要采用IP组播(IP Multicast)通信技术。目前这种技术已成为国外各种研究团体和科研机构研究的热点和焦点,许多网络厂商纷纷提供能支持IP组播技术的产品,一些网络提供服务商ISP逐渐提供这种高级服务,许多提供大规模网络应用和服务的大公司开始使用组播通信。

  二 IP组播技术的产生

  从Internet网络发展的速度来看,组播是一个旧概念而不是一个新概念,但它由于各种原因发展比较缓慢。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)相比,组播效率非常高,因为任何给定的链路至多用一次,可以节省网络带宽和资源。我们以一个例子来说明,如图1所示,建立一个视频服务器和远端网络的通信,网络中有N个用户,对于一个全动全屏图像,一个视频信息流需要占用1.5Mbps的带宽。

  图 1 单播和组播网络的视频信息传输

  一个单播(unicast)环境里,视频服务器依次送出N个信息流,由网络中的用户接收,共需要1.5M*Nbps的带宽;如果服务器处于10M的以太网内,6—7个信息流就占满了带宽;若在一个高速的以太网里,最多只能容纳250—300个1.5Mbps的视频流,所以服务器与主机接口间的容量是一个巨大的瓶颈。

  在一个组播(multicast)环境里,不论网络中的用户数目有多少,服务器发出的一个视频流,由网络中的路由器或交换器同时复制出N个视频流,广播到每个用户,仅需1.5Mbps的带宽。

  可见,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位、以及紧接在该字节后面的一个标志位,其中最开始的四位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是主机到以太网交换机的标准协议,它使组播用户可以在第二层交换机上对组播成员进行注册。

  (3)IP组播路由协议

  在路由式网络中,对于传递组播信息流,一个至关重要的问题是IP组播路由协议,它克服了利用单播通信模型传递组播信息带来的带宽瓶颈,减少了发送相同数据信息到多个接收者的通信费用,这也是IP组播应用得到发展的主要原因。组播网内数据的流动必须根据组播路由协议建立生成树,使发送源和组播组成员之间形成一条单独的转发路径,确保每个数据包都能转发到目的地。

  IP组播路由协议分为域内协议和域间协议。域内协议包括PIM-SM、PIM-DM、DVMRP、CBT等。域间协议包括MBGP、MSDP、BGMP等。

  根据网络中主机的分布,上述的IP 组播域内路由协议一般可以分为两类,第一类称为密集型模式,这种模式指组播成员在网络中密集分布,有足够的带宽,所以密集协议通过扩散技术传播信息至整个网络,它保括DVMRP、MOSPF和PIM-DM,属于数据驱动型 ;第二类称为松散型模式,这种模式指组播成员在网络中分散分布,没有足够的带宽,例如广域网或用户使用ISDN线上网,但松散型模式并不意味群组有很少的成员,只不过它们是分散分布的,它包括CBT和PIM- SM。此时,使用扩散技术将浪费带宽,通过发出加入请求申请,在含有集中点或核心点的空生成树上添加树枝形成组播生成树,属于接收者驱动型。使用DVMRP、MOSPF组播路由协议时,单播路由协议相应必须使用RIP、OSPF,这就造成了一定的局限性,DVMRP使用距离向量路由协议建立生成树,MOSPF使用链路状态数据库建立生成树;而PIM和CBT独立于单播路由协议,但依赖于单播路由表,其中PIM-SM和CBT有一个集中点或核心,连接源和接收者之间的各个路由器而形成路由。

  针对域间组播路由有两类解决方案:短期方案和长期方案。短期方案包括三个协议MBGP/MSDP/PIM-SM:MBGP(组播边缘网关协议),用于在自治域间交换组播路由信息;MSDP(组播信源发现协议),用于在ISP之间交换组播信源信息;以及域内组播路由协议PIM-SM。长期方案目前讨论最多的是MASC/MBGP/BGMP,它建立在现有的组播业务模型上,其中MASC实现域间组播地址的分配、MBGP在域间传递组播路由信息、BGMP完成域间路由树的构造。此外还有一些组播路由策略,如PIM-SSM(特定信源协议无关组播)等,建立在其它的组播业务模型上。目前仅短期方案MBGP/MSDP/PIM-SM是成熟的,并在许多的运营商中广泛使用。其他方案的标准还在研究中。

  (4)IP组播高层协议

  RTP是用于Internet上针对多媒体数据流的一种传输协议,允许应用传送不同类型的实时负载,例如音频、视频和其它具有实时特征的数据。它既可以使用单播,也可以使用组播作为下层传输协议,位于UDP协议之上来传输单播和组播数据流。RTP被设计为一对一或一对多的情况下工作,主要提供了时间信息和实现流同步。

  RTCP属于RTP协议的一部分,它提供了流量控制和拥塞控制服务,主要提供与会话有关的和监视数据传递的信息,使用一些简单的服务质量测量,例如信息包丢失与抖动。

  会话公告协议(SAP)作为组播会议会话的一个公告协议,由IETF的MMUSIC工作组开发,当前的SAP版本在IETF的草案中描述。SAP的主机通过向熟知的组播地址和端口发送会话信息的SAP信息包,定期地宣告会议会话。信息包内的信息使用SDP,SDP信息可以选择加密,不允许被未批准的用户浏览。

  会话描述协议(SDP)是SAP的伴随协议,用于实际会话信息的编码,也由IETF的MMUSIC工作组开发,现在被定义在IETF的草案中。

  另外,使用视频服务还需要安装相应的视频会议工具。nv是由施乐研究中心开发的一个视频会议工具,使用128KBPS的带宽,每秒钟提供3-5帧的视频速率;vat是由伯克利实验室开发的一个发送和接收音频的工具,因为它的视频界面而被称为可见的音频工具,它只能接收音频而不能接收视频;wb在主机屏幕上创建一个共享、虚拟的白板,可提供标准的绘画工具,也可作为草稿文件工具。会话目录(SDR)工具集成了nv、vat和wb软件工具,用于发布和安排多媒体视频会议,它要在主机上装有SDR工具,要在各路由器要进行SDR设置。SDR工具提供了一个IGMP直接的界面,用户可随意加入和离开组播组;用户点下窗口中的有关信息(例如时间和日期),双击参加的会议名,用户能看见、听见、参与目前的会议,自动地使用合适的软件工具:nv、vat、wb。

  六 IP组播在视频中的应用

  如果要使组播通信在视频网络中应用,网络里的发送和接收主机、网络路由器以及它们之间的网络结构必须支持组播,放火墙设置成允许组播通过。

  图2 IP组播通信应用

  如图2所示,每个节点主机需有一个网络接口卡(NIC)要能支持组播,能有效滤出由网络层IP组播地址被映射成的数据链路层地址;需装有加入组播组请求的IGMP协议的软件以和路由器通信加入组播群;需有支持IP组播传送和接收的TCP/IP协议栈;再装上如视频会议这样的组播应用软件,主机就可以进入组播组进行组播通信。若发送音频,主机需要一个麦克风和相应的音频软件;若发送视频,主机需要帧控制卡和摄相机。例如,SUN工作站需要VideoPix卡发送视频流,另外帧控制卡的品牌有Parallax和J300型。

  如图3所示,在视频网络中IP组播通信过程如下:

  图3 IP组播通信过程

  1)主机送出一条IGMP加入消息到相邻路由器,主机的MAC地址映射为将要加入的D类组地址,并包含在IGMP数据报中,路由器知道主机想加入组播组。

  2)相邻路由器接收加入消息后,动态跟踪这些组播组,使用组播路由协议,在源端和接收端各个路由器之间建立组播生成树,从每个发送者伸展到所有接收者。

  3)在源端和接收端建立组播路由后,源就开始沿着组播路由发送数据给各个接收者。

  主机接收到了源发送来的数据,网络接口卡滤出组播群组的MAC地址,网络驱动器对此地址作出反应后,把数据传递到TCP/IP协议栈,进入用户的应用层,就可以进行视频通信了。

  七 结束语

  IP组播技术有效地解决了单点发送到多点、多点发送到多点的问题,实现了IP网络中点到多点的高效数据传送,能够有效地节约网络带宽、降低网络负载,基于IP组播技术可以很好地开展流媒体、视频等各种宽带增值业务。

转自:

阅读(5855) | 评论(0) | 转发(0) |
给主人留下些什么吧!~~