用于转发组播数据的方法和系统与流程

文档序号:16686088发布日期:2019-01-22 18:19阅读:149来源:国知局
用于转发组播数据的方法和系统与流程
本发明涉及通信
技术领域
,特别涉及一种用于转发组播数据的方法和系统。
背景技术
:bier(bitindexexplicitreplication,位索引显式复制技术)作为一种新型的组播数据转发技术,能够通过匹配路由器的bfr-id(bitforwardingrouteridentification,位转发路由器身份标识)信息,方便的获取bfir(bitforwardingingressrouter,位转发入口路由器)和bfer(bitforwardingegressrouter,位转发出口路由器)信息,并通过查找bier转发表,实现组播数据的转发。现有的bier实现方式中,bfir需依据igmp(internetgroupmanagementprotocol,互联网组管理协议)/mld(multicastlistenerdiscover,组播侦听发现协议)协议交互获取bfer信息,通告过程相对比较复杂,且占用网络资源;另外路由器分布式管理方式,对组播组成员加入/离开信息不敏感。技术实现要素:本发明需要解决的一个技术问题是:提供一种用于转发组播数据的方法或系统,从而实现组播数据的转发。根据本发明的第一方面,提供了一种用于转发组播数据的方法,包括:在位索引显式复制bier域的边界处的位转发入口路由器bfir在接收到组播源发来的组播数据报文后,向bier控制器发送第一openflow流表;其中,所述组播数据报文包含组播组的id编号,所述第一openflow流表包含所述组播组的id编号、bfir加入组播组类型信息和所述bfir的身份标识id编号;所述bier控制器在接收到所述第一openflow流表后,获知所述bfir的id编号和所述bfir所加入的所述组播组的id编号;在所述bier域的边界处的位转发出口路由器bfer在接收到用户侧设备发来的请求加入所述组播组的消息后,向所述bier控制器发送第二openflow流表;其中,所述第二openflow流表包含所述组播组的id编号、bfer加入组播组类型信息和所述bfer的id编号;所述bier控制器在接收到所述第二openflow流表后,获知所述bfer的id编号和所述bfer所加入的所述组播组的id编号;并且生成第三openflow流表,将所述第三openflow流表下发到所述bfir;其中,所述第三openflow流表包含所述组播组的id编号、所述bier域内数据转发类型信息和转发信息值;所述bfir在接收到所述第三openflow流表后,根据所述第三openflow流表将所述组播数据报文转发到所述bfer;以及所述bfer在从所述bfir接收到所述组播数据报文后,将所述组播数据报文转发到所述用户侧设备。在一个实施例中,所述转发信息值包含所述bfer的id编号信息或者包含所述bfer的id编号信息和所述bfir的id编号信息;所述bfir根据所述第三openflow流表将所述组播数据报文转发到所述bfer的步骤包括:所述bfir将所述第三openflow流表中的组播组的id编号与所述组播数据报文中所包含的组播组的id编号进行匹配,在匹配成功后,根据所述第三openflow流表中的所述bfer的id编号信息通过ip路由最优选择方法查询获得从所述bfir到所述bfer的最优路由路径,并通过所述最优路由路径将所述组播数据报文转发到所述bfer。在一个实施例中,在所述bfir向所述bier控制器发送第一openflow流表之前,所述方法还包括:所述bier控制器收集在所述bier域的边界处的所有边界路由器的id编号;所述bier控制器在生成所述第三openflow流表的过程中,所述转发信息值包含计算得到的从所述bfir到所述bfer的边界路由路径信息;所述bfir根据所述第三openflow流表将所述组播数据报文转发到所述bfer的步骤包括:所述bfir将所述第三openflow流表中的组播组的id编号与所述组播数据报文中所包含的组播组的id编号进行匹配,在匹配成功后,根据所述第三openflow流表中的从所述bfir到所述bfer的边界路由路径信息将所述组播数据报文转发到所述bfer。在一个实施例中,在所述bfir向所述bier控制器发送第一openflow流表之前,所述方法还包括:所述bier控制器收集所述bier域内的所有中间路由器的id编号;所述bier控制器在生成所述第三openflow流表的过程中,所述转发信息值包含计算得到的从所述bfir到所述bfer的最优路由路径信息;所述bfir根据所述第三openflow流表将所述组播数据报文转发到所述bfer的步骤包括:所述bfir将所述第三openflow流表中的组播组的id编号与所述组播数据报文中所包含的组播组的id编号进行匹配,在匹配成功后,根据所述第三openflow流表中的从所述bfir到所述bfer的最优路由路径信息将所述组播数据报文转发到所述bfer。在一个实施例中,所述第一openflow流表包括第一头域和第一动作域,其中,所述第一头域包含所述组播组的id编号,所述第一动作域包含bfir加入组播组类型信息和所述bfir的id编号;所述第二openflow流表包括第二头域和第二动作域,其中,所述第二头域包含所述组播组的id编号,所述第二动作域包含bfer加入组播组类型信息和所述bfer的id编号;所述第三openflow流表包括第三头域和第三动作域,其中,所述第三头域包含所述组播组的id编号,所述第三动作域包含所述bier域内数据转发类型信息和转发信息值。在一个实施例中,所述bier控制器通过openflow接口分别与所述bfir和所述bfer交互;其中,所述bfir为与所述组播源直接相连的在所述bier域的边界处的边界路由器,所述bfer为与所述用户侧设备直接相连的在所述bier域的边界处的边界路由器。在一个实施例中,所述方法还包括:所述bfer在接收到所述用户侧设备发来的请求离开所述组播组的消息后,向所述bier控制器发送第四openflow流表;其中,所述第四openflow流表包含所述组播组的id编号、bfer离开组播组类型信息和所述bfer的id编号;所述bier控制器在接收到所述第四openflow流表后,根据所述第四openflow流表将所述bfer剔除出所述组播组。在一个实施例中,所述第四openflow流表包括第四头域和第四动作域,其中所述第四头域包含所述组播组的id编号,所述第四动作域包含bfer离开组播组类型信息和所述bfer的id编号。根据本发明的第二方面,提供了一种用于转发组播数据的系统,包括:位转发入口路由器bfir,在位索引显式复制bier域的边界处,用于在接收到组播源发来的组播数据报文后,向bier控制器发送第一openflow流表;其中,所述组播数据报文包含组播组的id编号,所述第一openflow流表包含所述组播组的id编号、bfir加入组播组类型信息和所述bfir的id编号;以及在从所述bier控制器接收到第三openflow流表后,根据所述第三openflow流表将所述组播数据报文转发到位转发出口路由器bfer;所述bfer,在所述bier域的边界处,用于在接收到用户侧设备发来的请求加入所述组播组的消息后,向所述bier控制器发送第二openflow流表;其中,所述第二openflow流表包含所述组播组的id编号、bfer加入组播组类型信息和所述bfer的id编号;以及在从bfir接收到所述组播数据报文后,将所述组播数据报文转发到所述用户侧设备;以及所述bier控制器,用于在接收到所述第一openflow流表后,获知所述bfir的id编号和所述bfir所加入的所述组播组的id编号;在接收到所述第二openflow流表后,获知所述bfer的id编号和所述bfer所加入的所述组播组的id编号;并且生成第三openflow流表,将所述第三openflow流表下发到所述bfir;其中,所述第三openflow流表包含所述组播组的id编号、所述bier域内数据转发类型信息和转发信息值。在一个实施例中,所述转发信息值包含所述bfer的id编号信息或者包含所述bfer的id编号信息和所述bfir的id编号信息;所述bfir用于将所述第三openflow流表中的组播组的id编号与所述组播数据报文中所包含的组播组的id编号进行匹配,在匹配成功后,根据所述第三openflow流表中的所述bfer的id编号信息通过ip路由最优选择方法查询获得从所述bfir到所述bfer的最优路由路径,并通过所述最优路由路径将所述组播数据报文转发到所述bfer。在一个实施例中,所述bier控制器还用于收集在所述bier域的边界处的所有边界路由器的id编号;所述bier控制器在生成所述第三openflow流表的过程中,所述转发信息值包含计算得到的从所述bfir到所述bfer的边界路由路径信息;所述bfir用于将所述第三openflow流表中的组播组的id编号与所述组播数据报文中所包含的组播组的id编号进行匹配,在匹配成功后,根据所述第三openflow流表中的从所述bfir到所述bfer的边界路由路径信息将所述组播数据报文转发到所述bfer。在一个实施例中,所述bier控制器还用于收集所述bier域内的所有中间路由器的id编号;所述bier控制器在生成所述第三openflow流表的过程中,所述转发信息值包含计算得到的从所述bfir到所述bfer的最优路由路径信息;所述bfir用于将所述第三openflow流表中的组播组的id编号与所述组播数据报文中所包含的组播组的id编号进行匹配,在匹配成功后,根据所述第三openflow流表中的从所述bfir到所述bfer的最优路由路径信息将所述组播数据报文转发到所述bfer。在一个实施例中,所述第一openflow流表包括第一头域和第一动作域,其中,所述第一头域包含所述组播组的id编号,所述第一动作域包含bfir加入组播组类型信息和所述bfir的id编号;所述第二openflow流表包括第二头域和第二动作域,其中,所述第二头域包含所述组播组的id编号,所述第二动作域包含bfer加入组播组类型信息和所述bfer的id编号;所述第三openflow流表包括第三头域和第三动作域,其中,所述第三头域包含所述组播组的id编号,所述第三动作域包含所述bier域内数据转发类型信息和转发信息值。在一个实施例中,所述bier控制器通过openflow接口分别与所述bfir和所述bfer交互;其中,所述bfir为与所述组播源直接相连的在所述bier域的边界处的边界路由器,所述bfer为与所述用户侧设备直接相连的在所述bier域的边界处的边界路由器。在一个实施例中,所述bfer还用于在接收到所述用户侧设备发来的请求离开所述组播组的消息后,向所述bier控制器发送第四openflow流表;其中,所述第四openflow流表包含所述组播组的id编号、bfer离开组播组类型信息和所述bfer的id编号;所述bier控制器还用于在接收到所述第四openflow流表后,根据所述第四openflow流表将所述bfer剔除出所述组播组。在一个实施例中,所述第四openflow流表包括第四头域和第四动作域,其中所述第四头域包含所述组播组的id编号,所述第四动作域包含bfer离开组播组类型信息和所述bfer的id编号。根据本发明的第三方面,提供了一种用于转发组播数据的系统,包括:存储器;以及耦接至所述存储器的处理器,所述处理器被配置为基于存储在所述存储器的指令执行如前所述的方法。根据本发明的第四方面,提供了一种计算机可读存储介质,其上存储有计算机程序指令,该指令被处理器执行时实现如前所述的方法的步骤。在本发明中,bfir通过第一openflow流表将该bfir所加入的组播组的id编号和该bfir的id编号告知bier控制器,bfer通过第二openflow流表将该bfer所加入的组播组的id编号和该bfer的id编号告知bier控制器,bier控制器在收集到bier域内的组播组的bfir信息和bfer信息后,生成包含该bier域内的转发信息的第三openflow流表,并下发给bfir,bfir根据该第三openflow流表的转发信息将从组播源接收到的组播数据报文转发给bfer,该bfer将该组播数据报文转发给用户侧设备,从而实现了组播数据的转发。相比现有技术,本发明简化了bier域中的组播组成员信息通告过程,同时也方便进行统一的管理和组播组信息的维护。通过以下参照附图对本发明的示例性实施例的详细描述,本发明的其它特征及其优点将会变得清楚。附图说明构成说明书的一部分的附图描述了本发明的实施例,并且连同说明书一起用于解释本发明的原理。参照附图,根据下面的详细描述,可以更加清楚地理解本发明,其中:图1是示意性地示出根据本发明一个实施例的用于转发组播数据的系统的结构图。图2是示出根据本发明一个实施例的openflow流表格式的示意图。图3是示出根据本发明一个实施例的用于转发组播数据的方法的流程图。图4是示意性地示出根据本发明另一个实施例的用于转发组播数据的系统的结构图。图5是示意性地示出根据本发明另一个实施例的用于转发组播数据的系统的结构图。图6是示意性地示出根据本发明另一个实施例的用于转发组播数据的系统的结构图。具体实施方式现在将参照附图来详细描述本发明的各种示例性实施例。应注意到:除非另外具体说明,否则在这些实施例中阐述的部件和步骤的相对布置、数字表达式和数值不限制本发明的范围。同时,应当明白,为了便于描述,附图中所示出的各个部分的尺寸并不是按照实际的比例关系绘制的。以下对至少一个示例性实施例的描述实际上仅仅是说明性的,决不作为对本发明及其应用或使用的任何限制。对于相关领域普通技术人员已知的技术、方法和设备可能不作详细讨论,但在适当情况下,所述技术、方法和设备应当被视为授权说明书的一部分。在这里示出和讨论的所有示例中,任何具体值应被解释为仅仅是示例性的,而不是作为限制。因此,示例性实施例的其它示例可以具有不同的值。应注意到:相似的标号和字母在下面的附图中表示类似项,因此,一旦某一项在一个附图中被定义,则在随后的附图中不需要对其进行进一步讨论。本发明实施例针对现有bier实现方式中需通过igmp/mld协议交互组播源信息和接收者信息,才能得到bfir和bfer信息的问题,提出了一种利用openflow接口的扩展方式来转发组播数据的方法和系统。通过bier控制器收集bier域内某组播组的bfir和bfer信息,并形成此组播组数据在bier域的转发信息下发给bfir,简化了bier域中的组播组成员信息通告过程,同时也方便进行统一的管理和组播组信息的维护。图1是示意性地示出根据本发明一个实施例的用于转发组播数据的系统的结构图。本发明实施例提出了利用openflow接口扩展方式来转发组播数据的方法,需在bier域中新增bier控制器进行集中管理和控制,并进行流表上传和下发,如图1所示。在图1中,假设位串长度为5,可以设置位转发路由器(简称为bfr)r1、r2、r3、r4和r5的身份标识id编号如表1。表1路由器身份标识编号在本发明的实施例中,bier控制器通过openflow接口分别与bfir和bfer交互。其中,bfir为与组播源直接相连的在bier域的边界处的边界路由器(例如r1),bfer为与用户侧设备(例如ce1、ce2或ce3)直接相连的在bier域的边界处的边界路由器(例如r3、r4或r5)。如图1所示,通过bier控制器实现bier组播组信息交互的流程可表示如下:(1)与某一组播源直接相连的bier域边界路由器(例如r1)为此组播组(例如mg-id=1)的bfir,并告知bier控制器,其通知信息包括:mg-idbfirbfr-id1r100001(2)当bier域的边界路由器(例如r5)需要加入某组播组(例如mg-id=1)时,r5告知bier控制器,其通知信息包括:mg-idbferbfr-id1r510000其他与用户侧设备直接相连的边界路由器(例如r3或r4)需要加入组播组时,与r5的过程类似。(3)bier控制器通过收集同一组播组(例如mg-id=1)的bfir和bfer信息,形成bier域内转发信息,并发送给bfir,其信息包括:mg-id转发信息bfirbfer111000r1r4、r5在实施例中,“11000”表示“01000”和“10000”的组合形式,即表示告知bfir,该bier域内的组播组的bfer为r4(id编号为01000)和r5(id编号为10000)。在后续的实施例中,转发信息还可以包含表示其他含义的值,例如还可以包含表示bfir信息的值或表示最优路由路径信息的值等,后面将详细描述。对于上述(1)~(3)中所传递的信息,本发明中可以通过openflow接口的扩展方式来实现上述信息的传递。图2是示出根据本发明一个实施例的openflow流表格式的示意图。如图2所示,本发明所涉及的方法主要扩展了openflow流表的头域header和动作action。(i)在头域的匹配字段中,增加组播组id编号信息,用于匹配相应的组播组。(ii)对动作域进行扩展:新增四种type(类型),并定义了value(值)的格式:(a)bfir加入组播组信息:type:bfir加入组播组;value:该bfir的id编号(例如00001)。(b)bfer加入组播组信息:type:bfer加入组播组;value:该bfer的id编号(例如10000)。(c)控制器下发bier转发信息:type:bier域内数据转发value:转发信息值(例如11000(表示bfer为r4和r5)、11001(表示bfer为r4和r5、bfir为r1)或11011(表示最优路由路径是r1→r2→r4和r1→r2→r5))。(d)bfer离开组播组信息:type:bfer离开组播组;value:该bfer的id编号(例如10000)。此外,动作域还可以包括表示该动作域长度的长度项(length,简称为len)。例如,该动作域的长度可以为8位或者16位等。图3是示出根据本发明一个实施例的用于转发组播数据的方法的流程图。下面结合图1和图3详细描述根据本发明一个实施例的用于转发组播数据的方法。如图3所示,在步骤s301,在bier域的边界处的bfir在接收到组播源发来的组播数据报文后,向bier控制器发送第一openflow流表;其中,该组播数据报文包含组播组的id编号,该第一openflow流表包含该组播组的id编号、该bfir加入组播组类型信息和该bfir的id编号。例如,如图1所示,bfir(例如r1)在接收到组播源发来的组播数据报文(该组播数据报文包含组播组的id编号,例如该id编号mg-id=1)后,该组播数据报文将停留在bfir,暂时没有转发。该bfir向bier控制器发送第一openflow流表;其中,该第一openflow流表包含该组播组的id编号、该bfir加入组播组类型信息和该bfir的id编号。例如,该第一openflow流表可以包括第一头域和第一动作域,其中,该第一头域包含该组播组的id编号(例如mg-id=1,即组播组的id编号为1),该第一动作域包含该bfir加入组播组类型信息(即该第一动作域的类型type为bfir加入组播组)和该bfir的id编号(即该第一动作域的值value为该bfir的id编号(例如00001))。回到图3,在步骤s302,bier控制器在接收到第一openflow流表后,获知bfir的id编号和该bfir所加入的组播组的id编号。例如,如图1所示,bier控制器在接收到第一openflow流表后,获知bfir(例如r1)的id编号(例如00001)和该bfir所加入的组播组的id编号(例如该组播组的id编号为1)。回到图3,在步骤s303,在bier域的边界处的bfer在接收到用户侧设备发来的请求加入组播组的消息后,向bier控制器发送第二openflow流表;其中,该第二openflow流表包含该组播组的id编号、bfer加入组播组类型信息和该bfer的id编号。例如,如图1所示,r4是在bier域的边界处的bfer,该r4在接收到用户侧设备(例如机顶盒)ce2发来的请求加入组播组的消息后,向bier控制器发送第二openflow流表;其中,该第二openflow流表包含该组播组的id编号(例如mg-id=1,即组播组的id编号为1)、bfer加入组播组类型信息和该bfer(r4)的id编号(例如01000)。又例如,如图1所示,r5是在bier域的边界处的bfer,该r5在接收到用户侧设备ce3发来的请求加入组播组的消息后,向bier控制器发送第二openflow流表;其中,该第二openflow流表包含该组播组的id编号(例如mg-id=1,即组播组的id编号为1)、bfer加入组播组类型信息和该bfer(r5)的id编号(例如10000)。在本发明的实施例中,该第二openflow流表可以包括第二头域和第二动作域,其中,该第二头域包含组播组的id编号(例如mg-id=1,即组播组的id编号为1),该第二动作域包含bfer加入组播组类型信息(即该第二动作域的类型type为bfer加入组播组)和该bfer的id编号(即该第二动作域的值为该bfer的id编号,例如,r4的id编号01000或者r5的id编号10000)。回到图3,在步骤s304,bier控制器在接收到第二openflow流表后,获知该bfer的id编号和该bfer所加入的组播组的id编号;并且生成第三openflow流表,将该第三openflow流表下发到bfir;其中,该第三openflow流表包含该组播组的id编号、该bier域内数据转发类型信息和转发信息值。在本发明的实施例中,该第三openflow流表可以包括第三头域和第三动作域,其中,该第三头域包含组播组的id编号,该第三动作域包含bier域内数据转发类型信息(即第三动作域的类型type为bier域内数据转发)和转发信息值(即第三动作域的值为转发信息值)。在一个实施例中,该转发信息值可以包含该bfer的id编号信息(例如转发信息值11000包含:图1中的r4的id编号01000的信息和r5的id编号10000的信息)或者可以包含该bfer的id编号信息和该bfir的id编号信息(例如转发信息值11001包含:图1中的r4的id编号01000的信息、r5的id编号10000的信息和r1的id编号00001的信息)。即转发信息值中右起第几位为1,则表示第几个路由器,例如转发信息值11001的右起第1、4、5位为1,则表示图1中的路由器r1、r4和r5。在另一个实施例中,在步骤s301之前,所述方法还可以包括:bier控制器收集在bier域的边界处的所有边界路由器的id编号。该bier控制器在生成该第三openflow流表的过程中,该转发信息值包含计算得到的从bfir到bfer的边界路由路径信息(该边界路由路径是由若干边界路由器组成的路径)。例如,bier控制器可以利用openflow接口通过openflow流表的形式收集所有的边界路由器(例如图1中的r1、r3、r4和r5)进行交互,获得这些边界路由器的id编号。这样在步骤s304中,bier控制器可以计算得到从bfir到bfer的边界路由路径(如果存在的话),将该边界路由路径以第三openflow流表中的转发信息值的形式下发给bfir。在另一个实施例中,在步骤s301之前,所述方法还可以包括:bier控制器收集该bier域内的所有中间路由器的id编号(例如r2的id编号00010)。在该步骤s304中,该bier控制器在生成第三openflow流表的过程中,该转发信息值包含计算得到的从bfir到bfer的最优路由路径信息。例如,在图1中,bfir为r1,bfer为r4和r5,由于bier控制器还收集得到中间路由器r2的id编号,因此,bier控制器能够计算得到r1分别到r4和r5的最优路由路径为r1→r2→r4和r1→r2→r5,然后将该最优路由路径以第三openflow流表中的转发信息值(例如11011)的形式下发给bfir(例如r1)。回到图3,在步骤s305,bfir在接收到第三openflow流表后,根据该第三openflow流表将组播数据报文转发到bfer。在一个实施例中,如果第三openflow流表中的转发信息值包含该bfer的id编号信息或者包含该bfer的id编号信息和该bfir的id编号信息,则该bfir根据第三openflow流表将组播数据报文转发到bfer的步骤可以包括:该bfir将第三openflow流表中的组播组的id编号与组播数据报文中所包含的组播组的id编号进行匹配,在匹配成功后,根据第三openflow流表中的bfer的id编号信息通过ip(internetprotocol,互联网协议)路由最优选择方法查询获得从bfir到bfer的最优路由路径,并通过该最优路由路径将组播数据报文转发到bfer(例如分别转发到r4和r5)。例如,如图1所示,第三openflow流表中的组播组的id编号为1,组播数据报文中所包含的组播组的id编号也为1,这二者匹配成功,则bfir根据转发信息值11000获知bfer分别为r4(其id编号为01000)和r5(其id编号为10000),然后通过现有的ip路由最优选择方法查询获得从bfir到bfer的最优路由路径,例如如图1所示,路由路径分别为r1→r2→r4和r1→r2→r5,并通过该最优路由路径将组播数据报文分别转发到r4和r5。例如,在bier域内的组播数据报文的转发过程可以基于标签来实现。此外,图1中还示出了现有的igmp/mld信令的传输路径r5→r2→r1。在另一个实施例中,如果第三openflow流表中的转发信息值包含计算得到的从bfir到bfer的边界路由路径信息,则bfir根据第三openflow流表将组播数据报文转发到bfer的步骤可以包括:该bfir将第三openflow流表中的组播组的id编号与组播数据报文中所包含的组播组的id编号进行匹配,在匹配成功后,根据该第三openflow流表中的从bfir到bfer的边界路由路径信息将该组播数据报文转发到bfer。在另一个实施例中,如果第三openflow流表中的转发信息值包含计算得到的从bfir到bfer的最优路由路径信息,则该bfir根据第三openflow流表将组播数据报文转发到bfer的步骤可以包括:该bfir将该第三openflow流表中的组播组的id编号与组播数据报文中所包含的组播组的id编号进行匹配,在匹配成功后,根据该第三openflow流表中的从该bfir到该bfer的最优路由路径信息将该组播数据报文转发到该bfer。例如,如图1所示,第三openflow流表中的组播组的id编号为1,组播数据报文中所包含的组播组的id编号也为1,这二者匹配成功,则bfir根据转发信息值11011获得从r1到r4的最优路由路径为r1→r2→r4,以及从r1到r5的最优路由路径为r1→r2→r5,并通过该最优路由路径将组播数据报文分别转发到r4和r5。回到图3,在步骤s306,bfer在从bfir接收到组播数据报文后,将该组播数据报文转发到用户侧设备。例如,如图1所示,r4从r1接收到组播数据报文后,将该组播数据报文转发到用户侧设备ce2,r5从r1接收到组播数据报文后,将该组播数据报文转发到用户侧设备ce3。在本发明的上述实施例中,提供了一种用于转发组播数据的方法。在该方法中,bfir通过第一openflow流表将该bfir所加入的组播组的id编号和该bfir的id编号告知bier控制器,bfer通过第二openflow流表将该bfer所加入的组播组的id编号和该bfer的id编号告知bier控制器,bier控制器在收集到bier域内的组播组的bfir信息和bfer信息后,生成包含该bier域内的转发信息的第三openflow流表,并下发给bfir,bfir根据该第三openflow流表的转发信息将从组播源接收到的组播数据报文转发给bfer,该bfer将该组播数据报文转发给用户侧设备,从而实现了组播数据的转发。相比现有技术,本发明实施例的上述方法简化了bier域中的组播组成员信息通告过程,同时也方便进行统一的管理和组播组信息的维护。在本发明的实施例中,上述方法还可以包括:bfer在接收到用户侧设备发来的请求离开组播组的消息后,向bier控制器发送第四openflow流表。其中,该第四openflow流表包含该组播组的id编号、该bfer离开组播组类型信息和该bfer的id编号。该bier控制器在接收到该第四openflow流表后,根据该第四openflow流表将该bfer剔除出该组播组。在一个实施例中,该第四openflow流表可以包括第四头域和第四动作域,其中该第四头域包含该组播组的id编号,该第四动作域包含bfer离开组播组类型信息(即该第四动作域的类型type为bfer离开组播组)和该bfer的id编号(即该第四动作域的值为该bfer的id编号)。该实施例实现了bfer离开组播组的过程。例如,如图1所示,当用户侧设备ce3请求离开时,则向r5(作为bfer)发送请求离开组播组的消息,r5在接收到该消息后,向bier控制器发送第四openflow流表。在一个实施例中,该第四openflow流表包括第四头域和第四动作域,其中该第四头域包含该组播组的id编号(例如该组播组的id编号为1),该第四动作域包含bfer离开组播组类型信息(即该第四动作域的类型type为bfer离开组播组)和该bfer的id编号(例如10000)。该bier控制器在接收到该第四openflow流表后,根据该第四openflow流表将r5剔除出该组播组(例如该组播组的id编号为1)。图4是示意性地示出根据本发明另一个实施例的用于转发组播数据的系统的结构图。如图4所示,该系统40可以包括:bfir401、bfer402和bier控制器410。该bier控制器410通过openflow接口411分别与bfir401和bfer402交互。该bfir401为与组播源420直接相连的在bier域的边界处的边界路由器,该bfer402为与用户侧设备430直接相连的在bier域的边界处的边界路由器。例如,bfir401可以是图1中的r1,bfer402可以是图1中的r3、r4或r5。该bfir401在bier域的边界处,用于在接收到组播源420发来的组播数据报文后,向bier控制器410发送第一openflow流表。该组播数据报文包含组播组的id编号。该第一openflow流表包含该组播组的id编号、bfir加入组播组类型信息和该bfir的id编号。例如,该第一openflow流表可以包括第一头域和第一动作域,其中,该第一头域包含该组播组的id编号,该第一动作域包含bfir加入组播组类型信息和该bfir的id编号。该bfir401还可以用于在从bier控制器410接收到第三openflow流表后,根据该第三openflow流表将该组播数据报文转发到bfer402。该bfer402在bier域的边界处,用于在接收到用户侧设备430发来的请求加入该组播组的消息后,向该bier控制器410发送第二openflow流表。其中,该第二openflow流表包含该组播组的id编号、bfer加入组播组类型信息和该bfer的id编号。例如,该第二openflow流表可以包括第二头域和第二动作域,其中,该第二头域包含该组播组的id编号,该第二动作域包含bfer加入组播组类型信息和该bfer的id编号。该bfer402还可以用于在从bfir401接收到组播数据报文后,将该组播数据报文转发到用户侧设备430。该bier控制器410可以用于在接收到第一openflow流表后,获知该bfir401的id编号和该bfir401所加入的组播组的id编号;在接收到该第二openflow流表后,获知该bfer402的id编号和该bfer所加入的该组播组的id编号;并且生成第三openflow流表,将该第三openflow流表下发到该bfir401。其中,该第三openflow流表包含该组播组的id编号、该bier域内数据转发类型信息和转发信息值。例如,该第三openflow流表可以包括第三头域和第三动作域,其中,该第三头域包含该组播组的id编号,该第三动作域包含该bier域内数据转发类型信息和转发信息值。在本发明的上述实施例中,提供了一种用于转发组播数据的系统。在该系统中,bfir通过第一openflow流表将该bfir所加入的组播组的id编号和该bfir的id编号告知bier控制器,bfer通过第二openflow流表将该bfer所加入的组播组的id编号和该bfer的id编号告知bier控制器,bier控制器在收集到bier域内的组播组的bfir信息和bfer信息后,生成包含该bier域内的转发信息的第三openflow流表,并下发给bfir,bfir根据该第三openflow流表的转发信息将从组播源接收到的组播数据报文转发给bfer,该bfer将该组播数据报文转发给用户侧设备,从而实现了组播数据的转发。相比现有技术,本发明实施例的上述系统简化了bier域中的组播组成员信息通告过程,同时也方便进行统一的管理和组播组信息的维护。在一个实施例中,该转发信息值可以包含该bfer402的id编号信息或者可以包含该bfer402的id编号信息和该bfir401的id编号信息。该bfir401可以用于将第三openflow流表中的组播组的id编号与组播数据报文中所包含的组播组的id编号进行匹配,在匹配成功后,根据该第三openflow流表中的该bfer402的id编号信息通过ip路由最优选择方法查询获得从该bfir401到该bfer402的最优路由路径,并通过该最优路由路径将该组播数据报文转发到该bfer402。在另一个实施例中,该bier控制器410还可以用于收集在bier域的边界处的所有边界路由器的id编号。该bier控制器410在生成第三openflow流表的过程中,该转发信息值可以包含计算得到的从bfir401到bfer402的边界路由路径信息。该bfir401可以用于将第三openflow流表中的组播组的id编号与组播数据报文中所包含的组播组的id编号进行匹配,在匹配成功后,根据该第三openflow流表中的从该bfir401到该bfer402的边界路由路径信息将该组播数据报文转发到该bfer402。在另一个实施例中,该bier控制器410还可以用于收集该bier域内的所有中间路由器403的id编号。该bier控制器410在生成第三openflow流表的过程中,该转发信息值可以包含计算得到的从该bfir401到该bfer402的最优路由路径信息(例如bfir401→中间路由器403→bfer402)。该bfir401可以用于将第三openflow流表中的组播组的id编号与组播数据报文中所包含的组播组的id编号进行匹配,在匹配成功后,根据该第三openflow流表中的从该bfir401到该bfer402的最优路由路径信息将该组播数据报文转发到该bfer402。在一个实施例中,该系统40还可以包括中间路由器403,该中间路由器403可以用于与bier控制器410交互,将该中间路由器的id编号发送给bier控制器410。该中间路由器403还可以用于在bfir401和bfer402之间传递报文或消息。在本发明的实施例中,该bfer402还可以用于在接收到用户侧设备发来的请求离开组播组的消息后,向该bier控制器410发送第四openflow流表。其中,该第四openflow流表可以包含该组播组的id编号、bfer离开组播组类型信息和该bfer的id编号。例如,该第四openflow流表可以包括第四头域和第四动作域,其中该第四头域包含该组播组的id编号,该第四动作域包含bfer离开组播组类型信息和该bfer的id编号。bier控制器410还可以用于在接收到该第四openflow流表后,根据该第四openflow流表将该bfer402剔除出该组播组。在本发明实施例的方法和系统中,通过扩展openflow接口,实现bier域中bfir和bfer信息的自动上报,从而bier控制器能够方便地获取特定组播组在bier域中的bfir和bfer信息,并将此组播组的转发信息统一下发给bfir,实现网络集中式管理和控制,提高了转发效率。图5是示意性地示出根据本发明另一个实施例的用于转发组播数据的系统的结构图。该系统包括存储器510和处理器520。其中:存储器510可以是磁盘、闪存或其它任何非易失性存储介质。存储器用于存储图3所对应实施例中的指令。处理器520耦接至存储器510,可以作为一个或多个集成电路来实施,例如微处理器或微控制器。该处理器520用于执行存储器中存储的指令,从而实现组播数据的转发,提高了转发效率。在本发明的实施例中,该系统可以包括多个存储器510和多个处理器520。这多个存储器可以分布在不同的位置,相应地,这多个处理器也可以分布在不同的位置。每个处理器可以对应一个存储器。每个存储器可以存储图3中的方法的部分步骤,与该存储器对应的处理器可以执行该存储器所存储的方法的步骤。在一个实施例中,还可以如图6所示,该系统600包括存储器610和处理器620。处理器620通过bus总线630耦合至存储器610。该系统600还可以通过存储接口640连接至外部存储装置650以便调用外部数据,还可以通过网络接口660连接至网络或者另外一台计算机系统(未标出),此处不再进行详细介绍。在该实施例中,通过存储器存储数据指令,再通过处理器处理上述指令,从而实现组播数据的转发,提高了转发效率。在本发明的实施例中,该系统600可以包括多个存储器610、多个处理器620、多个bus总线630、多个存储接口640、多个外部存储装置650和多个网络接口660,分别设置在不同的位置,从而在不同位置的这些设备实现图3中的方法的部分步骤。在另一个实施例中,本发明还提供了一种计算机可读存储介质,其上存储有计算机程序指令,该指令被处理器执行时实现图3所对应实施例中的方法的步骤。本领域内的技术人员应明白,本发明的实施例可提供为方法、装置、或计算机程序产品。因此,本发明可采用完全硬件实施例、完全软件实施例、或结合软件和硬件方面的实施例的形式。而且,本发明可采用在一个或多个其中包含有计算机可用程序代码的计算机可用非瞬时性存储介质(包括但不限于磁盘存储器、cd-rom、光学存储器等)上实施的计算机程序产品的形式。本发明是参照根据本发明实施例的方法、设备(系统)和计算机程序产品的流程图和/或方框图来描述的。应理解可由计算机程序指令实现流程图和/或方框图中的每一流程和/或方框以及流程图和/或方框图中的流程和/或方框的结合。可提供这些计算机程序指令到通用计算机、专用计算机、嵌入式处理机或其他可编程数据处理设备的处理器以产生一个机器,使得通过计算机或其他可编程数据处理设备的处理器执行的指令产生用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的装置。这些计算机程序指令也可存储在能引导计算机或其他可编程数据处理设备以特定方式工作的计算机可读存储器中,使得存储在该计算机可读存储器中的指令产生包括指令装置的制造品,该指令装置实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能。这些计算机程序指令也可装载到计算机或其他可编程数据处理设备上,使得在计算机或其他可编程设备上执行一系列操作步骤以产生计算机实现的处理,从而在计算机或其他可编程设备上执行的指令提供用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的步骤。至此,已经详细描述了本发明。为了避免遮蔽本发明的构思,没有描述本领域所公知的一些细节。本领域技术人员根据上面的描述,完全可以明白如何实施这里公开的技术方案。可能以许多方式来实现本发明的方法和系统。例如,可通过软件、硬件、固件或者软件、硬件、固件的任何组合来实现本发明的方法和系统。用于所述方法的步骤的上述顺序仅是为了进行说明,本发明的方法的步骤不限于以上具体描述的顺序,除非以其它方式特别说明。此外,在一些实施例中,还可将本发明实施为记录在记录介质中的程序,这些程序包括用于实现根据本发明的方法的机器可读指令。因而,本发明还覆盖存储用于执行根据本发明的方法的程序的记录介质。虽然已经通过示例对本发明的一些特定实施例进行了详细说明,但是本领域的技术人员应该理解,以上示例仅是为了进行说明,而不是为了限制本发明的范围。本领域的技术人员应该理解,可在不脱离本发明的范围和精神的情况下,对以上实施例进行修改。本发明的范围由所附权利要求来限定。当前第1页12
当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1