新闻  |   论坛  |   博客  |   在线研讨会
组播的应用和实现
yanqin | 2009-04-17 11:24:06    阅读:1407   发布文章



一、引言

1.1 、 问题的引出

  近年来,随着网络技术的发展,使得各种单一媒体相继成为网络传输中的数据,进而各种媒体的融合使得网络多媒体运用层出不穷。目前,在 Internet 上产生了许多新的应用,其中不少是高带宽的多媒体应用,譬如网络视频会议 ( 可视化 IP 电话会议系统 ) 、网络音频 / 视频广播、多媒体远程教育、远程会诊,而传统网络最初是为数据传输而设计的,是典型的点点通信模式,是为保证数据可靠传输而设计的,所用的传输协议多为点到点的协议。其所具有的特点将增加网络发送负载,带来网络延时。这就带来了带宽的急剧消耗和网络拥挤问题。为了缓解网络瓶颈, 人们提出各种方案:增加互连带宽,改变网络流量结构, IP 组播技术等等,其中, IP 组播技术有其独特的优越性――在组播网络中,即使用户数量成倍增长,主干带宽不需要随之增加。

  组播技术可形象的描述如下:  

  假设一个企业分布于各地的子公司(两个以上)之间需要通过 Internet 进行实时的交换信息 ( 数据,声音,图像 ) ,他们的计算机可能不属于同一物理网络,甚至不属于同一自治系统,这种通信的特点是“多点”式的。子公司发出的数据希望其他子公司都能收到,而总部发出的指示全体子公司都应收到。这种多点通信方式为组内广播,即组播技术,也称多播技术,多目网关技术。

1.2 、 TCP/IP 传送方式

  组播技术是 TCP/IP 传送方式的一种。在我们讨论组播技术之前先来看看

TCP/IP 传送方式。 TCP/IP 传送方式有三种:单播,广播,组播。

  单播( Unicast )传输:在发送者和每一接收者之间需要单独的数据信道。 如果一台主机同时给很少量的接收者传输数据,一般没有什么问题。但如果有大量主机希望获得数据包的同一份拷贝时却很难实现。 这将导致发送者负担沉重、延迟长、网络拥塞;为保证一定的服务质量需增加硬件和带宽。

  组播( Multicast )传输:它提高了数据传送效率。减少了主干网出现拥塞的可能性。组播组中的主机可以是在同一个物理网络, 也可以来自不同的物理网络(如果有组播路由器的支持)。

  广播( Broadcast )传输:是指在 IP 子网内广播数据包,所有在子网内部的主机都将收到这些数据包。 广播意味着网络向子网主机都投递一份数据包,不论这些主机是否乐于接收该数据包。然而广播的使用范围非常小, 只在本地子网内有效,因为路由器会封锁广播通信。广播传输增加非接收者的开销。

二、组播技术

2.1 、组播技术的原理

  组播是一种允许一个或多个发送者(组播源)发送单一的数据包到多个接收者(一次的,同时的)的网络技术。 组播源把数据包发送到特定组播组,而只有属于该组播组的地址才能接收到数据包。组播可以大大的节省网络带宽, 因为无论有多少个目标地址,在整个网络的任何一条链路上只传送单一的数据包。 它提高了数据传送效率。减少了主干网出现拥塞的可能性。组播组中的主机可以是在同一个物理网络, 也可以来自不同的物理网络(如果有组播路由器的支持)。

其网络模型如下图所示:



2.2 、实现组播技术的前提条件

  实现 IP 组播传输,则组播源和接收者以及两者之间的下层网络都必须支持组播。这包括以下几方面:

* 主机的 TCP/IP 实现支持发送和接收 IP 组播;

* 主机的网络接口支持组播;

* 有一套用于加入、离开、查询的组管理协议,即 IGMP ( v1,v2 );

* 有一套 IP 地址分配策略,并能将第三层 IP 组播地址映射到第二层 MAC 地址;

* 支持 IP 组播的应用软件;

* 所有介于组播源和接收者之间的路由器、集线器、交换机、 TCP/IP 栈、防火墙均需支持组播;

2.3 、组播地址

  在组播通信中,我们需要两种地址:一个 IP 组播地址和一个 Ethernet 组播地址。其中, IP 组播地址标识一个组播组。 由于所有 IP 数据包都封装在 Ethernet 帧中,所以还需要一个组播 Ethernet 地址。为使组播正常工作, 主机应能同时接收单播和组播数据,这意味着主机需要多个 IP 和 Ethernet 地址。 IP 地址方案专门为组播划出一个地址范围,在 IPv4 中为 D 类地址,范围是 224.0.0.0 到 239.255.255.255 , 并将 D 类地址划分为局部链接组播地址、预留组播地址、管理权限组播地址。

  局部链接地址: 224.0.0.0 ~ 224.0.0.255 ,用于局域网,路由器不转发属于此范围的 IP 包;

  预留组播地址: 224.0.1.0 ~ 238.255.255.255 ,用于全球范围或网络协议;

  管理权限地址: 239.0.0.0 ~ 239.255.255.255 ,组织内部使用,用于限制组播范围;

D 类地址的最后 28 比特没有结构化,即没有网络 ID 和主机 ID 之分。响应某一个 IP 多播地址的主机构成一个主机组,主机组可跨越多个网络。主机组的成员数是动态的,主机可以通过 IGMP 协议加入或离开某个主机组。 IP 多播地址影射到以太网地址的方法见下图。因为 IP 多播地址的高 5 位未影射,因此,影射的以太网地址不是唯一的,共有 32 个 IP 多播地址影射到一个以太网地址。

2.4 、组播协议:

  组播协议主要包括组管理协议( IGMP )和组播路由协议(密集模式协议(如 DVMRP , PIM-DM )、稀疏模式协议(如 PIM-SM , CBT ) 和链路状态协议( MOSPF ))

* 组管理协议 IGMP

  主机使用 IGMP 通知子网组播路由器,希望加入组播组;路由器使用 IGMP 查询本地子网中是否有属于某个组播组的主机。

* 加入组播组

  当某个主机加入某一个组播组时,它通过“成员资格报告”消息通知它所在的 IP 子网的组播路由器,同时将自己的 IP 模块做相应的准备, 以便开始接收来自该组播组传来的数据。如果这台主机是它所在的 IP 子网中第一台加入该组播组的主机, 通过路由信息的交换,组播路由器加入组播分布树。

* 退出组播组

  在 IGMP v1 中,当主机离开某一个组播组时,它将自行退出。组播路由器定时 ( 如 120 秒 ) 使用“成员资格查询” 消息向 IP 子网中的所有主机的组地址( 224.0.0.1 )查询,如果某一组播组在 IP 子网中已经没有任何成员, 那么组播路由器在确认这一事件后, 将不再在子网中转发该组播组的数据。与此同时,通过路由信息交换, 从特定的组播组分布树中删除相应的组播路由器。 这种不通知任何人而悄悄离开的方法, 使得组播路由器知道 IP 子网中已经没有任何成员的事件延时了一段时间,所以在 IGMP v2.0 中,当每一个主机离开某一个组播组时, 需要通知子网组播路由器,组播路由器立即向 IP 子网中的所有组播组询问,从而减少了系统处理停止组播的延时。

* 组播路由协议

  要想在一个实际网络中实现组播数据包的转发,必须在各个互连设备上运行可互操作的组播路由协议。 组播路由协议可分为三类:密集模式协议(如 DVMRP , PIM-DM )、稀疏模式协议(如 PIM-SM , CBT ) 和链路状态协议( MOSPF ),下面分别介绍各个协议的工作原理。

* 距离向量组播路由协议( Distance Vector Multicast Routing Protocol : DVMRP )

DVMRP 由单播路由协议 RIP 扩展而来,两者都使用距离向量算法得到网络的拓扑信息,不同之处在于 RIP 根据路由表前向转发数据, 而 DVMRP 则是基于 RPF 。为了使新加入的组播成员能及时收到组播数据, DVMPR 采用定时发送数据包给所有的 LAN 的方法, 然而这种方法导致大量路由控制数据包的扩散,这部分开销限制了网络规模的扩大。另一方面, DVMRP 使用跳数作为计量尺度, 其上限为 32 跳,这对网络规模也是一个限制。目前提出了分层 DVMRP ,即对组播网络划分区域, 在区域内的组播可以按照任何协议进行,而对于跨区域的组播则由边界路由器在 DVMRP 协议下进行,这样可大大减少路由开销。

* 开放式组播最短路径优先协议( Multicast Open Shortest Path First : MOSPF )

MOSPF 是一种基于链路状态的路由协议,是对单播 OSPF 协议的扩展。同 OSPF 类似, MOSPF 定义了三种级别的路由:

a 、 OSPF 区域内组播路由:用于了解各网段中的组播成员,构造(源网络 S ,组 G )对的 SPT ;

b 、 MOSPF 区域间组播路由:用于汇总区域内成员关系,并在自治系统( AS )主干网(区域 0 )上发布组成员关系记录通告,实现区域间组播包的转发。

c 、 OSPF AS 间组播路由:用于跨 AS 的组播包转发。

* 协议无关组播( Protocol Independent Multicast : PIM )

PIM 由 IDMR (域间组播路由)工作组设计,顾名思义, PIM 不依赖于某一特定单播路由协议, 它可利用各种单播路由协议建立的单播路由表完成 RPF 检查功能,而不是维护一个分离的组播路由表实现组播转发。 由于 PIM 无需收发组播路由更新,所以与其它组播协议相比, PIM 开销降低了许多。 PIM 的设计出发点是在 Internet 范围内同时支持 SPT 和共享树,并使两者之间灵活转换,因而集中了它们的优点提高了组播效率。 PIM 定义了两种模式:密集模式 (Dense-Mode) 和稀疏模式( Sparse-Mode )。

* 有核树组播路由协议( Core-Based Trees: CBT )

CBT 的基本目标是减少网络中路由器组播状态,以提供组播的可扩展性。为此, CBT 被设计成稀疏模式(与 PIM-SM 相似)。 CBT 使用双向共享树,双向共享树以某个核心路由器为根,允许组播信息在两个方向流动。 这一点与 PIM-SM 不同( PIM-SM 中共享树是单向的,在 RP 与组播源之间使用 SPT 将组播数据转发到 RP ), 所以 CBT 不能使用 RPF 检查,而使用 IP 包头的目标组地址作检查转发缓存。这就要求对 CBT 共享树的维护就需非常小心, 以确保不会产生组播路由循环。

三、组播技术的应用系统实现――可视化 Ip 电话会议系统

  上面讨论了组播技术的各个技术细节,下面我们以多媒体应用――可视化 Ip 电话会议系统为例来探讨组播技术在应用系统的实现。

可视化 Ip 电话会议系统 : 是利用计算机,多媒体通信技术和设备,通过传输信道在两地或多个地点之间开会的一种通信手段。在召开会议时,处于两地或不同地点的与会代表,既可以听到对方的声音,又可以看到对方的形象,同时还能看到对方会议室的场景,以及在会议中展示的事物、图片、表格、文件等,缩短了与会代表的距离,使大家好像在同一会议室参加会议一样。它的广泛应用必然产生巨大的社会效益和经济效益。

  会议的组织,召开,管理由主会场来完成。因此,主会场的视频,声音,通知,指示,下达的文件资料各分会场都应该收到。当某分会场发言时,其视频,声音同样要传送给其他会场。(如下图所示)上述所有动作的完成依赖组播技术。通过组播技术把主会场的各种数据发送到参加会议的分会场中,而且把发言分会场的视音频数据发送给其他会场:即主会场和发言分会场的各种数据只要在网上发送一次,其他会场都将收到此数据,(这就是有别于点对点通信方式的地方)而与这两个会场在同一网段却不参加会议的非成员不会收到数据(只要设备支持,这也是有别于广播的地方)。因此,当会议成员增加时,不会产生信息传输量剧增,带来无法忍受的网络延时和抖动。

  根据上面对组播技术的讨论我们可以得出要实现可视化 IP 电话会议必须解决如下几个方面问题 :

3.1 、组播地址

  根据上面的讨论我们知道应用系统中可采用组播地址的范围是: 224.0.1.0 ~ 238.255.255.255 。那么在我们的应用系统中应如何使用组播地址呢?有两种方法使用组播地址:静态设置,动态获取。

* 静态获取:

  在会议系统中设置好组播地址 , 以后永远不变。这种方式虽然比较简单,在目前会议系统使用不多时没有问题,但是如果有两个此类会议系统运行,或使用相同组播地址的不同系统运行(由于没有统一管理组播地址,开发商互相不知道),那就会出现无法解决的冲突。因为本应属于两个不同的组却由于使用相同的组播地址而合为一组。这对于将来会议系统的广泛应用是不可行的。

* 动态获取:

  会议系统用到的组播地址是不定的,只在运行时临时确定。动态获取组播地址的方法大概有三种:通告方式获取,算法推导方式取得,采用 Internet 组播地址动态分配体系结构( RFC2908 )。

  通告方式获取:当会议系统建立时,先侦听 10-20 分钟左右,以确定当前已使用的组播地址,防止冲突。

  算法推导:根据本地的特殊条件,通过一定的算法,求出当前使用的组播地址。

  采用上述三种方式获取组播地址可有效防止地址冲突问题。虽然比较复杂,也较耗费资源,但是有利于将来的多媒体应用的扩展。

3.2 、网络设置:

  由于我们以前的 Internet 应用大多集中于数据的交换、共享,因此在目前的通信方式中,主要采用的是单播和广播,对组播的考虑不是很多。但随着多媒体应用(视频,音频)的发展,要求 Internet 网络必须很好的支持组播,这也是会议系统得以运行的前提条件。因此,所有介于组播源和接收者之间的路由器、集线器、交换机、 TCP/IP 栈、防火墙均需支持组播。

  在路由器上要安装相应的软件:组管理协议软件,组播路由协议软件等等。

  如果要采用 RFC2908--Internet 组播地址动态分配体系结构,还应配置相应的组播地址分配服务器。

  目前绝大多数集线器、交换机只是简单的把组播数据当成广播来发送接收。

  假设某网段某一成员参加会议(采用会议系统),则处于同一网段(由交换机、集线器连接)的其他非会议成员其实都可收到多媒体流。这样,非会议成员的真正可使用带宽将急剧下降;如果有多个类似的会议系统(组)同时存在,那么将导致网络拥塞,直至网络瘫痪。同时,由于数据流被广播,很可能会被其他非法成员利用,造成安全隐患。因此,在当今流行的用交换机组建园区网,小区网、专用局网 Intranet 的网络设计中,应充分考虑到将来多媒体应用发展将会带来的安全问题和带宽问题。

3.3 、防火墙:

  可视化 IP 电话会议系统运行在 Internet 上,我们必须要考虑防火墙的问题。由于目前病毒泛滥,为了保护自身的安全,许多机构用一台防火墙计算机作为在公用互联网和本机构的专用网,即内部局网 Intranet 网之间的安全性网关。目前的防火墙大多基于单播通讯来设计的,而组播与单播的原理是有很大不同的:

  单播通讯是由一对参与者会话的形式组成的,因此搞清楚单播通讯的安全性是基于这些参与者(每位被授权的参与者),此外 " 单播通讯之间的 " 信任 " 必须建立在每一个参与者的 " 可信任 " 之上,也必须建立在数据的 " 可信任 " 上。

  组播的范围有随意性,它含盖了不同集合的参与者,有的可能还不知道这些参与者是否具有资格。(这是它的特点,而不是 BUG ),因此组播的安全性不能依赖其参与者,而应该是依赖数据。特别是组播通讯是通过对包数据授权而进行授权的,例如使用数字签名 -- 这种数据是专门加过密的,所以组播间的信任是通过这些数据的神圣的信任关系来建立的。

  为了处理组播安全问题,防火墙应该做三件事情:

* 支持所选择的组播安全策略。(这个策略建立了正在等候的准备转发的特殊的组播群),组播策略是由特殊的一组受允许通过防火墙转发的组播群(和相应的 UDP 口)组成的安全集合。

* 动态地作出决定何时需要转发每一个侯选组。组播组是动态变化的,只有确定有必要转发时它才会转发。

* 通过防火墙转发每一个侯选组的数据。 用来转发侯选组播包的实际机制将有赖于防火墙的实质,普通的防火墙设置使用两个站点: intranet 的部分,外部 internet 部分。这种情况下,组播包可在两节点间使用管道协议转发(再到另一侧重新组播)。


*博客内容为网友个人发布,仅代表博主个人观点,如有侵权请联系工作人员删除。

参与讨论
登录后参与讨论
推荐文章
最近访客