发明内容
鉴于以上所述现有技术的缺点,本发明的目的在于提供一种SDN控制器及组播控制方法,解决现有技术中EPON网络对大量终端组播管理困难的问题。
为实现上述目标及其他相关目标,本发明提供一种SDN控制器,应用于包括OLT及相连ONU的PON网络中,所述ONU接入有用户端;所述SDN控制器接入有:对应各所述用户端预先设置有访问权限的应用程序;所述SDN控制器包括:组播控制模块,用于提供组播权限控制表;所述组播权限控制表包括:组播关键字段及对应所述访问权限的访问权限字段;流表生成模块,用于根据所述组播权限控制表生成:包含对应所述组播关键字段的匹配字段、以及对应所述访问权限字段的动作类型的流表,并发送至所述OLT以告知各所述用户端对各应用的访问权限及对应动作。
可选的,所述组播关键字段包括:组播IP地址字段、源IP地址字段和用户标识字段;所述匹配字段对应包括:用于匹配报文组播IP地址的匹配字段、用于匹配报文源IP地址的匹配字段、及用于匹配用户标识的匹配字段。
可选的,所述匹配字段还包括:支持设备标准字段和组播可控功能开关状态字段。
可选的,访问权限包括:允许、禁止、及预览;所述动作包括:对应权限为允许的用户端访问的动作、对应权限为禁止的用户端访问的动作、及对应权限为预览的用户端访问的动作。
可选的,所述预览对应有预览控制参数;所述预览控制参数包括:时长参数、预览次数参数、及预览间隔时长参数中的一种或多种组合;所述SDN控制器通过启用定时器和/或计数器来实现:通过预览控制参数来控制用户端以预览方式访问所述应用程序。
为实现上述目标及其他相关目标,本发明提供一种组播控制方法,应用于包括OLT及相连ONU的PON网络中,所述ONU接入有用户端;对应各所述用户端预先设置有访问权限的应用程序;所述方法包括:提供组播权限控制表;所述组播权限控制表包括:组播关键字段及对应所述访问权限的访问权限字段;根据所述组播权限控制表生成:包含对应所述组播关键字段的匹配字段、以及对应所述访问权限字段的动作类型的流表,并发送至所述OLT以告知各所述用户端对各应用的访问权限及对应动作。
可选的,所述组播关键字段包括:组播IP地址字段、源IP地址字段和用户标识字段;所述匹配字段对应包括:用于匹配报文组播IP地址的匹配字段、用于匹配报文源IP地址的匹配字段、及用于匹配用户标识的匹配字段。
可选的,所述匹配字段还包括:支持设备标准字段和组播可控功能开关状态字段。
可选的,访问权限包括:允许、禁止、及预览;所述动作包括:对应权限为允许的用户端访问的动作、对应权限为禁止的用户端访问的动作、及对应权限为预览的用户端访问的动作。
可选的,所述预览对应有预览控制参数;所述预览控制参数包括:时长参数、预览次数参数、及预览间隔时长参数中的一种或多种组合;所述SDN控制器通过启用定时器和/或计数器来实现:通过预览控制参数来控制用户端以预览方式访问所述应用程序。
如上所述,本发明提供一种SDN控制器及组播控制方法,应用于包括OLT及相连ONU的PON网络中,所述ONU接入有用户端;对应各所述用户端预先设置有访问权限的应用程序;本发明提供组播权限控制表;所述组播权限控制表包括:组播关键字段及对应所述访问权限的访问权限字段;根据所述组播权限控制表生成:包含对应所述组播关键字段的匹配字段、以及对应所述访问权限字段的动作类型的流表,并发送至所述OLT以告知各所述用户端对各应用的访问权限及对应动作;本发明将OLT原有的可控组播功能迁移到SDN控制器侧,并扩充了Openflow的流表,整个PON系统可控组播的配置比较统一和简单,而且性能得到极大地提高。
具体实施方式
以下通过特定的具体实例说明本发明的实施方式,本领域技术人员可由本说明书所揭露的内容轻易地了解本发明的其他优点与功效。本发明还可以通过另外不同的具体实施方式加以实施或应用,本说明书中的各项细节也可以基于不同观点与应用,在没有背离本发明的精神下进行各种修饰或改变。需说明的是,在不冲突的情况下,本申请中的实施例及实施例中的特征可以相互组合。
如图1所示,本发明提供一种SDN控制器,应用于包括OLT及相连ONU(OpticalNetwork Unit,光网络终端)的PON网络中,所述ONU接入有用户端,例如机顶盒或其他用户设备;所述SDN控制器接入有:对应各所述用户端预先设置有访问权限的应用程序,所述SDN控制器用于控制组播,所谓组播,就是加入了同一个组的主机可以接收到此组内的所有数据,网络中的交换机和路由器只向有需求者复制并转发其所需数据。主机可以向路由器请求加入或退出某个组,网络中的路由器和交换机有选择的复制并传输数据,即只将组内数据传输给那些加入组的主机。这样既能一次将数据传输给多个有需要(加入组)的主机,又能保证不影响其他不需要(未加入组)的主机的其他通讯;组播解决了单播和广播方式效率低的问题。当网络中的某些用户需求特定信息时,组播源(即组播信息发送者)仅发送一次信息,组播路由器借助组播路由协议为组播数据包建立树型路由,被传递的信息在尽可能远的分叉路口才开始复制和分发。
在一实施例中,所述SDN控制器包括:组播控制模块及流表生成模块。
所述组播控制模块,用于提供组播权限控制表;所述组播权限控制表包括:组播关键字段及对应所述访问权限的访问权限字段。在一实施例中,所述组播权限控制表即作为控制组播权限的依据,其所包含内容例如下表所示:
需说明的是,在上述实施例中,仅选用IPv4作为例举,在其他实施例中,还可应用IPv6,并非以上述为限。
所述流表生成模块,用于根据所述组播权限控制表生成:包含对应所述组播关键字段的匹配字段、以及对应所述访问权限字段的动作类型的流表,并发送至所述OLT以告知各所述用户端对各应用的访问权限及对应动作。
具体的,在一实施例中,所述流表即Openflow流表,包含多个流表项,每条流表项均包含:匹配域、计数器及对应动作(Action)类型,根据匹配域的匹配情况执行对应动作,此为现有技术,不多作赘述;本发明的所述流表相比现有的流表进行了字段扩展,从而匹配报文中组播IPv4地址字段、源IP地址字段和用户标识字段,然后执行与用户的频道访问权限相关的动作,从而实现可控组播的功能;并且,优选的,所述匹配字段还可包括:支持设备标准字段和组播可控功能开关状态字段,所述支持设备标准例如中国电信EPON设备标准等各种标准。
举例来说,所述流表可增加5个匹配字段,如下表所示:
在一实施例中,所述访问权限例如包括:允许、禁止、及预览;所述动作包括:对应权限为允许的用户端访问的动作、对应权限为禁止的用户端访问的动作、及对应权限为预览的用户端访问的动作,如下表的例子所示,对应允许、禁止、预览增加三个新的流表的动作(Action)类型,在一实施例中,所述预览对应有预览控制参数;所述预览控制参数包括:时长参数、预览次数参数、及预览间隔时长参数中的一种或多种组合;所述SDN控制器通过启用定时器和/或计数器来实现:通过预览控制参数来控制用户端以预览方式访问所述应用程序。
所述流表增加的动作类型具体内容可例如下表所示:
在上述实施例中,通过SDN控制器下发扩展流表项的流表至OLT,执行与用户对应用(例如频道)访问权限相关的动作;仅将OLT和与之相连的远端节点(例如:ONU)变成只保留数据面的简单设备,实现组播流转发;将这些节点的可控组播控制面上移到控制器。控制器通过扩展的Openflow流表,告知OLT具体的用户频道访问权限,从而满足通信运营商例如中国电信EPON设备的可控组播标准。
如图2所示,本发明提供一种组播控制方法,应用于包括OLT及相连ONU的PON网络中,所述ONU接入有用户端;对应各所述用户端预先设置有访问权限的应用程序;所述方法的技术原理及部分技术细节与上述SDN控制器实施例相类似,因此以下不再对重复的技术细节再作赘述:
所述方法包括:
步骤S101:提供组播权限控制表;所述组播权限控制表包括:组播关键字段及对应所述访问权限的访问权限字段;
步骤S102:根据所述组播权限控制表生成:包含对应所述组播关键字段的匹配字段、以及对应所述访问权限字段的动作类型的流表,并发送至所述OLT以告知各所述用户端对各应用的访问权限及对应动作。
在一实施例中,所述组播关键字段包括:组播IP地址字段、源IP地址字段和用户标识字段;所述匹配字段对应包括:用于匹配报文组播IP地址的匹配字段、用于匹配报文源IP地址的匹配字段、及用于匹配用户标识的匹配字段。
在一实施例中,所述匹配字段还包括:支持设备标准字段和组播可控功能开关状态字段。
在一实施例中,访问权限包括:允许、禁止、及预览;所述动作包括:对应权限为允许的用户端访问的动作、对应权限为禁止的用户端访问的动作、及对应权限为预览的用户端访问的动作。
在一实施例中,所述预览对应有预览控制参数;所述预览控制参数包括:时长参数、预览次数参数、及预览间隔时长参数中的一种或多种组合;所述SDN控制器通过启用定时器和/或计数器来实现:通过预览控制参数来控制用户端以预览方式访问所述应用程序。
结合上述原理及实施例,以下再以多个实施例来说明应用本发明的具体网络业务运作过程:
如图3所示,显示基于SDN用户访问权限为″允许″时组播业务流程的实施例。
步骤S201:北向应用程序的软件程序调用Restful API告知SDN控制器,设置例如组播IP地址为A且用户标识为B的用户应用程序(例如频道)访问权限为″允许″;
步骤S202:SDN控制器将会处理相应的逻辑,通过南向接口下发多级流表到指定的OLT;
步骤S203:当用户端(如机顶盒)申请特定组播频道(例如,IP地址为A)业务时,它会向上行发送IGMP Report报文;
步骤S204:ONU接收到上行的IGMP Report报文后,打上标识端口的VLAN tag;例如,该VLAN Tag的TPID值为0x8100,CFI值为0,Pri值为0,VID的值为接收到该IGMP控制报文的以太网UNI端口的端口号;
步骤S205:OLT接收到IGMP Report报文后,根据端口(用户)标识、该Report报文的组播IP地址以及源IP地址(仅用于IGMPV3,可选)查询流表,获得该端口(用户)对该频道的访问权限为″允许″;当该端口(用户)对该频道的访问权限为“允许”时,OLT通过一个扩展的组播控制OAM报文通知ONU增加一个组播转发表项;
优选的,OLT还判断用户端是否为第一次加入OLT;若是,则进行步骤S206;
步骤S206:组播服务器向OLT转发该频道的组播业务流;如果此时该频道的组播业务流尚未推送到OLT的上联口(也就是OLT下尚无用户观看该频道节目),则OLT以IGMPProxy或IGMP Snooping的方式通过MVR(跨VLAN注册)机制将IGMP加入消息向组播VLAN的源端口转发以向组播路由器(或IP MAN的边缘路由器)申请该组播业务流,并建立相应的组播转发表项;
步骤S207:该频道的组播业务流由组播路由器(或边缘路由器)发送到OLT的上联板;
步骤S208:OLT将其转发到该用户所在的PON接口(在这个过程中可能伴随着打组播VLAN tag的操作或者组播VLAN转换),并将其映射到广播LLID发送给该PON接口上的所有ONU;
步骤S209:ONU根据其接收到的组播控制OAM报文建立本地组播转发表,并根据这个表的表项将接收到该频道的组播数据业务流转发到相应的用户端口,并执行对组播数据报文的剥除tag操作。
再如图4所示,显示基于SDN用户访问权限为″禁止″时组播业务流程的实施例。
步骤S301:北向应用调用RestfulAPI告知SDN控制器,设置组播IP地址为A,用户标识为B的用户频道访问权限为″禁止″;
步骤S302:SDN控制器将会处理相应的逻辑,通过南向接口下发多级流表到指定的OLT;
步骤S303:当组播的用户端(如机顶盒)申请特定组播频道(例如,IP地址为A)业务时,它会向上行发送IGMP Report报文;
步骤S304:ONU接收到上行的IGMP Report报文后,打上标识端口的VLAN tag。该VLAN Tag的TPID值为0x8100,CFI值为0,Pri值为0,VID的值为接收到该IGMP控制报文的以太网UNI端口的端口号;
步骤S305:OLT接收到IGMP Report报文后,根据端口(用户)标识、该Report报文的组播IP地址以及源IP地址(仅用于IGMPV3,可选)查询流表,获得该端口(用户)对该频道的访问权限为″禁止″,OLT不做任何其它操作,ONU也不做任何操作。当用户端(如机顶盒)在一定时间内没有收到任何IGMP消息和组播业务流时,会结束对该频道的申请;当然,在其他实施例中也可以告知ONU其权限为“禁止”因此无法申请该频道的情况。
再如图5所示,显示基于SDN用户访问权限为″禁止″时组播业务流程的实施例。
步骤S401:北向应用调用Restful API告知控制器,设置组播IP地址为A,用户标识为B的用户频道访问权限为″预览″;
步骤S402:控制器的可控组播模块将会处理相应的逻辑,通过南向接口下发多级流表到指定的OLT;
步骤S403:当用户端(如机顶盒)申请特定组播频道(例如,IP地址为A)业务时,它会向上行发送IGMP Report报文;
步骤S404:ONU接收到上行的IGMP Report报文后,打上标识端口的VLAN tag。该VLAN Tag的TPID值为0x8100,CFI值为0,Pri值为0,VID的值为接收到该IGMP控制报文的以太网UNI端口的端口号;
步骤S405:OLT接收到IGMP Report报文后,根据端口(用户)标识、该Report报文的组播IP地址以及源IP地址(仅用于IGMPV3,可选)查询流表,获得该端口(用户)对该频道的访问权限为″预览″;
OLT通过一个扩展的组播控制OAM报文通知ONU增加一个(临时的)组播转发表项。OLT或者通过MVR机制向组播服务器(或边缘路由器)申请该组播业务流(该频道的组播业务流尚未推送到OLT的上联口)并将该组播业务流映射到广播LLID传送到该用户所连接的ONU,或者直接将已经申请下来的组播业务流从OLT的上联口转发到该用户所在的PON接口(该频道的组播业务流已推送到OLT的上联口但尚未推送到该用户所在PON接口)并将该组播业务流映射到广播LLID传送到该用户所连接的ONU,或者直接将该频道的组播业务流映射到广播LLID传送到该用户所连接的ONU(该频道的组播业务流已经推送到该用户所在的PON接口);
同时OLT启动一个定时器和/或计数器,用于控制用户的预览时长、预览次数、预览间隔时长等参数。定时器的超时时间TPreview值和计数器的溢出值可配置;
优选的,OLT还判断用户端是否为第一次加入OLT;若是,则进行步骤S406;
步骤S406:组播服务器向OLT转发该频道的组播业务流;如果此时该频道的组播业务流尚未推送到OLT的上联口(也就是OLT下尚无用户观看该频道节目),则OLT以IGMPProxy或IGMP Snooping的方式通过MVR(跨VLAN注册)机制将IGMP加入消息向组播VLAN的源端口转发以向组播路由器(或IP MAN的边缘路由器)申请该组播业务流,并建立相应的组播转发表项;
步骤S407:该频道的组播业务流由组播路由器(或边缘路由器)发送到OLT的上联板;
步骤S408:OLT将其转发到该用户所在的PON接口(在这个过程中可能伴随着打组播VLAN tag的操作或者组播VLAN转换),并将其映射到广播LLID发送给该PON接口上的所有ONU;
步骤S409:ONU按照OLT所下发的组播转发表项将从OLT推送来的组播业务流转发到相应的用户接口,并执行去tag操作;
优选的,如图所示,还包括:
步骤S410:当OLT的对应用户预览的定时器和/或计数器超时或超数后,OLT立即通过一个扩展的组播控制OAM报文通知ONU删除原组播转发表项并将定时器和/或计数器复位,并告知用户端;
步骤S411:根据是否有同一个PON内其他用户申请了该组播业务流(即是否是最后一个用户);
步骤S412:若是,则通知组播路由,且OLT停止向该PON接口转发该组播业务流;
步骤S413:组播路由给予OLT反馈报文。
如图6所示,再结合网络结构简单说明本发明的应用原理。
在此实施例中,北向应用发起设置用户A频道访问权限为“允许”,用户B频道访问权限为“禁止”,用户C频道访问权限为“预览”;控制器向OLT下流表;当用户A申请特定组的时候,该频道的组播数据业务流将转发到相应的用户端口;当用户B申请特定组的时候,将会禁止对该频道的申请;当用户C申请特定组的时候,将会根据预览时长,预览次数,预览间隔时长等参数去申请该频道。
综上所述,本发明提供一种SDN控制器及组播控制方法,应用于包括OLT及相连ONU的PON网络中,所述ONU接入有用户端;对应各所述用户端预先设置有访问权限的应用程序;本发明提供组播权限控制表;所述组播权限控制表包括:组播关键字段及对应所述访问权限的访问权限字段;根据所述组播权限控制表生成:包含对应所述组播关键字段的匹配字段、以及对应所述访问权限字段的动作类型的流表,并发送至所述OLT以告知各所述用户端对各应用的访问权限及对应动作;本发明将OLT原有的可控组播功能迁移到SDN控制器侧,并扩充了Openflow的流表,整个PON系统可控组播的配置比较统一和简单,而且性能得到极大地提高。
上述实施例仅例示性说明本发明的原理及其功效,而非用于限制本发明。任何熟悉此技术的人士皆可在不违背本发明的精神及范畴下,对上述实施例进行修饰或改变。因此,举凡所属技术领域中具有通常知识者在未脱离本发明所揭示的精神与技术思想下所完成的一切等效修饰或改变,仍应由本发明的权利要求所涵盖。