组播技术在IPTV中的应用
徐菡洁 高慧 曾菊根
随着互联网的不断发展,网络中交互的各种数据、语音和视频信息越来越多,电子商务、网上会议、网上拍卖、视频点播、远程教学等服务也在逐渐兴起。这些服务大多符合点对多点的模式,对信息安全性、有偿性、网络带宽提出了较高的要求。其中,IPTV在广域网大范围部署时,最佳的搭配技术就是组播。
组播的基本概念
组播组使用一个IP组播地址标识。任何用户主机(或其他接收设备),加入一个组播组,就成为了该组成员,可以识别并接收以该IP组播地址为目的地址的IP报文。以组播组地址为目的地址,发送IP报文的信源称为组播源。一个组播源可以同时向多个组播组发送数据,多个组播源可以同时向一个组播组发送报文。网络中支持组播功能的路由器称为“组播路由器”。和单播路由器一样,组播路由器的功能是寻址和转发。组播路由器通过组播路由协议发现和选择路由,最终形成组播路由表,对组播数据进行前转。熟悉组播的人都知道,使用组播就是“种植”和“维护”一棵或两棵树。组播树在组播路由器上最好的体现是组播路由表项(*,G)和(S,G)。组播中常见的就是源树和共享树。源树:以组播源为树根,组播路径为树枝,组成员为树叶的一棵树。一般源树就是一个组播源对应一个组播组,或者一个组播源对应多个组播组。共享树:以RP为树根,组播路径为树枝,组播源和组成员为树叶的一棵树。共享树实质维护了两棵树,首先是RP到多个负载均衡源的源树,然后就是RP到多个组的树,两棵树共享RP,所以简称为共享树。共享树模型中多个组播源对应到一个组播组,或者多个组播源对应到多个组播组,实现了组播源之间的负载和冗余。
IGMP协议是主机和路由器进行组播通信的语言,对应到OSI模型属于第三层协议,是我们所说的三层组播协议中的关键组件。IGMP作为组管理协议,本身存在协议的版本、实现机制和消息类型。IGMP作为主机和路由器交互的组管理协议,一旦主机和路由器之间运行了,那么它们之间的数据不再是像单播一样外部数据走网关。IGMP协议规定了组播的数据是不需要网关的,所以在配置组播应用时,VRRP对于组播的冗余性是没有帮助的。组播路由协议是组播路由器之间的组播通信语言。组播路由协议可以按照使用的范围大小划分为IGP和EGP,这也和单播路由协议一样。如我们常见的OSPF、ISIS、RIP等属于单播的IGP,PIM SM、PIM DM、MOSPF等属于组播的IGP,其中使用较为频繁的就是PIM的两种IGP协议。利用BGP丰富的路由属性和地址族,BGP不但作为单播的EGP协议,同时也使用在组播的环境当中,我们称之为MBGP。
PIM(Protocol Independent Multicast)是目前使用最广泛的组播路由协议, PIM称为协议无关组播。PIM是“拿来主义者”,PIM不自己去发现路由,而是使用现成的单播路由表中的路由条目,无论这些单播路由条目是哪种单播路由协议发现和传递的,这就是与协议无关的含义。PIM利用现有的单播路由信息,对组播报文执行RPF(Reverse Path Forwarding)检查,从而创建组播路由表项,构建组播分发树。PIM不维护专门的单播路由,也不依赖某具体的单播路由协议,它直接利用单播路由的结果。
RP (Rendezvous Point)是PIM SM中源树和共享树的汇聚点,是两棵树的总根。一般情况下全网设备对于RP地址的认识是一致的,否则两棵树无法汇聚,导致源发送的流量无法达到组。这里所说的RP地址仅仅是一个地址,并非同一台设备。有时候为了实现RP的路径择优和负载分担,会部署Anycast,这个时候多个路由器共享一个RP地址,通过单播路由的路径择优对RP进行负载。总之RP地址的配置对于PIM路由器来说是非常重要的。
通过配置组播路由协议,形成了一张组播路由表。组播路由表存放的空间和单播路由表是独立的。
三层组播技术运行在IP层或者之上,我们平时常见的基本上都是三层组播技术。三层组播技术组成员和组播路由器之间使用IGMP协议,组播路由器之间只用PIM等路由协议。
PIM SM组播模型
IPTV常见的PIM SM模型包括两个方面:组播路由收敛和组播数据转发。不管是单播还是组播路由器,基本功能就是寻址和转发。寻址就是查找路由表,明确下一条,形成数据转发表;转发就是依照转发表项进行数据投递。所有的前提就是“有表可查”,这就是组播路由表的收敛。
PIM-SM假设网络中的组成员分布非常稀疏,基于这一假设,PIM-SM的设计思路是:在网络中维护一台重要的PIM路由器:汇聚点RP,网络中所有PIM路由器都知道RP的位置,而RP不需要知道PIM路由器的位置。当网络中出现组成员(用户主机通过IGMP加入某组播组G)时,最后一条路由器向RP发送Join消息,逐跳创建(*,G)表项,生成以一棵以RP为根的RPT。当网络中出现活跃的组播源(信源向某组播组G发送第一个组播数据)时,第一跳路由器将组播数据封装在Register消息中单播发往RP,在RP上创建(S,G)表项,注册源信息。当网络中同时出现组成员和向该组发送数据的组播源时,以RP为中转站:组播数据先被封装在Register消息中发往RP,再沿RPT到达组成员。
组播的数据转发一直是从源到组进行发送,按照组播路由表中的OIL进行数据发送,按照IIL进行RPF检查。RPF基本的思想就是某一个组播数据进入本路由器的时候,本路由器执行RPF检查算法,查看这个数据包是否从IIL接口进入,若是从IIL接口进入则转发,否则丢弃该数据包。由于组播路由表是唯一的,那么某个数据包进入本路由器的端口也是唯一的,所以防止了一个数据包从A口接收,从B口发送,又从其它接口接收的问题,防止了组播环路。
组播在IPTV中的应用
中心节点为省内IPTV用户提供组播服务,对于省内用户来说,此时IPTV系统是全省的组播源。它规定和使用了与内容源厂商完全不同的一套组播地址,这样就隔离了省内组播用户直接向内容提供商请求流量的可能性。中心节点与骨干网的组播应用较引流相对简单,只需要打通中心节点和骨干网之间的组播通道,配置相应的RP地址和路由即可。具体组播用户请求如何到达中心节点,是骨干网考虑的事情,是IPTV系统管理范围之外的事情。
通过PIM SM组播模型的介绍,我们知道,组播源和RP之间通过单播信息进行通告,那么首先RP和组播源之间的双向路由必须是互通的,否则单播的数据无法实现双向交互。中心节点与骨干网组播配置遵循以下思路:1.配置去往骨干网的路由,通常是默认路由。2.若是冗余的S9300交换机,保证S9300之间的互联三层地址运行PIM SM。3.在去往骨干网的三层接口上运行PIM SM,确保PIM邻居关系建立。4.配置骨干网RP地址(注:此地址为该省骨干网管辖内的地址,通常和内容提供商的RP地址不一样)。
至此,IPTV系统内部的组播配置完毕。
(作者单位:江西省广播电视网络传输有限公司)
随着互联网的不断发展,网络中交互的各种数据、语音和视频信息越来越多,电子商务、网上会议、网上拍卖、视频点播、远程教学等服务也在逐渐兴起。这些服务大多符合点对多点的模式,对信息安全性、有偿性、网络带宽提出了较高的要求。其中,IPTV在广域网大范围部署时,最佳的搭配技术就是组播。
组播的基本概念
组播组使用一个IP组播地址标识。任何用户主机(或其他接收设备),加入一个组播组,就成为了该组成员,可以识别并接收以该IP组播地址为目的地址的IP报文。以组播组地址为目的地址,发送IP报文的信源称为组播源。一个组播源可以同时向多个组播组发送数据,多个组播源可以同时向一个组播组发送报文。网络中支持组播功能的路由器称为“组播路由器”。和单播路由器一样,组播路由器的功能是寻址和转发。组播路由器通过组播路由协议发现和选择路由,最终形成组播路由表,对组播数据进行前转。熟悉组播的人都知道,使用组播就是“种植”和“维护”一棵或两棵树。组播树在组播路由器上最好的体现是组播路由表项(*,G)和(S,G)。组播中常见的就是源树和共享树。源树:以组播源为树根,组播路径为树枝,组成员为树叶的一棵树。一般源树就是一个组播源对应一个组播组,或者一个组播源对应多个组播组。共享树:以RP为树根,组播路径为树枝,组播源和组成员为树叶的一棵树。共享树实质维护了两棵树,首先是RP到多个负载均衡源的源树,然后就是RP到多个组的树,两棵树共享RP,所以简称为共享树。共享树模型中多个组播源对应到一个组播组,或者多个组播源对应到多个组播组,实现了组播源之间的负载和冗余。
IGMP协议是主机和路由器进行组播通信的语言,对应到OSI模型属于第三层协议,是我们所说的三层组播协议中的关键组件。IGMP作为组管理协议,本身存在协议的版本、实现机制和消息类型。IGMP作为主机和路由器交互的组管理协议,一旦主机和路由器之间运行了,那么它们之间的数据不再是像单播一样外部数据走网关。IGMP协议规定了组播的数据是不需要网关的,所以在配置组播应用时,VRRP对于组播的冗余性是没有帮助的。组播路由协议是组播路由器之间的组播通信语言。组播路由协议可以按照使用的范围大小划分为IGP和EGP,这也和单播路由协议一样。如我们常见的OSPF、ISIS、RIP等属于单播的IGP,PIM SM、PIM DM、MOSPF等属于组播的IGP,其中使用较为频繁的就是PIM的两种IGP协议。利用BGP丰富的路由属性和地址族,BGP不但作为单播的EGP协议,同时也使用在组播的环境当中,我们称之为MBGP。
PIM(Protocol Independent Multicast)是目前使用最广泛的组播路由协议, PIM称为协议无关组播。PIM是“拿来主义者”,PIM不自己去发现路由,而是使用现成的单播路由表中的路由条目,无论这些单播路由条目是哪种单播路由协议发现和传递的,这就是与协议无关的含义。PIM利用现有的单播路由信息,对组播报文执行RPF(Reverse Path Forwarding)检查,从而创建组播路由表项,构建组播分发树。PIM不维护专门的单播路由,也不依赖某具体的单播路由协议,它直接利用单播路由的结果。
RP (Rendezvous Point)是PIM SM中源树和共享树的汇聚点,是两棵树的总根。一般情况下全网设备对于RP地址的认识是一致的,否则两棵树无法汇聚,导致源发送的流量无法达到组。这里所说的RP地址仅仅是一个地址,并非同一台设备。有时候为了实现RP的路径择优和负载分担,会部署Anycast,这个时候多个路由器共享一个RP地址,通过单播路由的路径择优对RP进行负载。总之RP地址的配置对于PIM路由器来说是非常重要的。
通过配置组播路由协议,形成了一张组播路由表。组播路由表存放的空间和单播路由表是独立的。
三层组播技术运行在IP层或者之上,我们平时常见的基本上都是三层组播技术。三层组播技术组成员和组播路由器之间使用IGMP协议,组播路由器之间只用PIM等路由协议。
PIM SM组播模型
IPTV常见的PIM SM模型包括两个方面:组播路由收敛和组播数据转发。不管是单播还是组播路由器,基本功能就是寻址和转发。寻址就是查找路由表,明确下一条,形成数据转发表;转发就是依照转发表项进行数据投递。所有的前提就是“有表可查”,这就是组播路由表的收敛。
PIM-SM假设网络中的组成员分布非常稀疏,基于这一假设,PIM-SM的设计思路是:在网络中维护一台重要的PIM路由器:汇聚点RP,网络中所有PIM路由器都知道RP的位置,而RP不需要知道PIM路由器的位置。当网络中出现组成员(用户主机通过IGMP加入某组播组G)时,最后一条路由器向RP发送Join消息,逐跳创建(*,G)表项,生成以一棵以RP为根的RPT。当网络中出现活跃的组播源(信源向某组播组G发送第一个组播数据)时,第一跳路由器将组播数据封装在Register消息中单播发往RP,在RP上创建(S,G)表项,注册源信息。当网络中同时出现组成员和向该组发送数据的组播源时,以RP为中转站:组播数据先被封装在Register消息中发往RP,再沿RPT到达组成员。
组播的数据转发一直是从源到组进行发送,按照组播路由表中的OIL进行数据发送,按照IIL进行RPF检查。RPF基本的思想就是某一个组播数据进入本路由器的时候,本路由器执行RPF检查算法,查看这个数据包是否从IIL接口进入,若是从IIL接口进入则转发,否则丢弃该数据包。由于组播路由表是唯一的,那么某个数据包进入本路由器的端口也是唯一的,所以防止了一个数据包从A口接收,从B口发送,又从其它接口接收的问题,防止了组播环路。
组播在IPTV中的应用
中心节点为省内IPTV用户提供组播服务,对于省内用户来说,此时IPTV系统是全省的组播源。它规定和使用了与内容源厂商完全不同的一套组播地址,这样就隔离了省内组播用户直接向内容提供商请求流量的可能性。中心节点与骨干网的组播应用较引流相对简单,只需要打通中心节点和骨干网之间的组播通道,配置相应的RP地址和路由即可。具体组播用户请求如何到达中心节点,是骨干网考虑的事情,是IPTV系统管理范围之外的事情。
通过PIM SM组播模型的介绍,我们知道,组播源和RP之间通过单播信息进行通告,那么首先RP和组播源之间的双向路由必须是互通的,否则单播的数据无法实现双向交互。中心节点与骨干网组播配置遵循以下思路:1.配置去往骨干网的路由,通常是默认路由。2.若是冗余的S9300交换机,保证S9300之间的互联三层地址运行PIM SM。3.在去往骨干网的三层接口上运行PIM SM,确保PIM邻居关系建立。4.配置骨干网RP地址(注:此地址为该省骨干网管辖内的地址,通常和内容提供商的RP地址不一样)。
至此,IPTV系统内部的组播配置完毕。
(作者单位:江西省广播电视网络传输有限公司)