Tauruser

Enjoy Every Day
posts - 34, comments - 95, trackbacks - 0, articles - 5
  C++博客 :: 首页 :: 新随笔 :: 联系 :: 聚合  :: 管理

流媒体技术基础-组播

Posted on 2006-04-03 09:11 Tauruser 阅读(485) 评论(3)  编辑 收藏 引用

  最近学校网络中心的网络电视服务正在准备升级,将采用组播的形式?组播是什么?会不会对我这个学期的创新计划有影响?之前只是听师兄们说用,在校园网内采用组播形式的网络电视效果,和对网络的负载比基于P2P的网络电视更好。Gogle了一下组播。在http://www.chinavideoonline.com/lmtchangshi/lmtchangshi_011.htm发现了组播比较详细的介绍。转载如下:

流媒体技术基础-组播
作者/来源:未知


7.2.2 组播概述
  组播中,支持IGMP接收者主机给路由器发送一个成员活动报告,如加入或离开组,路由器使用这个信息有选择的传送数据到有关主机所在网络。源发送一个单独的报文到一个组地址,如路径在一个路由器上分支,也只给加入组的分支产生一个报文。源主机不需要发送报文的多个拷贝。这样就减少了用于多目标数据传送所消耗的带宽和资源。
  组播传输可在数据链路层(第二层)和网络层(第三层)实现,支持的媒体类型包括以太网、FDDI和ATM。大多数路由器提供商支持IP组播,不支持IP组播的网络通过组播隧道技术传输组播信息包。
  组播用户根据提供服务级别,组成一个分层结构,如图3.10所示。内容提供商传递新闻、电视及娱乐节目,应用软件开发商创建实时数据分配应用系统,用于高效、高质量的发布实时信息,平台及网络开发商开发、维护和支持组播硬件与协议要求,网络运营商提供公共网络基础结构。
 
  图3.10 用户类型分层结构
  7.2.3 IP组播编址与转换
  IPV4组播编址与转换
  一个IP地址由32个二进制单位构成,通常划分8位一组,再将每个组换算为十进制,以小数点分为四组。IP地址包含网络部分和主机部分。主机指网络通讯的一个终点位置;而网络部分表示一个或多个主机的集合。根据用于网络和主机的位数,将IP网分为五类,简单的命名为A类、B类、C类、D类和E类。其中D类地址范围在224.0.0.0~239.255.255.255之间,格式如图3.11所示,用于组播。组地址有两种类型,永久的和临时的。224.0.0.0被保留,不分配给任何组;从224.0.0.1到224.0.0.255范围的组播地址分配给路由选择协议和其它低级布局与维护协议,其中有名的是224.0.0.1和224.0.0.2,前者用来编址直接连接在网络上的所有IP多路广播主机,后者是给一个子网上所有路由器的地址;中间范围从224.0.1.0到238.255.255.255被组播用来在组、内部网和Internet中终端应用程序中使用;从239.0.0.0到239.255.255.255指定给本地组播应用程序。
 
   0  1  2  3      ...              31

图3.11 D类地址格式
 
  所有网络协议需要一种方法把第三层的IP网络地址转换到第二层的硬件/媒体地址。以以太网为例,数据链路层需要将D类IP地址映射为以太网MAC地址,方法是将IP组播地址中低23位取代以太网组播地址01:00:5E:00:00:00的低23位,在映射过程中,组IP地址中有9位不参与替换。作为D类地址,前4位肯定是1110,实际只有5位是真正不参与映射。由于5为总共有32种不同组合,所以映射并不具有唯一性。在主机上实现时,不仅要在第二层对收到的以太网帧的以太网地址进行检查,也要在第三层检查组播IP地址,来判断数据包是否指定到一个主机当前已加入的组。
 
  IPV6 组播编址
  IPV6地址空间为28位,其中1/256的地址空间分配给组播地址。IPV6地址地址格式如图3.12所示。

  一个FF(11111111)值标识该地址是组播地址。标识段高三位始终设置为0并保留。第四位T标识设置为0时表示一个永久分配的组播地址。T标识设置为1时,表示非永久分配的组播地址,这种地址作为一个临时的组播地址。范围值限制了组播的范围,表3.14列出了这个四位的组播范围值。
  表3.14 组播地址范围值 值 目标 值 目标 0 保留 8 本地机构 1 本地结点 9 未分配 2 本地链接 A 未分配 3 未分配 B 未分配 4 未分配 C 未分配 5 本地站点 D 未分配 6 未分配 E 全球 7 未分配 F 保留
  7.2.4 建立组播组
  组播路由器收到指定给一个组播组的数据时,它根据子网上是否存在组成员和转发路由器将数据转发给响应接口。在主机和路由器之间使用\"互联网组管理协议\"(IGMP),而在组播路由器之间使用\"距离向量组播路由协议\"(DVMRP)和\"协议无关组播协议\"(PIM)。
  象ICMP一样,IGMP是IP不可或缺的部分,它使用IP数据包传输数据,其IP协议号为2。IGMP报文被发送时,TTL为1,并且IP标题中包含新的IP路由器警报可选类型。IGMP报文类型包括成员查询报文、组成员报告报文和离开组成员报文。
  IGMP被主机用来通知直连的路由器,申请加入或离开一个组播组;而路由器会发出主机成员资格查询消息,以判断是否有主机属于某个组播组的成员,只要有一个主机响应了此次查询,路由器就继续向此子网发送组播数据。
 
  7.3 组播需解决的问题
  组播首先要解决广播给谁的问题。要按不同应用项目(如体育、文艺、娱乐、学习等)进行分组,小组成员要向组播服务器(一般是路由器)进行注册登记,用户主机发出请示,提出具体组播地址。为发送一份IP组播数据包,发送者要确定一个合适的信宿地址,这个地址代表一个主组。然后,组播数据通过普通的IP发送操作发送出去。
  其次要解决的问题是收哪个广播,有时在同一网络中有多个组播,每个广播选择国际规定的特定地址(组播的IP地址)。发送端相当简单,但IP组播和接收端却十分复杂。为了接收数据包,用户工作站上的应用要申请与特定组播关联的组播主组会员资格。这种申请传送到用户的局域网路由器,如有必要,还要传送到发送者和接收者的路由器。这一步完成,接收工作站的网络接口卡开始\"侦听\"与新组播组地址关联的数据链路层地址。广域网路由器把请求进入的组播数据包送往局域网路由器,局域网路由器把主组地址变换成与它相关的数据链路层地址,并用这个地址建立报文。接收链路的网络接口卡和网络驱动程序侦听这个地址,把组播地址传向TCP/IP协议堆栈,从而使数据适合用户的应用。
  第三个问题是用户主机在撤销时要通知组播服务器。因为接收组播的用户是被动的,撤销时可能不通知服务器,这时服务器要在一定时间后向用户提出询问,实施问答程序,若无用户应答,服务器将主动撤销相应的路径带宽。
  第四是要解决如何广播问题。组播的程序如下:要解决组播路由以启动网络。对于路由器网,可利用传统的路由协议,选择路由。所选路由被路由器记忆下来,将来通过组播传送数据时可沿用此路由。对于多层网络,因为IP不具有低层网络的拓扑知识,建立路由的效率很低,多层网中路由也难以达到全网整体优化。对于标记交换网络,因为路由器路由表传送的数据包标头字段以及ATM上的标记信息库已通过标记联编,将多层网络的第2层与第3层捆绑在一起,IP可以识别、掌握全网拓扑,可利用传统的路由协议选择路由。要建立组播组,明确接收者。要建立组播树,由与IP路由协议无关的组播协议构建组播树。组播树的上游为组播服务器(路由器),按树形分叉为各叶片,叶片即为组播路径,叶尖抵达组播分组目的地。最后是进行数据复制,组播树分叉处节点对转发的组播包进行拷贝、分流。最后一跳,组播包登上局域网,以广播方式传送到子网内各主机用户。
 
  7.4 组播路由技术
  单播与组播有两点不同:
  组播时,可能在不同的网络上有若干个地址相同的接受端。
  组播通信会在网络中周而复始的循环,直至这个包内TTL字段为零,即所谓的\"反转路径转发\",必须有一个合理的组播路由协议结构来禁止出现这种情况;路由器收到一个组播包时,就会查看这个组播包是否被一个接口接收,该接口位于组播包返回资源的最短路径上。
  为实现组播通信,就必须建立支持组播的路由协议,目前常用的组播路由协议有距离向量组播路由协议、协议无关密集模式组播协议与协议无关分散模式组播协议。
 
  距离向量组播路由协议
  DVMRP是一个适用于单个独立系统的内部网关协议,建立在\"路由信息协议\"(RIP)基础上采用本身的动态路由协议来进行路由交换和路由表的构建。一个DVMRP数据由两部分组成:一个小的固定长度的IGMP格式的头和一个被标记的数据流。DVMRP的基本操作包括四项处理:第一个是处理邻居查找,用来查找直接接入一个普通网络的具有DVMRP能力的其他已启用的路由器。第二个是处理路由交换,与IGMP联合,判断是否需要在网络上转发组播包,或判断是否禁止通信包到达一个网络。最后两个处理用于DVMRP动态的在一个网络列表中增加或删除一个或多个网络。
  一个支持DVMRP的路由器可以 一个物理接口直接连接到子网,或通过一个隧道接口连接到另外一个组播小岛。隧道是用在被一些不支持组播的路由器隔开的两个具有多路广播能力的路由器之间实现数据发送的一种方法。
 
  协议无关组播协议(PIM)
  PIM协议的发展目的是在Internet 上提供足够规模的域间组播路由。PIM有两种兼容的操作模式:密集模式和发散模式。
  密集模式(PIM-DM)
  此模式与DVMRP相似,都属于密集模式协议,采用了DVMRP一样的方式,建立PIM-DM环境中建造起来的基于资源的组播树。PIM-DM独立于网络选择的IP路由协议,\"协议无关组播\"由此而得名。
  协议工作原理如下:路由器收到发自资源的一个组播包,对资源IP地址进行检查,进而得知在\"反转路径转发\"接口是否已收到该组播包。然后,路由器将该组播包流传到除已收到该包的接口外的各接口。
  PIM-DM适用于以下集中情况:
  发送者和接收者非常接近,且只有一小部分发送者和大量的接收者。
  组播的流量大。
  组播是持续的。
 
  协议无关组播协议----分散模式(PIM-SM)
  与PIM-DM相似,两者都是建立在组播路由协议基础上用于决定RPF接口的协议。PIM-SM协议假定在网络中接收者的人数很稀疏或者组播组被广域网分割开。
  PIM-SM适用于以下集中情况:
  在一个组里接收者很少。
  发送者和接收者被广域网分开。
  组播流量断断续续。

Feedback

# re: 流媒体技术基础-组播  回复  更多评论   

2006-04-03 21:08 by 天来
好难....

# re: 流媒体技术基础-组播  回复  更多评论   

2006-04-19 22:47 by aragon
.............

# re: 流媒体技术基础-组播  回复  更多评论   

2007-09-21 11:03 by 灯谜
为何没有图片?

只有注册用户登录后才能发表评论。
【推荐】超50万行VC++源码: 大型组态工控、电力仿真CAD与GIS源码库
网站导航: 博客园   IT新闻   BlogJava   知识库   博问   管理