组播数据报文转发方法及装置与流程

文档序号:15930416发布日期:2018-11-14 01:34阅读:332来源:国知局

本申请涉及通信技术领域,具体而言,涉及一种组播数据报文转发方法及装置。

背景技术

随着信息技术的发展,对交换机数据转发能力的要求越来越高。在一些场景中,需要交换机将一个流量较大的数据流复制成多份组播给多个端口,例如,视频点播、语音业务等场景。为了使端口的数据承载能力可以与数据流流量匹配,在大流量的组播场景中,常采用多个端口聚合的方式,入方向聚合口接收到的数据流会被复制成多份分别从多个出方向聚合口发送出去。

在上述场景中,需要发送报文的出方向聚合口会配置在一个组播组中,从入方向聚合口接收到的报文会发送到交换机的交换网板上,交换网板根据组播成员对报文进行复制,复制的报文将发往出方向聚合口的成员端口所在的交换芯片,交换芯片会对报文进行哈希,根据哈希结果在每个出方向聚合口中选择的一个成员端口将报文发送出去。

但是,交换网板在将报文发往交换芯片时,还不能确定由出方向聚合口中的哪一个成员端口发送报文,所以交换网板需要将报文发送给所有具有出方向聚合口的成员端口的交换芯片,然后由各交换芯片来根据报文哈希在方向聚合口的成员端口确定一个成员端口发送报文。

例如,在图1中,入方向聚合口中的端口0.1接收到组播数据报文后,端口0.1所在的交换芯片0会将组播数据报文发送给交换网板13,交换网板13需要将组播数据报文组播给出方向聚合口1到4。针对出方向聚合口1,交换网板13检测到其成员端口分布在交换芯片2和交换芯片3上,则将组播数据报文复制后发往交换芯片2和交换芯片3。交换芯片2根据组播数据报文做哈希,根据哈希结果选择端口2.1发送组播数据报文,交换芯片3也根据组播数据报文做哈希,根据哈希结果不需要由该交换芯片3上的端口发送该组播数据报文,则交换芯片3丢弃该组播数据报文。同理,其他出方向聚合口会执行类似的操作。

也就是说,从入方向聚合口接收的所有报文都复制并会发往每个具有出方向聚合口的成员端口的交换芯片。当入方向聚合后接收报文流量很大时,不管交换芯片是否需要转发接收到的所有报文,接收的所有报文都会复制发往每个具有出方向聚合口的成员端口的交换芯片。但交换芯片与交换网板之间的互联端口可能不足以承载如此高的报文流量,会导致报文丢失。

例如,在图1中,如果入方向聚合口的接收报文流量为1.2tbps,针对交换芯片2,不管交换芯片2是否需要发送这1.2tbps流量中的所有报文,这1.2tbps的报文流量会全部发送给交换芯片2。但是交换芯片2与交换网板相连的互联端口流量上限为600gbps,则交换芯片2无法承受交换网板发送的1.2tbps的流量,会导致交换网板发往交换芯片2的报文丢失。



技术实现要素:

一方面,本申请提供一种组播数据报文转发方法,应用于交换机,所述方法包括:

为组播组设置多个复制组,每个所述复制组包含位于不同交换芯片且属于所述组播组的不同出聚合口的多个出成员口;

为每个所述复制组分配一个复制组标识;

将每个所述复制组标识分别关联于所述组播组的入聚合口的一个入成员口;

通过所述入聚合口的任一所述入成员口接收属于所述组播组的组播数据报文时,基于接收所述组播数据报文的入成员口关联的复制组的出成员口的数目,复制所述组播数据报文;

通过接收所述组播数据报文的入成员口关联的复制组的各出成员口,发送一份复制的所述组播数据报文。

另一方面,本申请提供一种组播数据报文转发装置,应用于交换机,所述装置包括:

配置模块,用于为组播组设置多个复制组,每个所述复制组包含位于不同交换芯片且属于所述组播组的不同出聚合口的多个出成员口;为每个所述复制组分配一个复制组标识;将每个所述复制组标识分别关联于所述组播组的入聚合口的一个入成员口;

报文接收模块,用于通过所述入聚合口的任一所述入成员口接收属于所述组播组的组播数据报文时,基于接收所述组播数据报文的入成员口关联的复制组的出成员口的数目,复制所述组播数据报文;

报文发送模块,用于通过接收所述组播数据报文的入成员口关联的复制组的各出成员口,发送一份复制的所述组播数据报文。

相对于现有技术而言,本申请具有以下有益效果:

本申请提供的组播数据报文转发方法及装置,通过建立如聚合口中的入成员口和每个出聚合口中出成员口的关联关系,使交换机在接收到组播数据报文后,可以预先确定需要发送该组播数据报文的出成员口,这样,可以仅向目标出成员口所在的交换芯片复制并发送组播数据报文,减少了发往每个交换芯片的报文流量,能够降低大流量组播场景下,因交换芯片的互联端口流量限制导致报文丢失的风险。

附图说明

为了更清楚地说明本申请实施例的技术方案,下面将对实施例中所需要使用的附图作简单地介绍,应当理解,以下附图仅示出了本申请的某些实施例,因此不应被看作是对范围的限定,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他相关的附图。

图1为现有技术聚合口组播场景中交换机的报文处理示意图;

图2为本申请实施例提供的交换机的应用场景示意图;

图3为本申请实施例提供的交换机的连接配置关系示意图;

图4为本申请实施例提供的组播数据报文转发方法的流程示意图;

图5为本申请实施例提供的组播数据报文转发装置的功能模块示意图。

具体实施方式

为使本申请实施例的目的、技术方案和优点更加清楚,下面将结合本申请实施例中的附图,对本申请实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例是本申请一部分实施例,而不是全部的实施例。通常在此处附图中描述和示出的本申请实施例的组件可以以各种不同的配置来布置和设计。

因此,以下对在附图中提供的本申请的实施例的详细描述并非旨在限制要求保护的本申请的范围,而是仅仅表示本申请的选定实施例。基于本申请中的实施例,本领域普通技术人员在没有作出创造性劳动前提下所获得的所有其他实施例,都属于本申请保护的范围。

应注意到:相似的标号和字母在下面的附图中表示类似项,因此,一旦某一项在一个附图中被定义,则在随后的附图中不需要对其进行进一步定义和解释。

在本申请的描述中,需要说明的是,术语“第一”、“第二”、“第三”等仅用于区分描述,而不能理解为指示或暗示相对重要性。

在本申请的描述中,还需要说明的是,除非另有明确的规定和限定,术语“设置”、“安装”、“相连”、“连接”应做广义理解,例如,可以是固定连接,也可以是可拆卸连接,或一体地连接;可以是机械连接,也可以是电连接;可以是直接相连,也可以通过中间媒介间接相连,可以是两个元件内部的连通。对于本领域的普通技术人员而言,可以具体情况理解上述术语在本申请中的具体含义。

请参照图2,本实施例提供一种交换机100,交换机100接收来自组播源200发送的组播数据报文后,为作为组播组成员的每个设备300复制一份组播数据报文,分别发送给每个设备300。

交换机100的入聚合口是包含多个成员端口(以下称为“入成员口”)的聚合口(aggregatedport),位于交换机100连接组播源200的路径上。交换机100的每个出聚合口也是包含多个成员端口(以下称为“出成员口”)的聚合口,分别位于交换机100连接每个设备300的路径上。

例如,请参照图3,接口板20上的端口10.1到10.6及端口11.1到11.6为入聚合口210的入成员口。接口板21上的端口12.1到12.6及端口13.1到13.6为出聚合口310的出成员口,接口板22上的端口18.1到18.6及端口19.1到19.6为另一个出聚合口340的处成员口。

请参照图4,图4为一种应用于上述交换机100的组播数据报文转发方法,该方法至少包括步骤s410及步骤s450。

s410,为组播组设置多个复制组,每个复制组包含位于不同交换芯片且属于组播组的不同出聚合口的多个出成员口。

s420,为每个复制组分配一个复制组标识。

在本实施例中,每个出聚合口的多个出成员口位于至少两个不同的交换芯片上。例如,请再次参照图4,出聚合口310的多个出成员口至少位于交换芯片12和交换芯片13两块不同的交换芯片上。

从每个出聚合口中选取一个出成员组成一个复制组,并为每个复制组分配一个复制组标识。例如,请再次参照图4,将出成员口中具有相同字母标识的出成员口配置成一个复制组,并分配一个复制组标识。也就是说,将所述组播组拆分成了多个复制组。

步骤s430,将每个复制组标识分别关联于组播组的入聚合口的一个入成员口。

换句话说,在本实施例中,将每个入成员口与一个复制组建立了关联,例如,请再次参照图4,通过步骤s130将标识有字母a的入成员口与标识有字母a的出成员口组成的复制组相关联。

步骤s440,通过入聚合口的任一入成员口接收属于组播组的组播数据报文时,基于接收组播数据报文的入成员口关联的复制组的出成员口的数目,复制组播数据报文。

在本实施例中,可以将分配给接收所述组播数据报文的入成员口关联的复制组的复制组标识,添加于所述组播数据报文,然后将携带复制组标识的所述组播数据报文发送给所述交换机的交换网板。

具体地,可以根据接收所述组播数据报文的入成员口上设置的接入控制表项(accesscontrollist,简称acl)为所述组播数据报文添加关联的复制组的复制组标识。

交换机100在通过入成员口接收到组播数据报文后,根据该入成员口上预先配置的acl规则为该组播数据报文添加与该入成员口对应的复制组标识,并将组播数据报文发送给该交换网板23。

所述交换网板23查找所述组播数据报文携带的复制组标识关联的出成员口,然后所述交换网板为每个查找到的出成员口复制一份携带复制组标识的所述组播数据报文。

也就是说,从一个入成员口接收到的组播数据报文被复制添加了与该入成员口对应的复制组标识,然后在交换网板上组播数据报文被复制成了多份,并且每份复制的报文均携带了与该入成员口对应的复制组标识。

步骤s450,通过接收所述组播数据报文的入成员口关联的复制组的各出成员口,发送一份复制的所述组播数据报文

具体地,所述交换网板23识别每个查找到的出成员口所在的交换芯片,然后向每个识别的交换芯片发送一份携带复制组标识的所述组播数据报文。

收到携带复制组标识的所述组播数据报文的每个交换芯片,剥除所述组播数据报文携带的复制组标识,通过所述组播数据报文携带的复制组标识关联的出成员口发送所述组播数据报文。

例如,交换网板23根据组播数据报文的复制组标识,查找具有相应复制组标识的出成员口。然后,交换网板23查找到的出成员口所在的目标交换芯片,复制组播数据报文并发送到查找到的每个目标交换芯片。其中,交换芯片是布置在接口板上的,通过接口板与交换网板23连接,交换机100在查找到目标芯片后,会查找目标芯片所在的接口板,在向目标芯片发送组播数据报文时,交换网板23通过与目标芯片所在接口板将组播数据报文发送给目标交换芯片。

针对每个查找到的目标交换芯片,根据组播数据报文的复制组标识,选择具有该复制组标识的出成员口发送组播数据报文。

如此,通过入成员口上配置的acl及出成员口组成的复制组建立了入成员口与相应的出成员口的关联。也就是说,由一个入成员口接收的组播数据报文,确定地由与该入成员口对应的出成员口端口发送。

所以,交换网板23在进行组播数据报文的复制发送时,可以根据查找到的出成员口所在的交换芯片对复制发送过程进行剪枝,仅向查找到的出成员口所在的交换芯片发送组播数据报文。

例如,在图3中,端口10.1接收到的报文流量经交换网板23复制后,仅发往交换芯片12、14、16和18,而不发往13、15、17和19。端口11.1接收到的报文流量经交换网板23复制后,仅发往交换芯片13、15、17和19,而不发往交换芯片12、14、16和18。

如此,相较于现有技术,交换网板23需要将所有流量发往每个交换芯片的方案,本实施例提供的方案交换芯片从交换网板23接收到的报文都是需要由该交换芯片转发的报文,这就减少了交换芯片从交换网板23接收数据的流量,降低了因为交换芯片与交换网板23之间的互联端口不足以承载交换网板23发送的大流量组播而造成文报文丢失的风险。

可选地,在本实施例中,与同一入成员口对应的出成员口位于不同的交换芯片。例如,在图3中,与端口10.1对应的端口12.1和端口14.1分别位于交换芯片12和交换芯片14上。

若与同一入成员口对应的出成员口位于相同的交换芯片,则交换芯片在接收到组播数据报文后还需要复制给两个出成员口,而交换芯片的复制能力有限,当报文流量过大时,可能因交换芯片复制能力不足导致报文发送异常。

而将与同一入成员口对应的出成员口配置在不同的交换芯片上,报文经交换网板23复制后的组播数据报文,只会向同一个交换芯片发送一份,就不需要交换芯片再次进行报文复制,减少了交换芯片的工作负担,防止了报文流量过大时因交换芯片复制能力不足导致的报文发送异常。

可选地,在本实施例中,与出成员口所对应的入成员口的数量由出成员口及入成员口的报文流量预先确定。例如,若入成员口接收的报文流量为100gbps,出成员口能够发送数据的流量为100gbps,一个出成员口可以对应一个入成员口。若入成员口接收的报文流量为50gbps,出成员口能够发送数据的流量为100gbps,一个出成员口可以对应两个入成员口

为方便本领域技术人员理解本实施例的方案,参照图3的所示的连接关系或配置,下面通过一个例子解释本实施例提供的方案。

请再次参照图3,在本实施例中,交换机100的接口板20的端口10.1到10.6及端口11.1到11.6为入聚合口的入成员口。

接口板2上的端口12.1到12.6及端口13.1到13.6为出聚合口11的出成员口,并且,端口12.1到12.6属于交换芯片12,端口13.1到13.6属于交换芯片13。同理,如图3所示,接口板21和接口板22上的其他端口分别为出聚合口12到14的出成员口。

在预先配置过程中,接口板21和接口板22上中标识为a的端口配置为复制组a,即,端口12.1、端口14.1、端口16.1及端口18.1配置为一个复制组,复制组标识为a。接口板21和接口板22上中标识为b的端口配置为复制组b,即,端口12.2、端口14.2、端口16.2及端口18.2配置为一个复制组,复制组标识为a。同理,接口板21和接口板22标识有相同字母的端口配置为一个复制组,并配置相应的复制组标识。配置完成后,交换网板23将记录12个复制组各自的复制组成员端口所在的交换芯片及所在的接口板。

然后,在端口10.1上配置有一条acl规则,该acl规则用于为端口10.1接收到的报文添加复制组标识a,以将端口10.1接收到的报文被重定向到具有复制组标识a的复制组。同理,端口12.1、端口14.1、端口16.1及端口18.1分别对应复制组a到复制组j。

基于上述配置,针对一个报文的处理过程而言,本实施例提供的交换机100进行组播的流程如下。

若端口10.1接收到组播数据报文,则根据该组播数据报文10.1上配置的acl规则,为该组播数据报文添加复制组标识a,然后将组播数据报文发送到交换网板23。

交换网板23根据组播数据报文携带的复制组标识a,查找到具有复制组标识a的端口位于交换芯片12、交换芯片14、交换芯片16及交换芯片18,并查找到交换芯片12及交换芯片14位于接口板21,交换芯片16及交换芯片18位于接口板22。因此交换网板23将组播数据报文复制成四份后,分别发往接口板21的交换芯片12和交换芯片14以及接口板22的交换芯片16和交换芯片18。

交换芯片12在接收到组播数据报文后,根据组播数据报文携带的复制组标识a查找到具有相同复制组标识的端口12.1,则将组播数据报文从端口12.1发送出去。同理,交换芯片14、交换芯片16和交换芯片18分别将接收到的组播数据报文从端口14.1、端口16.1及端口18.1发送出去。

针对连续的数据报文流量的处理过程而言,本实施例提供的交换机100进行组播的流程如下。

以如聚合口210接收到1.2tbps的数据流量为例,端口10.1到10.6及端口11.1到11.6基本均匀的分担接收1.2tbps的数据流量,每个端口接收约100gbps的数据流量。每个端口接收到的数据报文会根据该端口上配置的acl规则添加与该端口对应的复制组标识后发送给交换网板23。

例如,端口10.1接收到的所有数据报文会根据端口10.1上配置的acl规则添加复制组标识a后发送给交换网板23,即,端口10.1向交换网板23发送约100gbps的携带复制组标识为a的数据流量。端口10.2接收到的所有数据报文会根据端口10.2上配置的acl规则添加复制组标识b后发送给交换网板23,即,端口10.2向交换网板23发送约100gbps的携带复制组标识为b的数据流量。也就是说,交换网板23从交换芯片10和11接收到的数据流量会分别携带12个不同的复制组标识,每个复制组标识对应的数据流量约为100gbps。

交换网板23在接收到数据流量后,交换网板23仅将复制组标识为a到f的数据流量复制并发往交换芯片12、14、16及18,仅将复制组标识为g到j的数据流量复制并发往交换芯片13、15、17及19。也就是说,对于交换芯片12,只会收到复制组标识为a到f的总共约为600gbps的数据流量,而不会收到复制组标识为g到j的600gbps的数据流量,同理,图3所示接口板21和接口板22上的每个交换芯片仅会接收交换网板23发送的600gbps的数据流量。

如此,相较于现有技术中交换网板23会发送整个1.2tbps的流量到每个交换芯片的方案,本实施例提供的方案可以有效减少交换网板23发往每个交换芯片的流量,能够降低大流量组播场景下交换网板23向芯片发送报文时,因交换芯片互联端口流量限制导致报文丢失的风险。

请参照图5,本实施例还提供应用于图3所示交换机100的一种组播数据报文转发装置50,该装置包括配置模块51、报文接收模块52及报文发送模块53。

配置模块51用于为组播组设置多个复制组,每个所述复制组包含位于不同交换芯片且属于所述组播组的不同出聚合口的多个出成员口;为每个所述复制组分配一个复制组标识;将每个所述复制组标识分别关联于所述组播组的入聚合口的一个入成员口。

报文接收模块52用于通过所述入聚合口的任一所述入成员口接收属于所述组播组的组播数据报文时,基于接收所述组播数据报文的入成员口关联的复制组的出成员口的数目,复制所述组播数据报文;

报文发送模块53用于通过接收所述组播数据报文的入成员口关联的复制组的各出成员口,发送一份复制的所述组播数据报文。

可选地,在本实施例中,所述报文接收模块52具体用于通过所述入聚合口的任一所述入成员口接收属于所述组播组的组播数据报文时,将分配给接收所述组播数据报文的入成员口关联的复制组的复制组标识,添加于所述组播数据报文;将携带复制组标识的所述组播数据报文发送给所述交换机的交换网板;通过所述交换网板查找所述组播数据报文携带的复制组标识关联的出成员口;通过所述交换网板为每个查找到的出成员口复制一份携带复制组标识的所述组播数据报文。

可选地,在本实施例中,所述报文发送模块53具体用于通过所述交换网板识别每个查找到的出成员口所在的交换芯片;通过所述交换网板向每个识别的交换芯片发送一份携带复制组标识的所述组播数据报文;通过收到携带复制组标识的所述组播数据报文的每个交换芯片,剥除所述组播数据报文携带的复制组标识,通过所述组播数据报文携带的复制组标识关联的出成员口发送所述组播数据报文。

可选地,在本实施例中,所述报文接收模块52所述组播数据报文添加复制组标识时,根据接收所述组播数据报文的入成员口上设置的接入控制表项为所述组播数据报文添加关联的复制组的复制组标识。

可选地,在本实施例中,所述入聚合口是位于所述交换机连接所述组播组的组播源的路径上的聚合口;每个所述出聚合口是位于交换机连接所述组播组的组播成员的路径上的聚合口。

综上所述,本申请提供的组播数据报文转发方法及装置,通过建立如聚合口中的入成员口和每个出聚合口中出成员口的关联关系,使交换机在接收到组播数据报文后,可以预先确定需要发送该组播数据报文的出成员口,这样,可以仅向目标出成员口所在的交换芯片复制并发送组播数据报文,减少了发往每个交换芯片的报文流量,能够降低大流量组播场景下,因交换芯片的互联端口流量限制导致报文丢失的风险。

在本申请所提供的实施例中,应该理解到,所揭露的装置和方法,也可以通过其它的方式实现。以上所描述的装置实施例仅仅是示意性的,例如,附图中的流程图和框图显示了根据本申请的多个实施例的装置、方法和计算机程序产品的可能实现的体系架构、功能和操作。在这点上,流程图或框图中的每个方框可以代表一个模块、程序段或代码的一部分,所述模块、程序段或代码的一部分包含一个或多个用于实现规定的逻辑功能的可执行指令。也应当注意,在有些作为替换的实现方式中,方框中所标注的功能也可以以不同于附图中所标注的顺序发生。例如,两个连续的方框实际上可以基本并行地执行,它们有时也可以按相反的顺序执行,这依所涉及的功能而定。也要注意的是,框图和/或流程图中的每个方框、以及框图和/或流程图中的方框的组合,可以用执行规定的功能或动作的专用的基于硬件的系统来实现,或者可以用专用硬件与计算机指令的组合来实现。

另外,在本申请各个实施例中的各功能模块可以集成在一起形成一个独立的部分,也可以是各个模块单独存在,也可以两个或两个以上模块集成形成一个独立的部分。

所述功能如果以软件功能模块的形式实现并作为独立的产品销售或使用时,可以存储在一个计算机可读取存储介质中。基于这样的理解,本申请的技术方案本质上或者说对现有技术做出贡献的部分或者该技术方案的部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质中,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)执行本申请各个实施例所述方法的全部或部分步骤。而前述的存储介质包括:u盘、移动硬盘、只读存储器(rom,read-onlymemory)、随机存取存储器(ram,randomaccessmemory)、磁碟或者光盘等各种可以存储程序代码的介质。

需要说明的是,在本文中,诸如第一和第二等之类的关系术语仅仅用来将一个实体或者操作与另一个实体或操作区分开来,而不一定要求或者暗示这些实体或操作之间存在任何这种实际的关系或者顺序。而且,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、物品或者设备不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、物品或者设备所固有的要素。在没有更多限制的情况下,由语句“包括一个……”限定的要素,并不排除在包括所述要素的过程、方法、物品或者设备中还存在另外的相同要素。

以上所述,仅为本申请的具体实施方式,但本申请的保护范围并不局限于此,任何熟悉本技术领域的技术人员在本申请揭露的技术范围内,可轻易想到变化或替换,都应涵盖在本申请的保护范围之内。因此,本申请的保护范围应所述以权利要求的保护范围为准。

当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1