heartstill

博客园 首页 新随笔 联系 订阅 管理

一,IP网络数据传输方式

  组播技术是IP网络数据传输三种方式之一,在介绍IP组播技术之前,先对IP网络数据传输的单播、组播和广播方式做一个简单的介绍:
  

单播(Unicast)传输:在发送者和每一接收者之间实现点对点网络连接。如果一台发送者同时给多个的接收者传输相同的数据,也必须相应的复制多份的相同数据包。如果有大量主机希望获得数据包的同一份拷贝时,将导致发送者负担沉重、延迟长、网络拥塞;为保证一定的服务质量需增加硬件和带宽。
  组播(Multicast)传输:在发送者和每一接收者之间实现点对多点网络连接。如果一台发送者同时给多个的接收者传输相同的数据,也只需复制一份的相同数据包。它提高了数据传送效率。减少了骨干网络出现拥塞的可能性。
  广播(Broadcast)传输:是指在IP子网内广播数据包,所有在子网内部的主机都将收到这些数据包。广播意味着网络向子网每一个主机都投递一份数据包,不论这些主机是否乐于接收该数据包。所以广播的使用范围非常小,只在本地子网内有效,通过路由器和交换机网络设备控制广播传输。

相关技术

  二、组播技术

1、 IP组播技术体系结构

  组播协议分为主机-路由器之间的组成员关系协议和路由器-路由器之间的组播路由协议。组成员关系协议包括IGMP(互连网组管理协议)。组播路由协议分为域内组播路由协议及域间组播路由协议。域内组播
  

路由协议包括PIM-SM(Protocol Independent Multicast-Sparse Mode)、PIM-DM(Protocol Independent Multicast-Dense Mode)、DVMRP(Distance Vector Multicast Routing Protocol)等协议,域间组播路由协议包括MBGP(Multiprotocol BGP)、MSDP(Multicast Source Discovery Protocol)等协议。同时为了有效抑制组播数据在链路层的扩散,引入了IGMP Snooping、CGMP等二层组播协议。
  IGMP建立并且维护路由器直联网段的组成员关系信息。域内组播路由协议根据IGMP维护的这些组播组成员关系信息,运用一定的组播路由算法构造组播分发树进行组播数据包转发。域间组播路由协议在各自治域间发布具有组播能力的路由信息以及组播源信息,以使组播数据在域间进行转发。

2、 组播IP地址

  组播IP地址用于标识一个IP组播组。IANA(internet assigned number authority)把D类地址空间分配给IP组播,其范围是从224.0.0.0到239.255.255.255。如下图所示(二进制表示),IP组播地址前四位均为1110。
  八位组(1) 八位组(2) 八位组(3) 八位组(4)
  1110XXXX XXXXXXXX XXXXXXXX XXXXXXXX
  组播组可以是永久的也可以是临时的。组播组地址中,有一部分由官方分配的,称为永久组播组。永久组播组保持不变的是它的ip地址,组中的成员构成可以发生变化。永久组播组中成员的数量都可以是任意的,甚至可以为零。那些没有保留下来供永久组播组使用的ip组播地址,可以被临时组播组利用。
  224.0.0.0~224.0.0.255为预留的组播地址(永久组地址),地址224.0.0.0保留不做分配,其它地址供路由协议使用; 224.0.1.0~238.255.255.255为用户可用的组播地址(临时组地址),全网范围内有效;239.0.0.0~239.255.255.255为本地管理组播地址,仅在特定的本地范围内有效。常用的预留组播地址列表如下:
  224.0.0.0 基准地址(保留) 224.0.0.1 所有主机的地址 224.0.0.2 所有组播路由器的地址
  224.0.0.3 不分配 224.0.0.4 dvmrp 路由器 224.0.0.5 ospf 路由器
  224.0.0.6 ospf dr 224.0.0.7 st 路由器 224.0.0.8 st 主机
  224.0.0.9 rip-2 路由器 224.0.0.10 Eigrp 路由器 224.0.0.11 活动代理
  224.0.0.12 dhcp 服务器/中继代理 224.0.0.13 所有pim 路由器
  224.0.0.14 rsvp 封装 224.0.0.15 所有cbt 路由器 224.0.0.16 指定sbm
  224.0.0.17 所有sbms 224.0.0.18 vrrp

3、 组成员关系协议 (IGMP)

  IGMP协议运行于主机和与主机直接相连的组播路由器之间,主机通过此协议告诉本地路由器希望加入并接受某个特定组播组的信息,同时路由器通过此协议周期性地查询局域网内某个已知组的成员是否处于活动状态(即该网段是否仍有属于某个组播组的成员),实现所连网络组成员关系的收集与维护。
  IGMP有三个版本,IGMPv1由RFC1112定义,目前通用的是IGMPv2,由RFC2236定义。IGMPv3目前仍然是一个草案。IGMPv1中定义了基本的组成员查询和报告过程,IGMPv2在此基础上添加了组成员快速离开的机制,IGMPv3中增加的主要功能是成员可以指定接收或指定不接收某些组播源的报文。这里着重介绍IGMPv2协议的功能。
  IGMPv2通过查询器选举机制为所连网段选举唯一的查询器。查询器周期性的发送普遍组查询消息进行成员关系查询;主机发送报告消息来应答查询。当要加入组播组时,主机不必等待查询消息,主动发送报告消息。当要离开组播组时,主机发送离开组消息;收到离开组消息后,查询器发送特定组查询消息来确定是否所有组成员都已离开。
  通过上述IGMP机制,在组播路由器里建立起一张表,其中包含路由器的各个端口以及在端口所对应的子网上都有哪些组的成员。当路由器接收到某个组G的数据报文后,只向那些有G的成员的端口上转发数据报文。至于数据报文在路由器之间如何转发则由路由协议决定,IGMP协议并不负责。

4、 网络二层组播相关协议

  网络二层组播相关协议包括IGMP Snooping ,IGMP Proxy和CGMP协议。
  IGMP Snooping的实现机理是:交换机通过侦听主机发向路由器的IGMP成员报告消息的方式,形成组成员和交换机接口的对应关系;交换机根据该对应关系将收到组播数据包只转给具有组成员的接口。
  IGMP Proxy与IGMP Snooping实现功能相同但机理相异:IGMP snooping只是通过侦听IGMP的消息来获取有关信息,而IGMP Proxy则拦截了终端用户的IGMP请求并进行相关处理后,再将它转发给上层路由器。
  CGMP(Cisco Group Management Protocol)是Cisco基于客户机/服务器模型开发的私有协议,在CGMP的支持下,组播路由器能够根据接收到的IGMP数据包通知交换机哪些主机何时加入和脱离组播组,交换机利用由这些信息所构建的转发表来确定将组播数据包向哪些接口转发。GMRP是主机到以太网交换机的标准协议,它使组播用户可以在第二层交换机上对组播成员进行注册。

5、 组播路由协议 (PIM-SM)

  众多的组播路由协议中,目前应用最多的协议是 PIM-SM稀疏模式协议无关组播。
  在PIM-SM域中,运行PIM-SM协议的路由器周期性的发送Hello消息,用以发现邻接的PIM路由器,并且负责在多路访问网络中进行指定路由器(DR)的选举。这里,DR负责为其直连组成员朝着组播分发树根节点的方向发送"加入/剪枝"消息,或是将直连组播源的数据发向组播分发树。

编址

  A类 0.0.0.0 - 127.255.255.255
  B类 128.0.0.0 - 191.255.255.255
  C类 192.0.0.0 - 223.255.255.255
  D类 224.0.0.0 - 239.255.255.255
  A,B,C类ip包转发基于目的ip地址。D类(组播地址)包转发基于源地址。

组播地址的分类:

  保留——224.0.0.0 - 224.0.0.255
  用户组播地址——224.0.1.0 - 238.255.255.255
  本地管理组——239.0.0.0 - 239.255.255.255 (用于私人组播领域,类似私有IP地址)
  RPF:
  a multicast packet received on an interface will be accepted if received on the interface that would be used to send a unicast ip packet back to the source;this is called reverse path forwarding(RPF).
  逆向路径转发
  设备在接口上收到组播报文后,如果去往组播源的单播路由也是从该接口学到的,则转发组播数据,否则丢弃。

组播技术待解决的问题:

  目前组播技术还有许多未解决的问题,例如:组播安全、组播拥塞控制、组播状态聚集、组播流量计费等等。
posted on 2010-09-19 16:33  开始测试  阅读(437)  评论(0编辑  收藏  举报