发明内容
本发明提供一种频道切换方法和设备,以减少频道切换时间。
为了达到上述目的,本发明实施例提供一种频道切换方法,该方法包括以下步骤:
接入层交换机确定待切换频道;
所述接入层交换机向上游设备发送携带所述待切换频道信息的互联网组管理协议IGMP加入报文,且所述IGMP加入报文用于使上游设备将所述待切换频道对应的组播数据发送给所述接入层交换机;
在有客户端切换到所述待切换频道之前,所述接入层交换机在收到所述待切换频道对应的组播数据后,丢弃所述待切换频道对应的组播数据;
在有客户端切换到所述待切换频道之后,所述接入层交换机在收到所述待切换频道对应的组播数据后,将所述待切换频道对应的组播数据发送给所述客户端。
所述接入层交换机确定待切换频道的过程,进一步包括:
所述接入层交换机在收到来自客户端的携带了所述客户端当前点播频道的IGMP Report报文后,确定所述当前点播频道对应的可能切换频道,并在频道管理表中记录所述当前点播频道与可能切换频道之间的对应关系;
所述接入层交换机周期性查询所述频道管理表,获得记录的所有可能切换频道以及所有当前点播频道,并确定所述待切换频道为所有可能切换频道中除了当前点播频道之外的其它频道。
所述接入层交换机在频道管理表中记录所述当前点播频道与可能切换频道之间的对应关系,之后还包括:
所述接入层交换机在收到来自所述客户端的携带了所述客户端当前点播频道的IGMP leave报文后,在所述频道管理表中删除所述客户端的当前点播频道与可能切换频道之间的对应关系。
所述方法进一步包括:在有客户端切换到所述待切换频道之前,所述接入层交换机设置所述待切换频道的出端口为空;在收到所述待切换频道对应的组播数据后,如果查询到所述待切换频道的出端口为空,则丢弃所述待切换频道对应的组播数据;
在有客户端切换到所述待切换频道之后,所述接入层交换机设置所述待切换频道的出端口为所述客户端对应的出端口;在收到所述待切换频道对应的组播数据后,如果查询到所述待切换频道的出端口为所述客户端对应的出端口,则通过所述客户端对应的出端口将所述待切换频道对应的组播数据发送给所述客户端;
或者,
在有客户端切换到所述待切换频道之前,所述接入层交换机设置所述待切换频道的出端口为可能切换到所述待切换频道的客户端对应的出端口,并标记该客户端对应的出端口为不发送组播数据;在收到所述待切换频道对应的组播数据后,如果查询到所述待切换频道的出端口具有不发送组播数据的标记,则丢弃所述待切换频道对应的组播数据;
在所述可能切换到待切换频道的客户端切换到所述待切换频道之后,所述接入层交换机清除该客户端对应的出端口具有的不发送组播数据的标记;在收到所述待切换频道对应的组播数据后,如果查询到所述待切换频道的出端口为客户端对应的出端口,则通过所述客户端对应的出端口将所述待切换频道对应的组播数据发送给所述客户端。
在交互式网络电视IPTV网络中,所述上游设备包括汇聚层交换机,且所述IPTV网络中还包括频道服务器和核心路由器,且所述IPTV网络中的客户端包括机顶盒;
所述接入层交换机向上游设备发送携带所述待切换频道信息的互联网组管理协议IGMP加入报文的过程,进一步包括:
所述接入层交换机向所述汇聚层交换机发送所述IGMP加入报文,由所述汇聚层交换机向所述核心路由器发送携带所述待切换频道信息的协议无关组播PIM加入报文,且所述核心路由器上具有所述频道服务器提供的所述待切换频道对应的组播数据;
所述接入层交换机接收来自所述汇聚层交换机的所述待切换频道对应的组播数据,且所述待切换频道对应的组播数据为所述核心路由器在收到所述PIM加入报文后,发送给所述汇聚层交换机的。
本发明实施例提供一种接入层交换机,该接入层交换机包括:
确定模块,用于确定待切换频道;
发送模块,用于向上游设备发送携带所述待切换频道信息的互联网组管理协议IGMP加入报文,且所述IGMP加入报文用于使上游设备将所述待切换频道对应的组播数据发送给本设备;
处理模块,用于在有客户端切换到所述待切换频道之前,在收到所述待切换频道对应的组播数据后,丢弃所述待切换频道对应的组播数据;在有客户端切换到所述待切换频道之后,在收到所述待切换频道对应的组播数据后,将所述待切换频道对应的组播数据发送给所述客户端。
所述确定模块,具体用于在收到来自客户端的携带了所述客户端当前点播频道的IGMP Report报文后,确定所述当前点播频道对应的可能切换频道,并在频道管理表中记录所述当前点播频道与可能切换频道之间的对应关系;
通过周期性查询所述频道管理表,获得记录的所有可能切换频道以及所有当前点播频道,并确定所述待切换频道为所有可能切换频道中除了当前点播频道之外的其它频道。
所述确定模块,进一步用于在收到来自所述客户端的携带了所述客户端当前点播频道的IGMP leave报文后,在所述频道管理表中删除所述客户端的当前点播频道与可能切换频道之间的对应关系。
所述处理模块,进一步用于在有客户端切换到所述待切换频道前,设置所述待切换频道的出端口为空;在收到所述待切换频道对应的组播数据后,如果查询到所述待切换频道的出端口为空,丢弃所述待切换频道对应的组播数据;在有客户端切换到所述待切换频道后,设置所述待切换频道的出端口为所述客户端对应的出端口;在收到所述待切换频道对应的组播数据后,如果查询到所述待切换频道的出端口为所述客户端对应的出端口,通过所述客户端对应的出端口将所述待切换频道对应的组播数据发送给所述客户端;
或者,
在有客户端切换到所述待切换频道之前,设置所述待切换频道的出端口为可能切换到所述待切换频道的客户端对应的出端口,并标记该客户端对应的出端口为不发送组播数据;在收到所述待切换频道对应的组播数据后,如果查询到所述待切换频道的出端口具有不发送组播数据的标记,则丢弃所述待切换频道对应的组播数据;在所述可能切换到待切换频道的客户端切换到所述待切换频道之后,清除该客户端对应的出端口具有的不发送组播数据的标记;在收到所述待切换频道对应的组播数据后,如果查询到所述待切换频道的出端口为客户端对应的出端口,则通过所述客户端对应的出端口将所述待切换频道对应的组播数据发送给所述客户端。
在交互式网络电视IPTV网络中,所述上游设备包括汇聚层交换机,且所述IPTV网络中还包括频道服务器和核心路由器,且所述IPTV网络中的客户端包括机顶盒;
所述发送模块,进一步用于向所述汇聚层交换机发送所述IGMP加入报文,由所述汇聚层交换机向所述核心路由器发送携带所述待切换频道信息的协议无关组播PIM加入报文,且所述核心路由器上具有所述频道服务器提供的所述待切换频道对应的组播数据;以及,接收来自所述汇聚层交换机的所述待切换频道对应的组播数据,且所述待切换频道对应的组播数据为所述核心路由器在收到所述PIM加入报文后,发送给所述汇聚层交换机的。
与现有技术相比,本发明实施例至少具有以下优点:本发明实施例中,接入层交换机通过确定待切换频道,并在客户端(如机顶盒)切换到待切换频道之前,将待切换频道的组播数据引入到本地,在客户端切换到待切换频道之后,接入层交换机可以直接将组播数据发送给客户端,从而减少了频道切换时间,并提升了频道切换性能。
具体实施方式
下面结合附图对本发明实施例进行详细描述。
本发明实施例提出一种频道切换方法,该方法可以应用于IPTV网络中,以图1为本发明实施例的应用场景示意图,该IPTV网络中包括:频道服务器S1:用于提供和管理频道的组播数据;核心路由器C1:运行组播PIM协议,作为IPTV网络中RP;汇聚层交换机B1:运行组播PIM协议和IGMP协议;接入层交换机A1、A2、A3:运行IGMP-snooping协议;机顶盒R1、R2:运行IGMP协议的客户端。如图2所示,该频道切换方法包括以下步骤:
步骤201,接入层交换机确定待切换频道。
本发明实施例中,接入层交换机确定待切换频道的过程,进一步包括:
步骤A、接入层交换机接收来自客户端(其包括但不限于机顶盒)的IGMP Report(公布)报文,该IGMP Report报文中携带了客户端的当前点播频道(如组播组地址224.1.1.1);具体的,客户端在接受当前点播频道时,会向接入层交换机发送IGMP Report报文,且接入层交换机上通过使能IGMP-snooping协议,可以接收并解析来自客户端的IGMP Report报文;在客户端的当前点播频道之外,IGMP Report报文中还可以携带客户端的VLAN(Virtual Local Area Network,虚拟局域网)信息(如VLAN 2)以及端口信息(如Eth1/2)。
步骤B、接入层交换机在收到来自客户端的IGMP Report报文之后,确定当前点播频道(IGMP Report报文中携带)对应的可能切换频道。
本发明实施例中,由于用户在切换频道时常用的是向上按键和向下按键,因此可能切换频道(即客户端较大概率的下一个点播频道)为当前点播频道的上一频道和下一频道;基于客户端的频道信息,在获知当前点播频道之后,接入层交换机可获知当前点播频道的上一频道和下一频道,并确定可能切换频道为当前点播频道的上一频道和下一频道。例如,当前点播频道为224.1.1.1时,当前点播频道的上一频道为224.1.1.0,当前点播频道的下一频道为224.1.1.2,即当前点播频道对应的可能切换频道为224.1.1.0和224.1.1.2。
步骤C、接入层交换机在频道管理表中记录当前点播频道与可能切换频道之间的对应关系;如表1所示,为频道管理表的一种示例情况。
表1
在具体实现过程中,该频道管理表中还可以对应有VLAN信息和端口信息,如表2所示,为频道管理表的另一种示例情况。
表2
步骤D、接入层交换机周期性(预设周期可以根据实际经验选择)查询频道管理表,获得记录的所有可能切换频道以及所有当前点播频道。
本发明实施例中,接入层交换机上可以新起一个任务模块Send(此任务优先级可以设置为较低),该任务模块用于周期性查询频道管理表,以获得当前周期下所有可能切换频道以及所有当前点播频道。
假设当前周期查询到的频道管理表如表3所示,则可以获得所有可能切换频道为224.1.1.0、224.1.1.1、224.1.1.2、224.1.1.3和224.1.1.5,并获得所有当前点播频道为224.1.1.1、224.1.1.2和224.1.1.4。
表3
步骤E、接入层交换机确定待切换频道为所有可能切换频道中除了所有当前点播频道之外的其它频道。例如,所有可能切换频道为224.1.1.0、224.1.1.1、224.1.1.2、224.1.1.3和224.1.1.5,所有当前点播频道为224.1.1.1、224.1.1.2和224.1.1.4,所有可能切换频道中除了当前点播频道外的其它频道为224.1.1.0、224.1.1.3和224.1.1.5,即待切换频道为224.1.1.0、224.1.1.3和224.1.1.5。
本发明实施例中,接入层交换机在频道管理表中记录了当前点播频道与可能切换频道之间的对应关系后,如果接入层交换机收到来自客户端的携带了客户端当前点播频道的IGMP leave报文,则接入层交换机还可以在频道管理表中删除客户端的当前点播频道与可能切换频道之间的对应关系。
步骤202,接入层交换机向上游设备发送携带待切换频道信息的IGMP加入报文,且IGMP加入报文用于使上游设备将待切换频道对应的组播数据发送给接入层交换机。例如,当待切换频道为224.1.1.0时,接入层交换机需要向上游设备发送携带224.1.1.0的IGMP加入报文,该IGMP加入报文用于使上游设备将224.1.1.0的组播数据发送给接入层交换机。
本发明实施例提供的技术方案可以应用在IPTV网络中,在该IPTV网络中的上游设备包括汇聚层交换机,且该IPTV网络中还可以包括频道服务器和核心路由器,且该IPTV网络中的客户端包括但不限于机顶盒。
针对上述应用场景,接入层交换机需要将携带待切换频道信息的IGMP加入报文发送给汇聚层交换机;汇聚层交换机在收到携带待切换频道信息的IGMP加入报文后,汇聚层交换机需要将IGMP加入报文转换为携带待切换频道信息的PIM加入报文,并向核心路由器发送携带待切换频道信息的PIM加入报文;由于核心路由器作为RP会收到来自频道服务器(作为组播源身份)的待切换频道对应的组播数据,即具有频道服务器提供的待切换频道对应的组播数据,因此核心路由器在收到携带待切换频道信息的PIM加入报文后,会将待切换频道对应的组播数据发送给汇聚层交换机;汇聚层交换机在收到待切换频道对应的组播数据之后,可以将待切换频道对应的组播数据发送给接入层交换机,由接入层交换机接收待切换频道对应的组播数据。
步骤203,接入层交换机接收来自汇聚层交换机的待切换频道对应的组播数据;在有客户端切换到待切换频道之前,在收到待切换频道对应的组播数据后,需要丢弃待切换频道对应的组播数据;在有客户端切换到待切换频道之后,在收到待切换频道对应的组播数据后,将待切换频道对应的组播数据发送给客户端(即切换到待切换频道的客户端)。
为了实现上述过程,本发明实施例中可以采用的方式包括但不限于:
方式一、在有客户端切换到待切换频道之前,接入层交换机设置待切换频道的出端口为空(即NULL);在收到待切换频道对应的组播数据后,如果查询到待切换频道的出端口为空,则丢弃待切换频道对应的组播数据。
在有客户端切换到待切换频道之后,接入层交换机设置待切换频道的出端口为客户端(即切换到待切换频道的客户端)对应的出端口;在收到待切换频道对应的组播数据后,如果查询到待切换频道的出端口为客户端对应的出端口,则通过该出端口将待切换频道对应的组播数据发送给客户端。
方式二、在有客户端切换到待切换频道之前,接入层交换机设置待切换频道的出端口为可能切换到待切换频道的客户端(即可能切换频道为该待切换频道的客户端)对应的出端口,并标记该出端口为不发送组播数据;在收到待切换频道对应的组播数据后,如果查询到待切换频道的出端口具有不发送组播数据的标记,则丢弃待切换频道对应的组播数据。
在可能切换到待切换频道的客户端切换到待切换频道之后,接入层交换机清除该客户端对应的出端口具有的不发送组播数据的标记;在收到待切换频道对应的组播数据后,如果查询到待切换频道的出端口为客户端对应的出端口,则通过该出端口将待切换频道对应的组播数据发送给相应的客户端。
例如,基于表3的内容,当待切换频道为224.1.1.0时,接入层交换机可以设置224.1.1.0的出端口为Eth1/2,并标记Eth1/2为不发送组播数据;在有客户端切换到224.1.1.0之前,如果收到224.1.1.0的组播数据,由于Eth1/2具有不发送组播数据的标记,因此丢弃224.1.1.0的组播数据;在Eth1/2对应的客户端切换到224.1.1.0之后,清除Eth1/2具有的不发送组播数据的标记,如果收到224.1.1.0的组播数据,则通过Eth1/2发送224.1.1.0的组播数据。
综上所述,本发明实施例提供的技术方案中,可以极大的优化IPTV网络的频道切换时间;以600个频道计算,通过数据分析测试,对于频道切换时间,采用本发明实施例提供的技术方案可以比现有技术中减少250ms。
基于与上述方法同样的发明构思,本发明实施例还提出了一种接入层交换机,如图3所示,该接入层交换机包括:
确定模块11,用于确定待切换频道;
发送模块12,用于向上游设备发送携带所述待切换频道信息的互联网组管理协议IGMP加入报文,且所述IGMP加入报文用于使上游设备将所述待切换频道对应的组播数据发送给本设备;
处理模块13,用于在有客户端切换到所述待切换频道之前,在收到所述待切换频道对应的组播数据后,丢弃所述待切换频道对应的组播数据;在有客户端切换到所述待切换频道之后,在收到所述待切换频道对应的组播数据后,将所述待切换频道对应的组播数据发送给所述客户端。
所述确定模块11,具体用于在收到来自客户端的携带了所述客户端当前点播频道的IGMP Report报文后,确定所述当前点播频道对应的可能切换频道,并在频道管理表中记录所述当前点播频道与可能切换频道之间的对应关系;通过周期性查询所述频道管理表,获得记录的所有可能切换频道以及所有当前点播频道,并确定所述待切换频道为所有可能切换频道中除了当前点播频道之外的其它频道。
所述确定模块11,进一步用于在收到来自所述客户端的携带了所述客户端当前点播频道的IGMP leave报文后,在所述频道管理表中删除所述客户端的当前点播频道与可能切换频道之间的对应关系。
所述处理模块13,进一步用于在有客户端切换到所述待切换频道前,设置所述待切换频道的出端口为空;在收到所述待切换频道对应的组播数据后,如果查询到所述待切换频道的出端口为空,丢弃所述待切换频道对应的组播数据;在有客户端切换到所述待切换频道后,设置所述待切换频道的出端口为所述客户端对应的出端口;在收到所述待切换频道对应的组播数据后,如果查询到所述待切换频道的出端口为所述客户端对应的出端口,通过所述客户端对应的出端口将所述待切换频道对应的组播数据发送给所述客户端;
或者,
在有客户端切换到所述待切换频道之前,设置所述待切换频道的出端口为可能切换到所述待切换频道的客户端对应的出端口,并标记该客户端对应的出端口为不发送组播数据;在收到所述待切换频道对应的组播数据后,如果查询到所述待切换频道的出端口具有不发送组播数据的标记,则丢弃所述待切换频道对应的组播数据;在所述可能切换到待切换频道的客户端切换到所述待切换频道之后,清除该客户端对应的出端口具有的不发送组播数据的标记;在收到所述待切换频道对应的组播数据后,如果查询到所述待切换频道的出端口为客户端对应的出端口,则通过所述客户端对应的出端口将所述待切换频道对应的组播数据发送给所述客户端。
在交互式网络电视IPTV网络中,所述上游设备包括汇聚层交换机,且所述IPTV网络中还包括频道服务器和核心路由器,且所述IPTV网络中的客户端包括机顶盒;
所述发送模块12,进一步用于向所述汇聚层交换机发送所述IGMP加入报文,由所述汇聚层交换机向所述核心路由器发送携带所述待切换频道信息的协议无关组播PIM加入报文,且所述核心路由器上具有所述频道服务器提供的所述待切换频道对应的组播数据;以及,接收来自所述汇聚层交换机的所述待切换频道对应的组播数据,且所述待切换频道对应的组播数据为所述核心路由器在收到所述PIM加入报文后,发送给所述汇聚层交换机的。
其中,本发明装置的各个模块可以集成于一体,也可以分离部署。上述模块可以合并为一个模块,也可以进一步拆分成多个子模块。
通过以上的实施方式的描述,本领域的技术人员可以清楚地了解到本发明可以通过硬件实现,也可以借助软件加必要的通用硬件平台的方式来实现。基于这样的理解,本发明的技术方案可以以软件产品的形式体现出来,该软件产品可以存储在一个非易失性存储介质(可以是CD-ROM,U盘,移动硬盘等)中,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)执行本发明各个实施例所述的方法。
本领域技术人员可以理解附图只是一个优选实施例的示意图,附图中的模块或流程并不一定是实施本发明所必须的。
本领域技术人员可以理解实施例中的装置中的模块可以按照实施例描述进行分布于实施例的装置中,也可以进行相应变化位于不同于本实施例的一个或多个装置中。上述实施例的模块可以合并为一个模块,也可以进一步拆分成多个子模块。
上述本发明序号仅仅为了描述,不代表实施例的优劣。
以上公开的仅为本发明的几个具体实施例,但是,本发明并非局限于此,任何本领域的技术人员能思之的变化都应落入本发明的保护范围。