一种通过修改查找关键字提高组播转发效率的方法

文档序号:1711795 发布日期:2019-12-13 浏览:32次 >En<

阅读说明:本技术 一种通过修改查找关键字提高组播转发效率的方法 (method for improving multicast forwarding efficiency by modifying search key words ) 是由 石瑞华 吴琦 于 2019-08-16 设计创作,主要内容包括:本发明涉及一种通过修改查找关键字提高组播转发效率的方法,通过SIP和VRF ID获取接口ID,再通过接口ID与SIP、GIP组成三元组,利用三元组进行RPF检查,通过RPF检查匹配实现组播转发。本发明提供了一种通过修改查找关键字提高组播转发效率的方法,能够使用接口ID作为查找关键字,以此取代传统VRF ID,从而提升组播转发效率,减少CPU的运行负担。(The invention relates to a method for improving multicast forwarding efficiency by modifying and searching keywords, which comprises the steps of obtaining an interface ID through SIP and VRF ID, forming a triple group through the interface ID, the SIP and GIP, utilizing the triple group to carry out RPF check, and realizing multicast forwarding through RPF check matching. The invention provides a method for improving multicast forwarding efficiency by modifying a search keyword, which can use an interface ID as the search keyword to replace the traditional VRF ID, thereby improving the multicast forwarding efficiency and reducing the operation burden of a CPU.)

一种通过修改查找关键字提高组播转发效率的方法

技术领域

本发明涉及数据通信领域,尤其涉及以太网数据通信领域,具体涉及通过修改查找关键字提高组播转发效率的方法。

背景技术

以太网IP数据通信中的三层转发传统技术一般分为单播(Unicast)和广播(Broadcast)。对于单播通信,信息源为每个需要信息的主机都发送一份独立的报文。对于广播通信,信息源将信息发送给该网段中的所有主机,而不管其是否需要该信息。

如果要将数据从一台主机发送给多个主机而非所有主机,可以采用广播方式,也可以由源主机采用单播方式向网络中的多台目标主机发送多份数据。

采用单播方式时,网络中传输的信息量与需要该信息的用户量成正比。当需要该信息的用户数量较大时,信息源需要将多份内容相同的信息发送给不同的用户,这对信息源以及网络带宽都将造成巨大的压力。因此,该传输方式不利于信息的批量发送,只适用于用户稀少的网络。

采用广播方式时,不需要接收信息的主机也将收到该信息,这样不仅信息的安全性得不到保障,而且会造成同一网段中信息泛滥。因此,该传输方式不利于与特定对象进行数据交互,同时会浪费大量的带宽。

由上述可见,传统的单播和广播通信方式不能有效地解决单点发送、多点接收的问题。

组播(Multicast)可以很好的解决点到多点的数据传输,现有技术中,源只发送一份数据,网络中只有需要该数据的主机(目标主机HostA和HostC)可以接收该数据,其他主机(HostB)不能收到该数据。

组播相对单播和广播有如下优势:

相比单播,由于被传递的信息在距信息源尽可能远的网络节点才开始被复制和分发,所以用户的增加不会导致信息源负载的加重以及网络资源消耗的显著增加。

相比广播,由于被传递的信息只会发送给需要该信息的接收者,所以不会造成网络资源的浪费,并能提高信息传输的安全性。

组播适用于任何“点到多点”的数据发布,主要包含以下几方面:

1、多媒体、流媒体的应用。

2、培训、联合作业场合的通信。

3、数据仓库、金融应用(股票)。

IP组播技术在ISP提供的互联网信息服务中已经得到了应用。例如:在线直播、网络电视、远程教育、远程医疗、网络电台和实时视/音频会议等。

三层组播具体技术细节可以参考IETF官方的标准文档RFC4601。

现有的以太网通信设备中,大部分的交换机路由器产品中报文转发都是通过ASIC芯片来完成的。芯片转发报文时需要通过关键字进行查找,比如二层单播通过MAC地址 +VLAN ID去做FDB查找,三层单播通过VRF ID + DIP来做单播路由查找一样,三层组播一般都是使用的 VRF ID + SIP + GIP的查找方式,来进行(S,G)表项的查找。但是组播不同于单播,还需要通过RPF(Reverse Path Forwarding)来检查报文是否是从正确的接口上收到的,以减少路由环路的可能。具体实现这样的RPF检查,主要通过根据报文的SIP(源IP地址)去单播路由表中查找单播路由,然后得到下一跳的出接口。再根据报文实际收到的接口和这个查到的下一跳出接口进行比较,相同则RPF检查成功,否则就是RPF检查失败,证明报文来自不正确的接口,需要丢弃该报文。但由于一些特殊情况(后面会具体阐述),往往这样RPF检查失败的报文需要上送CPU做一些协议处理。因此,传统的实现方案就存在两个最大的弊端:

1、为了做RPF检查,需要额外多进行一次基于SIP的查找,导致转发效率低下。

2、RPF检查失败的报文由于一些原因会被上送至CPU做协议处理,造成CPU的压力增大。当报文转发速率比较高时,CPU占有率就会升高,会影响CPU处理其他正常的业务,相当于也降低了转发效率。

综上所述,传统的三层组播实现方案就会造成上述两个问题,导致设备的转发效率降低。目前数据通信领域中大部分的思科和华为设备也都存在这样的问题。

因此,为进一步提升组播转发效率,需要研发一种通过修改查找关键字提高组播转发效率的方法。

发明内容

本发明克服了现有技术的不足,本发明提出了一种通过修改查找关键字提高组播转发效率的方法,能够使用接口ID作为查找关键字,以此取代传统VRF ID,从而提升组播转发效率,减少CPU的运行负担。

现有技术中存在的问题,对于单播来说,其实也可以做RPF检查,但这个毕竟是可选的,所以单播可以继续使用VRF ID + DIP作为关键字进行单播路由查找。但对于组播来说,RPF检查是必选的。因此,如果选择和单播类似的VRF ID + SIP + GIP作为关键字来进行组播路由查找,就会造成转发效率低下问题。因此,需要摒弃传统的这种查找关键字,取而代之的是新的关键字。经过仔细研究,传统关键字中,SIP和GIP是从报文中直接获取的,这个也是必须的,无法被替换。但VRF ID则并不是直接通过报文获取的,而是通过报文进来的三层入接口关联得到的。每个三层接口绑定的VRF是唯一的,所以通过报文接收到的三层接口去关联到其对应的VRF也是最容易被人想到的。

由于查找的过程中,还需要去做RPF检查,也就是需要用SIP去查单播路由表,得到下一跳的接口,再和当前入接口进行比较,那不如直接使用接口ID作为查找关键字,以此取代传统的VRF ID。也就是说,查找时的关键字从VRF ID + SIP + GIP修改成入接口ID +SIP + GIP,这样上述问题就能得到解决。

但是,RPF检查失败的报文会被上送至CPU做协议处理,造成CPU的压力增大。当报文转发速率比较高时,CPU占有率就会升高,会影响CPU处理其他正常的业务,相当于也降低了转发效率。

为解决上述问题,本发明采用的技术方案为:一种通过修改查找关键字提高组播转发效率的方法,在以太网通信系统中通过三元组进行查找匹配,从而进行组播转发,包括,阶段一,下发入接口三元组的三层组播路由;所述阶段一中,根据VRF ID和SIP以及GIP获取入接口ID和SIP以及GIP,组合成入接口ID+SIP+GIP的三层组播路由,将获取的入接口三元组为三层组播路由下发到芯片;阶段二,获取的入接口三元组的三层组播路由后,收到报文,获取RPF三元组,通过RPF三元组进行三层组播路由的查找,匹配对应,进行组播转发。

本发明一个较佳的实施方案中,所述阶段一中,在软件上提前去根据SIP+VRF ID做一次单播路由查找,得到下一跳信息,得到正确的RPF的入接口ID,入接口ID与SIP以及GIP形成入接口三元组,将所述入接口ID和需要下发的SIP和GIP一起下发到芯片。

本发明一个较佳的实施方案中,阶段二中,入接口ID需要通过报文进来的入端口关联到对应的三层入接口获得,将从报文中提取的SIP+GIP以及通过入端口关联到的对应的三层入接口ID来组成RPF三元组,利用RPF三元组进行三层组播路由的查找,在查找的过程中同步进行RPF检查和匹配,RPF匹配成功,完成三层组播路的查找和转发。

本发明一个较佳的实施方案中,当单播路由发生变化进行RPF检查和匹配,通过单播路由和组播路由的联动更新使RPF检查和匹配成功。

本发明一个较佳的实施方案中,当单播路由发生变化时,系统软件在下发单播路由的同时,需要更新相应的组播路由,即更新入接口ID;在单播路由发生变化的同时,组播路由也能得到更新。

本发明一个较佳的实施方案中,在组播表项下发的时候,直接对出接口发送一次PIM ASSERT报文,在多路网段上收到PIM ASSERT报文的都会进行ASSERT比较,系统默认自己是获胜者,直至收到来自其他设备的ASSERT报文才进行比较;即到组播源的单播路由的优先级更高的获胜,或者到组播源的度量值较小的获胜,都相等时,则IP地址大者获胜;获胜者成为组播流的唯一转发者;通过对PIM ASSERT触发机制的调整,避免靠数据报文通过RPF检查失败上送CPU进而造成的对CPU的冲击;也避免从其他无关接口收到的RPF失败的报文对CPU造成的冲击。

本发明一个较佳的实施方案中,在RPT的情况下下发的接口ID是指向RP的,需要切换成SPT时,能立刻下发指向源的接口ID的表项;其他接口过来的非法报文能直接被丢弃,不冲击CPU;根据芯片数据统计,收到来自源的报文时再去剪枝RPT,芯片中会恢复成只有一条指向源的表项。

现有技术中,以太网通信系统中采用不带有源信息的igmp协议报文的PIM SSM时,由于单播下发路由是靠路由协议的,比如rip、ospf、bgp、isis等等都可以下发单播路由。但组播与单播有所不同,有些情况下组播路由是靠数据触发的。因为IGMPv1和IGMPv2只能收集到用户加入的组信息,并不知道源信息。好比用户在家看视频直播,只会说我要看CCTV-1还是CCTV-2,这个就是单纯的组信息,里面并没有源的信息。所以在仅仅只存在组信息的情况下,无论是PIM DM还是PIM SM,都无法直接建立转发表项。

现有技术中,RPF检查失败上送CPU会有三种上送CPU的情况:情况一,通过默认路由上送CPU的方式;情况二,RPT到SPT切换时上送CPU的方式;情况三,上送CPU触发PIMASSERT机制。现有技术中,因RPF检查失败,采用所述三种上送CPU的方式时,会造成对CPU冲击的问题。

本发明有效解决了现有技术因RPF检查失败上送CPU的三种情况存在的问题。

现有技术中,单播下发路由是靠路由协议的,比如rip、ospf、bgp、isis等等都可以下发单播路由。但组播与单播有所不同,有些情况下组播路由是靠数据触发的。因为IGMPv1和IGMPv2只能收集到用户加入的组信息,并不知道源信息。所以在仅仅只存在组信息的情况下,无论是PIM DM还是PIM SM,都无法直接建立转发表项。必须要等到真正的组播数据流到达的时候,通过默认路由上送CPU,再根据数据中的源信息,才能下发正确的转发表项。

本发明,对默认路由上送CPU进行限流,其他的rpf fail的报文则直接丢弃,以免报文冲击CPU。现有技术中,基于IGMPv3的PIM SSM是可以直接根据IGMPv3信息来创建表项,则无需默认路由。

现有技术中,上送CPU触发PIM ASSERT机制,在标准RFC4601的Sec 4.2.1中指出,PIM SM中,最后一跳路由器加入指向RP的共享树(即RPT)之后,一旦收到来自源的组播报文,就有权将共享树切换成指向源的源树(即SPT)。或者通过设定一定的阈值,当最后一跳路由器收到的组播流量超过设定的阈值时,就会触发这种切换。即最后一跳路由器朝着源的方向发送一个PIM JOIN报文,同时继续转发来自RPT的数据报文。等到来自SPT的报文到达最后一跳路由器时,由于RPF检查失败,会上送CPU,此时系统软件经过判断会得知正在进行RPT向SPT切换,所以软件会触发向RP发送一个PIM PRUNE报文进行剪枝。这个过程中RPF失败的报文会上送CPU,更糟糕的是,这时候就算不是指向RP或者指向源而指向其他错误接口的报文也同样会上CPU,对CPU造成冲击。

本发明,根据芯片数据统计,收到来自源的报文时再去剪枝RPT,芯片中会恢复成只有一条指向源的表项。其他接口过来的非法报文能直接被丢弃,不冲击CPU。有效防止现有技术中RPT到SPT切换时上送CPU,对CPU造成冲击的问题。

本发明,通过对PIM ASSERT触发机制的调整,避免靠数据报文通过RPF检查失败上送CPU进而造成的对CPU的冲击;也避免从其他无关接口收到的RPF失败的报文对CPU造成的冲击。有效防止现有技术中上送CPU触发PIM ASSERT机制中存在上送报文对CPU造成冲击的问题。

本发明解决了背景技术中存在的缺陷,本发明的有益效果:

本发明提供一种通过修改查找关键字提高组播转发效率的方法,能够使用接口ID作为查找关键字,以此取代传统VRF ID,从而提升组播转发效率,减少CPU的运行负担。

本发明通过对组播表项关键字的合理修改,解决了传统组播网络中的两大问题:节省了一次基于源地址的RPF路由查找;避免了数据报文RPF检查失败时对CPU造成的冲击,进而提高了转发效率。

附图说明

下面结合附图和实施例对本发明进一步说明。

图1是本发明中阶段一的系统流程图;

图2是本发明中阶段二的系统流程图。

具体实施方式

现在结合附图和实施例对本发明作进一步详细的说明,这些附图均为简化的示意图,仅以示意方式说明本发明的基本结构,因此其仅显示与本发明有关的构成。

因此,如图1、图2所示,一种通过修改查找关键字提高组播转发效率的方法,在以太网通信系统中通过三元组进行查找匹配,从而进行组播转发,包括,阶段一,下发入接口三元组的三层组播路由;阶段一中,所述阶段一中,在软件上提前去根据SIP+VRF ID做一次单播路由查找,得到下一跳信息,得到正确的RPF的入接口ID,入接口ID与SIP以及GIP形成入接口三元组,将所述入接口ID和需要下发的SIP和GIP一起下发到芯片。

阶段二,获取的入接口三元组的三层组播路由后,收到报文,获取RPF三元组,通过RPF三元组进行三层组播路由的查找,匹配对应,进行组播转发。具体的,在阶段二中,入接口ID需要通过报文进来的入端口关联到对应的三层入接口获得,将从报文中提取的SIP+GIP以及通过入端口关联到的对应的三层入接口ID来组成RPF三元组,利用RPF三元组进行三层组播路由的查找,在查找的过程中同步进行RPF检查和匹配,RPF匹配成功,完成三层组播路的查找和转发。

本发明一个较佳的实施方案中,当单播路由发生变化进行RPF检查和匹配,通过单播路由和组播路由的联动更新,使RPF检查和匹配成功。当单播路由发生变化时,系统软件在下发单播路由的同时,需要更新相应的组播路由,即更新入接口ID;在单播路由发生变化的同时,组播路由也能得到更新。

本发明一个较佳的实施方案中,在组播表项下发的时候,直接对出接口发送一次PIM ASSERT报文,在多路网段上收到PIM ASSERT报文的都会进行ASSERT比较,系统默认自己是获胜者,直到收到来自其他设备的ASSERT报文才进行比较;即到组播源的单播路由的优先级更高的获胜,或者到组播源的度量值较小的获胜,如果都相等,则IP地址大者获胜;获胜者成为组播流的唯一转发者;通过对PIM ASSERT触发机制的调整,避免靠数据报文通过RPF检查失败上送CPU进而造成的对CPU的冲击;也避免从其他无关接口收到的RPF失败的报文对CPU造成的冲击。

本发明一个较佳的实施方案中,在RPT的情况下下发的接口ID是指向RP的,需要切换成SPT时,能立刻下发指向源的接口ID的表项;其他接口过来的非法报文能直接被丢弃,不冲击CPU;根据芯片数据统计,收到来自源的报文时再去剪枝RPT,芯片中会恢复成只有一条指向源的表项。

本发明工作原理:先进入阶段一,在软件上提前去根据SIP+VRF ID做一次单播路由查找,得到下一跳信息,得到正确的RPF的入接口ID,入接口ID与SIP,以及GIP形成入接口三元组,将入接口ID和需要下发的SIP、和GIP一起下发到芯片。

入接口ID+SIP+GIP的三层组播路由下发到芯片后,进入阶段二,入接口ID需要通过报文进来的入端口关联到对应的三层入接口获得,将从报文中提取的SIP+GIP以及通过入端口关联到的对应的三层入接口ID来组成RPF三元组,利用RPF三元组进行三层组播路由的查找,在查找的过程中同步进行RPF检查和匹配,RPF匹配成功,完成三层组播路的查找和转发。

特殊情况下,当单播路由发生变化进行RPF检查和匹配,通过单播路由和组播路由的联动更新使RPF检查和匹配成功。当单播路由发生变化时,系统软件在下发单播路由的同时,需要更新相应的组播路由,即更新入接口ID;在单播路由发生变化的同时,组播路由也能得到更新。

以上依据本发明的理想实施例为启示,通过上述的说明内容,相关人员完全可以在不偏离本项发明技术思想的范围内,进行多样的变更以及修改。本项发明的技术性范围并不局限于说明书上的内容,必须要根据权利要求范围来确定技术性范围。

10页详细技术资料下载
上一篇:一种医用注射器针头装配设备
下一篇:软件定义网络的路由获取方法、装置及存储介质

网友询问留言

已有0条留言

还没有人留言评论。精彩留言会获得点赞!

精彩留言,会给你点赞!