一种解决IGMPLeave报文丢失引起的组播业务异常的方法

文档序号:7627793阅读:1347来源:国知局
专利名称:一种解决IGMP Leave报文丢失引起的组播业务异常的方法
技术领域
本发明涉及因特网组管理协议(IGMP),特别涉及一种处理IGMPLeave报文丢失的方法。
背景技术
组播网络体系结构包括组播的基本工作原理、实现组播的条件、组播的地址分配方案及与媒质接入控制层(MAC)地址映射、因特网组管理协议(IGMP)。
其中组播的工作原理为组播是一种允许一个或多个发送者(组播源)发送单一的数据包到多个接收者(一次的、同时的)的网络技术。组播源把数据包发送到特定组播组,只有属于该组播组的地址才能接收到数据包。简单地说,主机通过使用因特网组管理协议加入组播组中并且可以动态离开组,即成员关系常有变化,路由器跟踪这种关系并试图形成一条到达组播成员的无回路路径。组播路由用于得到正在使用的组播组的路径上那些路由器,以及到达这些组播组的最佳路径信息。一旦报文到达目标子网(LAN),该报文就有可能泛洪或转发到主机。
IP网络的传输方式有三种,分别为单播(Unicast)传输、组播(Multicast)传输和广播(Broadcast)传输。单播传输在发送者和每一接收者之间需要单独的数据信道。如果一台主机同时给很少量的接收者传输数据,一般没有什么问题。但如果有大量主机希望获得数据包的同一份拷贝时却很难实现。这将导致发送者负担沉重、延迟长、网络拥塞。为保证一定的服务质量需增加硬件和带宽。组播传输提高了数据传送效率,减少了主干网出现拥塞的可能性。组播组中的主机可以是在同一个物理网络,也可以来自不同的物理网络。广播传输的工作方式为在IP子网内广播数据包,所有在子网内部的主机都将收到这些数据包。广播意味着网络向子网主机都投递一份数据包,不论这些主机是否乐于接收该数据包。广播的使用范围非常小,只在本地子网内有效,因为路由器会隔离广播通信。广播传输增加非接收者的开销。
实现IP组播的前提条件为组播源和接收者以及两者之间的下层网络都支持组播,即主机的传输层和网络层协议(TCP/IP)实现支持发送和接收IP组播;主机的网络接口支持组播;有一套用于加入、离开、查询的组管理协议,即IGMP(v1,v2);有一套IP地址分配策略,并能将第三层IP组播地址映射到第二层MAC地址;支持IP组播的应用软件;所有介于组播源和接收者之间的路由器、交换机均需支持组播。
组管理协议IGMP为用于主机和子网路由器之间通信,从而改变或查询主机与组播组关系的管理协议。IGMP实现的功能主要包括加入组播组、退出组播组和组成员查询。加入组播组的功能实现过程为当某个主机加入某一个组播组时,它通过“成员资格报告”消息通知它所在的IP子网的组播路由器,同时将自己的IP模块做相应的准备,以便开始接收来自该组播组传来的数据。如果这台主机是它所在的IP子网中第一台加入该组播组的主机,通过路由信息的交换,组播路由器加入组播分布树。加入之后,接收方主机的网络接口卡开始侦听与组播组地址相关的组播MAC地址,路由器把发送方的信息包一跳一跳地发送到有接受者的网段上去,局域网路由器根据信息包中的组地址转换成与之相关的MAC地址,接收方侦听到这个地址,收到信息包后,将IP层的组播数据包取出传向上层。退出组播组的功能实现过程在IGMP的不同版本中不同。在IGMP v1中,当主机离开某一个组播组时,它将自行退出。组播路由器定时使用“成员资格查询”消息向IP子网中的所有主机的组地址(224.0.0.1)查询,如果某一组播组在IP子网中已经没有任何成员,那么组播路由器在确认这一事件后,将不再在子网中转发该组播组的数据。与此同时,通过路由信息交换,从特定的组播组分布树中删除相应的组播路由器。这种不通知任何人而悄悄离开的方法,使得组播路由器知道IP子网中已经没有任何成员的事件延时了一段时间。在IGMP v2.0中,当每一个主机离开某一个组播组时,需要通知子网组播路由器,组播路由器立即向IP子网中的所有组播组询问,从而减少了系统处理停止组播的延时。组成员查询的功能是查询组中有哪些成员,可以包括通用组查询和特定组查询。所谓通用组查询就是查询所有的组成员,不管其具体属于哪个组。所谓特定组查询就是查询某个特定的组播组有哪些成员。
IPTV业务是组播网络的一个重要应用。对于IPTV业务,通常每个频道采用一个组播承载。当用户要收看某个频道时,用户终端就发出一个IGMP Join报文;网络设备收到IGMP Join报文后,则将用户加入对应的组播组,并向用户转发该组的报文。如果用户进行频道切换,则用户终端会发送一个IGMP Leave以离开当前的频道,然后发送一个IGMP Join以加入新的频道;网络设备收到IGMP Leave后,将用户从以前的组中删除,停止该组的组播转发;收到IGMP Join后,将用户加入新的组播组,并向用户转发该组的报文。当IGMP Leave报文丢失时引起网络组播异常,影响网络正常运行,因此需要对IGMP Leave报文丢失进行处理。目前处理IGMP Leave报文丢失的方法主要有如下两种方法一是不对IGMP Leave报文丢失作任何处理。以基于数字用户线接入复用器(DSLAM)的数字用户线(DSL)接入为例,如附图1所示在采用IGMP V2协议时,如果用户进行频道切换,用户终端(CPE)会发送IGMP Leave报文离开当前的频道(对应一个组播组),然后发送IGMP Join报文加入一个新频道(对应另外一个组播组)。在这个过程中,如果由于某种原因(例如线路干扰等原因),IGMP Leave报文丢失,DSLAM没有收到这个报文,这将导致DSLAM同时将新频道和老频道的内容转发到DSL端口,这可能会带来严重的问题1)流量可能超过DSL的线路带宽,这样将造成丢包,导致任何一个频道都无法收看;2)浪费了额外的带宽,挤占了其他业务带宽,可能导致其他业务,如数据业务(上网)没有足够的带宽;3)额外浪费了家庭网的的带宽,降低家庭网的性能及家庭网内终端的性能。方法一的缺点是不能解决IGMP Leave报文丢失的问题,如果IGMP Leave报文丢失将导致严重的问题。
方法二是对方法一的改进,但只解决了部分问题。仍以DSL接入为例,如附图2所示与方法一不同的是,DSLAM增加了组播连接允许控制(CAC)功能。该功能可以限制一个用户端口可同时加入的组播组的总带宽,或者限制一个用户端口可同时加入的组播组数量。这样当由于IGMP Leave报文丢失导致用户加入一个新组时,用户端口加入的组播组的总带宽将超过CAC规定的带宽(或者组播组数量将超过CAC规定的数量),这时CAC将拒绝新的组加入请求,以避免带宽或组播组数量超过限制。方法二的缺点是通过这种方法可以一定程度上解决IGMP Leave报文丢失导致的问题。但是因为CAC只是拒绝了用户终端新的组加入请求,这样将导致用户频道切换不成功,一个可能的结果是用户终端认为已经切换到频道B,但设备仍然发送频道A的组播流。这虽然可以一定程度解决带宽浪费问题,但仍会导致无法正常收看,用户体验差。

发明内容
本发明的目的是为克服已有技术的不足之处,提出一种处理IGMPLeave报文丢失的方法。通过该方法解决因IGMP Leave报文丢失引起的组播异常,例如IPTV应用中由于IGMP Leave报文丢失而导致的组播流丢包(无法正常收看)、频道切换不成功、线路带宽浪费、影响其他业务以及浪费家庭网带宽等问题,从而提供良好的用户体验。
本发明提出一种处理IGMP Leave报文丢失的方法,其特征在于,当网络设备发现某个用户和/或用户端口出现IGMP Leave报文丢失时,通过IGMP查询找出非该用户/用户端口从属的组播组,将该用户/用户端口从这些组播组中删除,管理设备停止异常组播的转发,使该用户/用户端口重新成为正常组播用户/用户端口。
所述的IGMP查询为网络设备向用户发送IGMP查询报文,该IGMP查询报文可以是针对当前所有组(可以包括或不包括新加入组)的一个或多个特定组查询报文,也可以是IGMP通用查询报文。所述的网络设备包括以下设备DSLAM、多业务接入节点(MSAN)、以太网交换机、路由器、无源光网络(PON)的光线路终端(OLT)、全球微波接入互操作性(WIMAX)的基站(BS)以及支持IGMP处理的各种家庭网络设备,包括调制解调器(Modem)、家庭网关、PON的光用户单元(ONU),WIMAX的用户站(SS)。
本发明可以特别应用于解决IPTV应用中由于IGMP Leave报文丢失引起的组播异常。当网络设备接纳到一个新的组播组加入请求时,如果发现用户/端口组播带宽或者用户/端口加入组播组数量超出限制,则网络设备通过发送IGMP查询报文,找出非该用户/用户端口从属的组播组,将用户和/或用户端口从该组中删除。经过上述处理,网络设备停止异常组的转发后,如果没有其它条件限制(如带宽等),则允许用户加入前述其请求加入的组播组。
本发明的良好效果该方法不对网络设备的组播协议栈做改动,基于已有的组播CAC处理机制和标准的IGMP协议,通过重新定义的组播处理流程,解决了IGMP Leave报文丢失可能导致的严重问题。通过该方法可以解决IPTV等应用中,由于IGMP Leave报文丢失而导致的丢包(无法正常收看)、频道切换不成功、线路带宽浪费影响其他业务、浪费家庭网带宽等问题,从而提供良好的用户体验。


图1是不对IGMP Leave报文丢失作任何处理的数字用户线(DSL)接入过程示意图。
图2是DSLAM增加了组播连接允许控制(CAC)功能的数字用户线(DSL)接入过程示意图。
图3是采用本发明方法通过IGMP查询解决数字用户线(DSL)接入中IGMP Leave报文丢失引起的组播异常过程示意图。
具体实施例方式
以DSLAM中的IGMP Leave报文丢失处理过程为例。DSLAM支持组播CAC功能该功能可以限制一个用户端口可同时加入的组播组的总带宽,或者限制一个用户端口可同时加入的组播组数量。参考附图3本实施例的实现过程如下所示1)用户正在收看频道A(对应组播组A),DSLAM将组播组A的流量发送给用户;2)用户切换频道,希望由频道A切换到频道B;3)用户终端发送IGMP Leave报文,离开组播组A,但该报文由于某种原因丢失,DSLAM没有收到;4)用户终端发送IGMP Join报文,加入组播组B;5)DSLAM收到该IGMP Join报文后,发现组播组A+组播组B+可能存在的其他组播组的带宽已经超出组播带宽限制,或者如果用户加入组播组B,则该用户同时加入的组播组数量将超出限制,DSLAM暂时不接纳该组加入请求;6)DSLAM发送IGMP查询报文给用户终端,该IGMP查询报文可以是对组播组A,以及其他可能存在的组播组,也可以包括组播组B的特定组查询报文,也可以是通用查询报文;7)用户终端收到查询报文后,通过IGMP Report进行响应;8)DSLAM根据终端的响应,发现该用户端口下没有组播组A的成员,则将该用户端口从组播组A中删除,停止向用户转发组播组A的流量;9)这时DSLAM有足够的组播带宽(或可允许同时访问的组播组),则接纳用户加入组播组B的请求,向用户发送组播组B的流量。
至此,一次频道切换规程完成,虽然IGMP Leave报文丢失,但仍然成功完成频道切换,而且没有造成带宽的浪费。终端用户不会感觉到这个过程,与正常频道切换体验没有区别,用户体验好。
权利要求
1.一种处理IGMP Leave报文丢失的方法,其特征在于当网络设备发现某个用户和/或用户端口出现IGMP Leave报文丢失时,通过IGMP查询找出非该用户/用户端口从属的组播组,将该用户/用户端口从这些组播组中删除,网络设备停止异常组播的转发,使该用户/用户端口重新成为正常组播用户/用户端口。
2.按照权利要求1所述的处理IGMP Leave报文丢失的方法,其特征在于网络设备向用户/用户端口发送IGMP查询报文。
3.按照权利要求1所述的处理IGMP Leave报文丢失的方法,其特征在于所述网络设备根据用户终端的响应判断是否有某个组播组中已没有成员,如果该组播组没有成员,则将该用户从该组播组中删除。
4.按照权利要求1所述的处理IGMP Leave报文丢失的方法,其特征在于所述网络设备停止异常组播的转发,重新计算用户的组播请求,如果没有超出组播带宽或者组播组数量限制,网络设备就接纳用户新请求的组播组,并向用户转发该组的流量。
5.按照权利要求2所述的处理IGMP Leave报文丢失的方法,其特征在于所述查询报文是针对当前所有组的一个或多个特定组查询报文。
6.按照权利要求2所述的处理IGMP Leave报文丢失的方法,其特征在于所述查询报文是IGMP通用查询报文。
7.一种解决IPTV应用中由于IGMP Leave报文丢失引起的组播异常的方法,使用如权利要求1-6任一项所述的方法解决IPTV应用中IGMP Leave报文丢失引起的组播异常。
8.实现如权利要求1所述方法的网络设备,包括数字用户线接入复用器DSLAM、多业务接入节点MSAN、以太网交换机、路由器、无源光网络PON的光线路终端OLT、全球微波接入互操作性WIMAX的基站BS以及支持IGMP处理的各种家庭网络设备,包括调制解调器Modem、家庭网关、PON的光用户单元ONU和WIMAX的用户站SS。
全文摘要
本发明涉及因特网组管理协议(IGMP),特别涉及一种处理IGMP Leave报文丢失的方法。该方法的特征在于,当网络设备发现某个用户和/或用户端口出现IGMP Leave报文丢失时,通过IGMP查询找出非该用户/用户端口从属的组播组,将该用户/用户端口从这些组播组中删除,停止异常组播的转发,使该用户/用户端口重新成为正常组播用户/用户端口。本发明不对网络设备的组播协议栈做改动,基于已有的组播CAC处理机制和标准的IGMP协议,通过重新定义的组播处理流程,解决了IGMP Leave报文丢失可能导致的严重问题。通过该方法可以解决IPTV等应用中,由于IGMP Leave报文丢失而导致的丢包(无法正常收看)、频道切换不成功、线路带宽浪费影响其他业务、浪费家庭网带宽等问题。
文档编号H04L29/06GK1852247SQ20051012398
公开日2006年10月25日 申请日期2005年11月25日 优先权日2005年11月25日
发明者李军, 魏家宏 申请人:华为技术有限公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1