一种组播报文转发方法及装置与流程

文档序号:16734237发布日期:2019-01-28 12:30阅读:377来源:国知局
一种组播报文转发方法及装置与流程

本公开涉及通信技术领域,尤其涉及一种组播报文转发方法及装置。



背景技术:

在现有的组播业务网络中,终端通常会有大量不同组播组的地址需要从服务器接收组播流量,当终端在路由器上注册后,可以通过路由器逐跳向服务器发送pim(protocolindependentmulticast,协议无关组播)join/prune(加入/剪裁)报文。

mtu(maximumtransmissionunit,最大传输单元)是指一种通信协议的某一层上面所能通过的最大数据包大小,mtu以字节为单位。



技术实现要素:

有鉴于此,本公开提供一种组播报文转发方法及装置来解决现有技术中过大分片导致组播报文转发不通的问题。

具体地,本公开是通过如下技术方案实现的:

本公开提供一种组播报文转发方法,所述方法应用于路由设备,所述方法包括:

获取组播网络中路由设备的最小接口mtu;

将所述最小接口mtu设置为组播mtu;

根据所述组播mtu组装组播协议报文,在组播网络中组播所述组播协议报文。

基于相同的构思,本公开还提供一种组播报文转发装置,所述装置应用于路由设备,所述装置包括:

获取单元,用于获取组播网络中路由设备的最小接口mtu;

设置单元,将所述最小接口mtu设置为组播mtu;

组装单元,用于根据所述组播mtu组装组播协议报文,在组播网络中组播所述组播协议报文。

基于相同的构思,本公开还提供一种计算机可读存储介质,所述计算机可读存储介质内存储有计算机程序,所述计算机程序被处理器执行时实现路由计算方法的任一步骤。

基于相同的构思,本公开还提供一种计算机设备,所述计算机设备包括存储器、处理器、通信接口以及通信总线;其中,所述存储器、处理器、通信接口通过所述通信总线进行相互间的通信;

所述存储器,用于存放计算机程序;

所述处理器,用于执行所述存储器上所存放的计算机程序,所述处理器执行所述计算机程序时实现路由计算方法的任一步骤。

由此可见,本公开可以使路由设备获取组播网络中路由设备的最小接口mtu,并将所述最小接口mtu设置为组播mtu,然后根据所述组播mtu组装组播协议报文,在组播网络中组播所述组播协议报文。相比于现有技术,本公开可以通过按照组播网络中最小接口mtu组装组播协议报文,控制组播协议报文长度,使组播协议报文不分片,因此可以避免路由设备因分片模块繁忙导致的报文重组失败的情况,解决组播业务流量中断的问题,从而提升了组播网络的稳定性。

附图说明

图1是本公开一种示例性实施方式中的一种组播报文转发方法的处理流程图;

图2是本公开一种示例性实施方式中的组播网络示意图;

图3是本公开一种示例性实施方式中的组播报文交互流程图;

图4本公开一种示例性实施方式中的组播报文转发装置的逻辑结构图;

图5本公开一种示例性实施方式中的一种网络设备的逻辑结构图。

具体实施方式

由于终端通常加入的组较多,终端发送的pimjoin/prune报文会被路由器分片发送给下一跳的路由器;下一跳的路由器收到这些分片的pimjoin/prune报文后,需要进行重组。此时,如果该下一跳的路由器上的分片模块繁忙,无法及时进行重组处理时,会导致pimjoin/prune报文重组失败,最终导致组播业务流量中断,造成重大影响。

为了解决现有技术存在的问题,本公开提供一种组播报文转发方法及装置,可以使路由设备获取组播网络中路由设备的最小接口mtu,并将所述最小接口mtu设置为组播mtu,然后根据所述组播mtu组装组播协议报文,在组播网络中组播该组播协议报文。相比于现有技术,本公开可以通过按照组播网络中最小接口mtu组装组播协议报文,控制组播协议报文长度,使组播协议报文不分片,因此可以避免路由设备因分片模块繁忙导致的报文重组失败的情况,解决组播业务流量中断的问题,从而提升了组播网络的稳定性。

请参考图1,是本公开一种示例性实施方式中的一种组播报文转发方法的处理流程图,所述方法应用于路由设备,所述方法包括:

步骤101、获取组播网络中路由设备的最小接口mtu;

在本实施例中,组播网络中的路由设备可以通过与邻居进行报文交互,获取组播网络中的全部路由设备的最小接口mtu这个参数的大小通常与网络设备的通信接口性能有关。在组播网络中通常部署了多台路由设备,每个路由设备的接口mtu不尽相同,本实施例可以通过邻居路由设备之间的交互学习到该组播网络的全部的路由设备中的最小接口mtu。

具体来讲,作为一个实施例,路由设备可以接收邻居路由设备发送的第一pimhello(pim问好)报文,该第一pimhello报文中携带接口mtu,该接口mtu是该邻居设备认为的最小接口mtu。

在可选的实施例中,可以通过在pimhello报文中新增一种option(选项)字段,用于协商发送组播协议报文的最大报文长度,具体来讲,该option字段中具体可以包括:

optiontype(选项类型),用于表示optionvalue(选项值)字段对应的选项类型;

optionlength(选项长度),用于表示optionvalue字段的长度;

optionvalue,用于表示选项具体值,长度为optionlength。

在本实施例中,optionvalue携带该路由设备发送第一pimhello报文接口的接口mtu,该接口mtu是与从其他(除了当前路由设备发送的第二pimhello报文以外)pimhello报文中学习到的最小接口mtu,该最小接口mtu决定了组播网络中路由设备转发报文的最大报文长度。

作为一个实施例,本路由设备可以解析所述第一pimhello报文中的指定字段,例如上述option字段,从从所述指定字段中获取所述邻居设备的接口mtu。

在本实施例中,当本路由设备获取了第一pimhello报文中携带的邻居设备的接口mtu;可以进一步判断自身的接口mtu是否大于所述邻居设备的接口mtu;若是,则说明自身的接口mtu不是组播网络中的最小接口mtu,因此可以确定所述邻居设备的接口mtu为最小接口mtu,并发送第二pimhello报文,所述第二pimhello报文携带所述最小接口mtu,以使本路由设备的邻居设备根据第二pimhello报文学习组播网络中的最小接口mtu;若否,则说明第一pimhello报文中的接口mtu不是最小接口mtu,并认为自身的接口mtu为当前学习到的最小接口mtu,因此本路由设备可以向邻居设备发送第三pimhello报文,所述第三pimhello报文携带自身的接口mtu,以使邻居设备根据第三pimhello报文中携带的接口mtu进一步识别组播网络中的最小接口mtu。

步骤102、将所述最小接口mtu设置为组播mtu;

在本实施例中,当路由设备确定了当前组播网络中全部路由设备中的最小接口mtu时,可以将该最小接口mtu设置为组播mtu。

步骤103、根据所述组播mtu组装组播协议报文,在组播网络中组播所述组播协议报文。

在本实施例中,本路由设备可以根据上述组播mtu组装组播协议报文,在组播网络中组播所述组播协议报文,以使组播协议报文大小满足组播网络中全部的路由设备的接口mtu,从而避免组播协议报文分片的问题。

作为一个实施例,本路由设备可以按照预设时间周期更新组播mtu,举例来讲,可以在获取组播网络中路由设备的最小接口mtu之前,先判断是否到达预设时间周期,若是,则在当前时间周期内获取组播网络中路由设备的最小接口mtu。具体来讲,本路由设备在当前时间周期内接收第一pimhello报文后,判断自身的接口mtu是否大于所述邻居设备的接口mtu;若是,则确定所述邻居设备的接口mtu为最小接口mtu,并在当前时间周期发送携带所述最小接口mtu的第二pimhello报文;若否,则在当前时间周期发送携带自身的接口mtu的第三pimhello报文。因此可以通过按时间周期获取组播网络中最小接口mtu,来动态设置组播协议报文发包长度,从而避免报文分片的问题。

相比于现有技术,本发明可以通过邻居之间交互pimhello报文来协商发送组播协议报文的最大报文长度,从而避免组播协议报文超过接口mtu而产生分片及重组过程,进而解决因分片重组过程导致的业务中断问题。

为使本公开的目的、技术方案及优点更加清楚明白,下面基于图2的组播网络结构,通过图3的组播报文交互流程对本公开的方案作进一步地详细说明。

请参考图2,为组播网络结构示意图,终端通过组播网络接收服务器发送的组播报文。在组播网络建立过程中,路由设备a1、路由设备a2、路由设备a3、路由设备a4和路由设备a5可以记录的组播mtu缺省为接口mtu,路由设备周期性的向路由设备的邻居设备发送pimhello报文,该pimhello报文携带option字段,其中填充pimintfmtu(最小接口mtu)值为路由设备发送pimhello报文的接口上的接口mtu。

下面以一个时间周期内路由设备a1和路由设备a2、路由设备a3之间的交互过程为例,对组播报文的转发方法进行详细说明。

请参见图3,是本公开的实施例中路由设备的交互流程图,其中包括:

步骤301、在当前时间周期内组播网路由设备a1、a2、a3周期性的向邻居设备发送pimhello报文,分别携带的pimintfmtu值为自身发包接口的接口mtu,假设路由设备a1、a2、a3的接口mtu分别是a1、a2、a3,假设a2<a1<a3;

步骤302、当路由设备a1接收邻居设备a2发送的pimhello报文后,解析pimhello报文中的pimintfmtu字段,得到接口mtu为a2,将该接口mtu(a2)与本路由设备a1记录的接口mtu(a1)比较;

步骤303、由于a2<a1,则本路由设备a1将a2更新为最小接口mtu,设置为自身记录的组播_mtu,并且在当前时间周期内,再次发送pimhello报文,其中携带的pimintfmtu字段中的接口mtu值为a2;

步骤304、当路由设备a2接收邻居设备a1发送的pimhello报文后,解析pimhello报文中的pimintfmtu字段,得到接口mtu为a1,然后将该接口mtu(a1)与本路由设备a2记录的接口mtu(a2)比较,由于a2<a1,因此路由设备a2不用更新本地的接口mtu;

步骤305、当路由设备a3接收邻居设备a2发送的pimhello报文后,解析pimhello报文中的pimintfmtu字段,得到接口mtu为a2,将该接口mtu(a2)与本路由设备a3记录的接口mtu(a3)比较;

步骤306、由于a2<a3,则本路由设备a3将a2更新为最小接口mtu,设置为组播_mtu,并且在当前时间周期内,再次发送pimhello报文,其中携带的pimintfmtu字段中的接口mtu值为a2;

步骤307、当路由设备a2接收邻居设备a3发送的pimhello报文后,解析pimhello报文中的pimintfmtu字段,得到接口mtu为a3,然后将该接口mtu(a3)与本路由设备a2记录的接口mtu(a2)比较,由于a2<a3,因此路由设备a2不用更新本地的接口mtu;

当前周期比较结束后,所有组播路由设备最终会学习到整个网络中的最小接口mtu(a2),将该最小接口mtu设置为组播mtu。在发送pimjoin/prune报文时,按照组播mtu来组装pimjoin/prune报文,以确保pimjoin/prune报文不被分片。后续时间周期若最小接口mtu发生改变,则路由设备通过学习最小接口mtu来动态调整pimjoin/prune报文长度,以适应当前网络环境。

上述实施例仅以路由设备a1、a2、a3之间的交互为例进行说明,其他路由设备之间的交互与上述过程相似,此处不再赘述。

基于相同的构思,本公开还提供一种路由计算装置,该装置可以通过软件实现,也可以通过硬件或者软硬件结合的方式实现。以软件实现为例,本公开的路由计算装置作为一个逻辑意义上的装置,是通过其所在装置的cpu将存储器中对应的计算机程序指令读取后运行而成。

请参考图4,是本公开一种示例性实施方式中的一种组播报文转发装置400,所述装置应用于路由设备,从逻辑层面上来看,该装置400的逻辑结构包括:

获取单元401,用于获取组播网络中路由设备的最小接口mtu;

设置单元402,将所述最小接口mtu设置为组播mtu;

组装单元403,用于根据所述组播mtu组装组播协议报文,在组播网络中组播所述组播协议报文。

作为一个实施例,所述获取单元401,包括:

接收子单元4011,用于接收第一pimhello报文,获取所述第一pimhello报文携带的邻居设备的接口mtu;

判断子单元4012,用于判断自身的接口mtu是否大于所述邻居设备的接口mtu;若是,则确定所述邻居设备的接口mtu为最小接口mtu,并发送第二pimhello报文,所述第二pimhello报文携带所述最小接口mtu;若否,则发送第三pimhello报文,所述第三pimhello报文携带自身的接口mtu。

作为一个实施例,所述接收子单元4011,具体用于解析所述第一pimhello报文中的指定字段;从所述指定字段中获取所述邻居设备的接口mtu。

作为一个实施例,所述装置还包括:

判断单元404,用于获取组播网络中路由设备的最小接口mtu之前,判断是否到达预设时间周期,若是,则在当前时间周期内获取组播网络中的最小接口mtu;

所述判断子单元4012,具体用于在当前时间周期内发送第二pimhello报文。

基于相同的构思,本公开还提供一种网络机设备,如图5所示,所述计算机设备包括存储器51、处理器52、通信接口53以及通信总线54;其中,所述存储器51、处理器52、通信接口53通过所述通信总线54进行相互间的通信;

所述存储器51,用于存放计算机程序;

所述处理器52,用于执行所述存储器51上所存放的计算机程序,所述处理器52执行所述计算机程序时实现本公开实施例提供的组播报文转发方法的任一步骤。

本公开还提供一种计算机可读存储介质,其特征在于,所述计算机可读存储介质内存储有计算机程序,所述计算机程序被处理器执行时实现本公开实施例提供的组播报文转发方法的任一步骤。

本说明书中的各个实施例均采用相关的方式描述,各个实施例之间相同相似的部分互相参见即可,每个实施例重点说明的都是与其他实施例的不同之处。尤其,对于网络设备和计算机可读存储介质的实施例而言,由于其基本相似于方法实施例,所以描述的比较简单,相关之处参见方法实施例的部分说明即可。

综上所述,本公开可以使路由设备获取组播网络中路由设备的最小接口mtu,并将所述最小接口mtu设置为组播mtu,然后根据所述组播mtu组装组播协议报文,在组播网络中组播该组播协议报文。相比于现有技术,本公开可以通过按照组播网络中最小接口mtu组装组播协议报文,控制组播协议报文长度,使组播协议报文不分片,因此可以避免路由设备因分片模块繁忙导致的报文重组失败的情况,解决组播业务流量中断的问题,从而提升了组播网络的稳定性。

上述装置中各个单元的功能和作用的实现过程具体详见上述方法中对应步骤的实现过程,在此不再赘述。

对于装置实施例而言,由于其基本对应于方法实施例,所以相关之处参见方法实施例的部分说明即可。以上所描述的装置实施例仅仅是示意性的,其中所述作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部模块来实现本申请方案的目的。本领域普通技术人员在不付出创造性劳动的情况下,即可以理解并实施。

以上所述仅为本发明的较佳实施例而已,并不用以限制本发明,凡在本发明的精神和原则之内,所做的任何修改、等同替换、改进等,均应包含在本发明保护的范围之内。

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