IP组播路由协议详细介绍
一、概述
1
、组播技术引入的必要性
  随着宽带多媒体网络的不断发展,各种宽带网络应用层出不穷。IP TV、 视频会议、数据和资料分发、网络音频应用、网络视频应用、多媒体远程教育等宽带应用都对现有宽带多媒体网络的承载能力提出了挑战。采用单播技术构建的传统 网络已经无法满足新兴宽带网络应用在带宽和网络服务质量方面的要求,随之而来的是网络延时、数据丢失等等问题。此时通过引入IP组播技术,有助于解决以上问题。组播网络中,即使组播用户数量成倍增长,骨干网络中网络带宽也无需增加。简单来说,成百上千的组播应用用户和一个组播应用用户消耗的骨干网带宽是一样的,从而最大限度的解决目前宽带应用对带宽和网络服务质量的要求。

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

单播(Unicast)传输在发送者和每一接收者之间实现点对点网络连接。 如果一台发送者同时给多个的接收者传输相同的数据,也必须相应的复制多份的相同数据包。如果有大量主机希望获得数据包的同一份拷贝时, 将导致发送者负担沉重、延迟长、网络拥塞;为保证一定的服务质量需增加硬件和带宽。

组播(Multicast)传输:在发送者和每一接收者之间实现点对多点网络连接。 如果一台发送者同时给多个的接收者传输相同的数据,也只需复制一份的相同数据包。它提高了数据传送效率。减少了骨干网络出现拥塞的可能性。

广播(Broadcast)传输:是指在IP子网内广播数据包,所有在子网内部的主机都将收到这些数据包。 广播意味着网络向子网每一个主机都投递一份数据包,不论这些主机是否乐于接收该数据包。所以广播的使用范围非常小, 只在本地子网内有效,通过路由器和交换机网络设备控制广播传输。
二、组播技术
1
IP组播技术体系结构
  组播协议分为主机-路由器之间的组成员关系协议和路由器-路由器之间的组播路由协议。组成员关系协议包括IGMP(互连网组管理协议)。组播路由协议分为域内组播路由协议及域间组播路由协议。域内组播路由协议包括PIM-SMPIM-DMDVMRP等协议,域间组播路由协议包括MBGPMSDP等协议。同时为了有效抑制组播数据在链路层的扩散,引入了IGMP SnoopingCGMP等二层组播协议。
  IGMP建立并且维护路由器直联网段的组成员关系信息。域内组播路由协议根据IGMP维护的这些组播组成员关系信息,运用一定的组播路由算法构造组播分发树进行组播数据包转发。域间组播路由协议在各自治域间发布具有组播能力的路由信息以及组播源信息,以使组播数据在域间进行转发。

2 组播IP地址
  组播IP地址用于标识一个IP组播组。IANAD类地址空间分配给IP组播,其范围是从224.0.0.0239.255.255.255。如下图所示(二进制表示)IP组播地址前四位均为1110
八位组(1 八位组(2 八位组(3 八位组(4
1110XXXX XXXXXXXX XXXXXXXX XXXXXXXX

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

4 网络二层组播相关协议
  网络二层组播相关协议包括IGMP Snooping ,IGMP ProxyCGMP协议。
  IGMP Snooping的实现机理是:交换机通过侦听主机发向路由器的IGMP
成员报告消息的方式,形成组成员和交换机接口的对应关系;交换机根据该对应关系将收到组播数据包只转给具有组成员的接口。
  IGMP ProxyIGMP 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负责为其直连组成员朝着组播分发树根节点的方向发送"加入/剪枝"消息,或是将直连组播源的数据发向组播分发树。
PIM-SM显式的加入机制


  PIM-SM通过建立组播分发树来进行组播数据包的转发。组播分发树分为两种:以组GRP为根的共享树(Shared Tree)和以组播源为根的最短路径树(Shortest Path Tree)。
PIM-SM通过显式的加入/剪枝机制来完成组播分发树的建立与维护。如上图所示:

DR收到一个发自接收端的加入(Join),它就会向着组GRP方向逐跳组播发出一个(*G)加入信息用以加入共享树;

源主机向组发送组播数据时,源的数据被封装在注册消息内,并由其DR 单播至RPRP再将源的解封装数据包沿着共享树转发到各个组成员;

RP
朝着源方向向第一跳路由器发送(SG)加入信息,用以加入此源的最短路径树,这样源的数据包将沿着其最短路径树不加封装地发送到RP

当第一个组播数据沿此树到达时,RP向源的DR发送注册-停止消息,以使DR停止注册封装过程。此后,这个源的组播数据不再注册封装,而是先沿着源的最短路径树发送到RP,再由RP 将其沿着共享树转发到各个组成员。

  当不再需要组播数据时,DR向着组GRP逐跳组播剪枝消息用以剪枝共享树。
  PIM-SM中还涉及到其根节点RP的选择机制。PIM-SM域内配置了一个或多个候选自举路由器(Candidate-BSR)。应用一定的规则从中选出自举路由器(BSR)PIM-SM域中还配置了候选 RP路由器(Candidate-RP),这些候选 RP将包含了它们地址及可以服务的组播组等信息的包单播至自举路由器。BSR 定期生成包括一系列候选 RP以及相应的组地址的"自举"消息。"自举"消息在整个域中逐跳发送。路由器接收并保存这些"自举"消息。若 DR 从直连主机收到了某组的成员关系报告后,如果它没有这个组的路由项,DR 将使用一个hash算法将组地址映射至一个可以为该组服务的候选 RP。然后 DR 将朝RP方向逐跳组播"加入/剪枝"消息。若 DR从直连主机收到组播数据包,如果它没有这个组的路由项,DR 将使用hash算法将组地址映射至一个可以为该组服务的候选 RP。然后 DR将组播数据封装在注册消息中单播到RP