一种报文流量的监管方法、装置及移动通信网关与流程

文档序号:12623620阅读:381来源:国知局
一种报文流量的监管方法、装置及移动通信网关与流程

本发明涉及通讯领域,特别是涉及一种报文流量的监管方法、装置及移动通信网关。



背景技术:

随着移动互联网的快速发展,数据流量逐渐增大,很大程度上加重了网络的拥塞。流量整形是一种限制速率与突发的有效方式,使得报文能够以比较均匀的速度向外传送。流量整形通常采用缓冲区和令牌桶算法结合来完成。最常用的令牌桶算法,就是由RFC2697和RFC2698分别定义的srTCM(单速率三色着色法)和trTCM(双速率三色着色法)两种标准算法。

传统的RFC2698算法如果想要容忍偶发大包通过,则只能将CBS以及PBS配置超过最大包长,但这样的设置对于绝大多数应用中的小包是不合理的,会造成突发流量过大,造成网络延时;同时,对于整形,CBS/PBS不能配置过大,否则就起不到整形效果,这时候大包问题就更为突出。



技术实现要素:

本发明提供一种报文流量的监管方法、装置及移动通信网关,用以解决现有技术的RFC2698算法要容忍偶发大包通过,只能将CBS以及PBS配置超过最大包长,但这样的设置对于绝大多数应用中的小包是不合理的,会造成突发流量过大,造成网络延时的问题。

为解决上述技术问题,一方面,本发明提供一种报文流量的监管方法,包括:设置第一令牌桶及其对应的令牌桶容量,其中,所述第一令牌桶的容量大 于或等于预配置的第二令牌桶容量,所述第二令牌桶容量大于或等于预配置的第三令牌桶容量;根据接收到的报文的长度,从上述三个令牌桶中确定一个令牌桶来处理所述接收到的报文,以监管报文的发送情况。

进一步,根据接收到的报文的长度,从上述三个令牌桶中确定一个令牌桶来处理所述接收到的报文包括:确定所述接收到的报文的长度是否超过所述第二令牌桶的容量;如果是,则通过所述第一令牌桶处理所述接收到的报文;如果不是,则通过所述第二令牌桶或所述第三令牌桶处理所述接收到的报文。

进一步,通过所述第一令牌桶处理所述接收到的报文包括:确定所述接收到的报文的长度是否超过所述第一令牌桶中令牌数量;在超过的情况下,向所述第一令牌桶中添加预定数量的令牌,并继续确定所述接收到的报文的长度是否超过当前的令牌数量,并在添加预定次数的令牌后,所述接收到的报文的长度仍超过当前令牌数量的情况下,丢弃或缓存所述接收到的报文;在所述接收到的报文的长度未超过当前的令牌数量的情况下,从所述第一令牌通中取令牌以通过报文。

进一步,通过所述第二令牌桶或所述第三令牌桶处理所述接收到的报文包括:确定所述接收到的报文的长度是否超过所述第二令牌桶中令牌数量;如果是,则向所述第二令牌桶中添加预定数量的令牌,继续确定所述接收到的报文的长度是否超过当前的令牌数量,并在添加预定次数的令牌后,所述接收到的报文的长度仍超过当前令牌数量的情况下,丢弃或缓存所述接收到的报文;如果不是,则继续确定所述接收到的报文的长度是否超过所述第三令牌桶中令牌数量,并在超过的情况下,从所述第二令牌桶中取令牌以通过报文,在未超过的情况下,从所述第三令牌桶中取令牌以通过报文。

进一步,在确定一个令牌桶来处理所述接收到的报文之后,还包括:为所述接收到的报文进行标记。

另一方面,本发明还提供一种报文流量的监管装置,包括:设置模块,用于设置第一令牌桶及其对应的令牌桶容量,其中,所述第一令牌桶的容量大于 或等于预配置的第二令牌桶容量,所述第二令牌桶容量大于或等于预配置的第三令牌桶容量;确定模块,用于根据接收到的报文的长度,从上述三个令牌桶中确定一个令牌桶来处理所述接收到的报文,以监管报文的发送情况。

进一步,所述确定模块包括:确定单元,用于确定所述接收到的报文的长度是否超过所述第二令牌桶的容量;第一执行单元,用于在所述接收到的报文的长度超过所述第二令牌桶的容量的情况下,通过所述第一令牌桶处理所述接收到的报文;第二执行单元,用于在所述接收到的报文的长度超过所述第二令牌桶的容量的情况下,通过所述第二令牌桶或所述第三令牌桶处理所述接收到的报文。

进一步,所述第一执行单元,还用于确定所述接收到的报文的长度是否超过所述第一令牌桶中令牌数量;在超过的情况下,向所述第一令牌桶中添加预定数量的令牌,并继续确定所述接收到的报文的长度是否超过当前的令牌数量,并在添加预定次数的令牌后,所述接收到的报文的长度仍超过当前令牌数量的情况下,丢弃或缓存所述接收到的报文;在所述接收到的报文的长度未超过当前的令牌数量的情况下,从所述第一令牌通中取令牌以通过报文。

进一步,所述第二执行单元,还用于确定所述接收到的报文的长度是否超过所述第二令牌桶中令牌数量;如果是,则向所述第二令牌桶中添加预定数量的令牌,继续确定所述接收到的报文的长度是否超过当前的令牌数量,并在添加预定次数的令牌后,所述接收到的报文的长度仍超过当前令牌数量的情况下,丢弃或缓存所述接收到的报文;如果不是,则继续确定所述接收到的报文的长度是否超过所述第三令牌桶中令牌数量,并在超过的情况下,从所述第二令牌桶中取令牌以通过报文,在未超过的情况下,从所述第三令牌桶中取令牌以通过报文。

又一方面,本发明还提供一种移动通信网关,包括:上述任一项的报文流量的监管装置。

本发明相对于现有技术而言,多设置了一个令牌桶,将该令牌桶的容量设 置为最大,在有报文要通过时,根据报文长度选择令牌桶,则在有长度较大的报文时,通过大容量的第一令牌桶来处理,该方法能够兼顾整形和监管的两种功能,解决现有技术的RFC2698算法要容忍偶发大包通过,只能将CBS以及PBS配置超过最大包长,但这样的设置对于绝大多数应用中的小包是不合理的,会造成突发流量过大,造成网络延时的问题。

附图说明

图1是本发明实施例中报文流量的监管方法的流程图;

图2是本发明实施例中报文流量的监管装置的结构示意图;

图3是本发明实施例中报文流量的监管装置确定模块的结构示意图;

图4是本发明优选实施例中报文流量的监管方法的流程图。

具体实施方式

为了解决现有技术的RFC2698算法要容忍偶发大包通过,只能将CBS以及PBS配置超过最大包长,但这样的设置对于绝大多数应用中的小包是不合理的,会造成突发流量过大,造成网络延时的问题,本发明提供了一种报文流量的监管方法、装置及移动通信网关,以下结合附图以及实施例,对本发明进行进一步详细说明。应当理解,此处所描述的具体实施例仅仅用以解释本发明,并不限定本发明。

本发明实施例提供一种报文流量的监管方法,该方法的流程如图1所示,包括步骤S102至S104:

S102,设置第一令牌桶及其对应的令牌桶容量,其中,第一令牌桶的容量大于或等于预配置的第二令牌桶容量,第二令牌桶容量大于或等于预配置的第三令牌桶容量。在实现时,由于本发明实施例是针对现有技术存在问题进行的改进,因此,上述预设置的第二令牌桶可以使P桶,其容量为PBS,上述预设置的第三令牌桶可以使C桶,其容量为CBS,则第一令牌桶可以称之为G桶, 其容量可以设置为GBS。

S104,根据接收到的报文的长度,从上述三个令牌桶中确定一个令牌桶来处理接收到的报文,以监管报文的发送情况。

本发明实施例相对于现有技术而言,多设置了一个令牌桶,将该令牌桶的容量设置为最大,在有报文要通过时,根据报文长度选择令牌桶,则在有长度较大的报文时,通过大容量的第一令牌桶来处理,该方法能够兼顾整形和监管的两种功能,解决现有技术的RFC2698算法要容忍偶发大包通过,只能将CBS以及PBS配置超过最大包长,但这样的设置对于绝大多数应用中的小包是不合理的,会造成突发流量过大,造成网络延时的问题。

具体的,根据接收到的报文的长度,从上述三个令牌桶中确定一个令牌桶来处理接收到的报文的过程可以如下,包括:确定接收到的报文的长度是否超过第二令牌桶的容量,由于第二令牌桶和第三令牌桶存在容量相等的情况,因此,在容量相等时,也可以与第三令牌桶进行比较,但通常情况下都是第二令牌桶的容量大于第三令牌桶的容量,因此,本实施例中以第二令牌桶作为比较基础。如果接收到的报文的长度超过第二令牌桶的容量,则说明此时接收到的报文很可能是数据大包,因此通过第一令牌桶处理接收到的报文;如果接收到的报文的长度没有超过第二令牌桶的容量,则说明该报文的长度在正常处理范围内,不属于数据大包,因此,可以通过第二令牌桶或第三令牌桶处理接收到的报文。

如果通过第一令牌桶处理接收到的报文,需要确定接收到的报文的长度是否超过第一令牌桶中令牌数量。在正常情况下,第一令牌桶中存放的令牌数应该是要比第一令牌桶容量小,因此,是将报文长度与令牌桶中的令牌数量进行比较。

在报文的长度超过第一令牌桶中令牌数量的情况下,向第一令牌桶中添加预定数量的令牌,并继续确定接收到的报文的长度是否超过当前的令牌数量;如果报文的长度还是超过当前令牌数量,再继续添加令牌。在添加预定次数的 令牌之后后,如果接收到的报文的长度仍超过当前令牌数量的情况下,说明报文过长,则丢弃或缓存接收到的报文。在接收到的报文的长度未超过当前的令牌数量的情况下,从第一令牌通中取令牌以通过报文。在上述过程中,预定数量和预定次数都可以根据本领域技术人员的经验或需求等来进行设置。

如果通过第二令牌桶或第三令牌桶处理接收到的报文,则还要确定具体使用哪一个令牌桶,则需要确定接收到的报文的长度是否超过第二令牌桶中令牌数量;

如果超过第二令牌桶中令牌数量,则向第二令牌桶中添加预定数量的令牌,继续确定接收到的报文的长度是否超过当前的令牌数量,并在添加预定次数的令牌后,接收到的报文的长度仍超过当前令牌数量的情况下,丢弃或缓存接收到的报文,上述过程与第一令牌桶中的处理过程相似。

如果没有超过第二令牌桶中令牌数量,则此时存在两种情况,一种是该报文长度较短,可以由第三令牌桶去处理,还有一种情况就是第二令牌桶当前的令牌比较多。基于上述考虑,可以继续确定接收到的报文的长度是否超过第三令牌桶中令牌数量,如果超过了,则说明需要第二令牌桶处理该报文,则从第二令牌桶中取令牌以通过报文,如果未超过,则说明由第三令牌桶处理就可以满足需求,则从第三令牌桶中取令牌以通过报文。

具体实现时,在确定一个令牌桶来处理接收到的报文之后,都可以按照现有标识过程进行处理,即为接收到的报文进行标记,例如,在确定接收到的报文的长度超过第二令牌桶的容量时(即确认需要第一令牌桶处理的情况下),将接收到的报文标记为红色。

本发明实施例还提供了一种报文流量的监管装置,该装置的结构示意如图2所示,包括:设置模块10,用于设置第一令牌桶及其对应的令牌桶容量,其中,第一令牌桶的容量大于或等于预配置的第二令牌桶容量,第二令牌桶容量大于或等于预配置的第三令牌桶容量;确定模块20,与设置模块10耦合,用于根据接收到的报文的长度,从上述三个令牌桶中确定一个令牌桶来处理接收 到的报文,以监管报文的发送情况。

图3示出了确定模块20的结构示意图,确定模块20可以包括:确定单元201,用于确定接收到的报文的长度是否超过第二令牌桶的容量;第一执行单元202,与确定单元201耦合,用于在接收到的报文的长度超过第二令牌桶的容量的情况下,通过第一令牌桶处理接收到的报文;第二执行单元203,与确定单元201耦合,用于在接收到的报文的长度超过第二令牌桶的容量的情况下,通过第二令牌桶或第三令牌桶处理接收到的报文。

进一步,第一执行单元,还用于确定接收到的报文的长度是否超过第一令牌桶中令牌数量;在超过的情况下,向第一令牌桶中添加预定数量的令牌,并继续确定接收到的报文的长度是否超过当前的令牌数量,并在添加预定次数的令牌后,接收到的报文的长度仍超过当前令牌数量的情况下,丢弃或缓存接收到的报文;在接收到的报文的长度未超过当前的令牌数量的情况下,从第一令牌通中取令牌以通过报文。

第二执行单元,还用于确定接收到的报文的长度是否超过第二令牌桶中令牌数量;如果是,则向第二令牌桶中添加预定数量的令牌,继续确定接收到的报文的长度是否超过当前的令牌数量,并在添加预定次数的令牌后,接收到的报文的长度仍超过当前令牌数量的情况下,丢弃或缓存接收到的报文;如果不是,则继续确定接收到的报文的长度是否超过第三令牌桶中令牌数量,并在超过的情况下,从第二令牌桶中取令牌以通过报文,在未超过的情况下,从第三令牌桶中取令牌以通过报文。

本发明实施例还提供了一种移动通信网关,该网关可以包括上述的报文流量的监管装置。本领域技术人员根据上述实施例的记载,知晓如何将上述装置设置在移动通信网关中,此处不再赘述。

优选实施例

本发明实施例提出一种报文流量的监管方法,其是对传统trTCM(双速率三色着色法)中RFC2698算法的改进方法,旨在提高流量监管和整形效果, 避免突发流量过大等。本发明实施例在现有的算法中增加一个G桶(大包专用桶)。下面对即将用到的各英文缩写含义进行解释说明,

CBS表示令牌桶C桶的大小,可配置;CIR表示往令牌桶C桶中投放令牌的速率,也就是报文平均通过的速率,可配置;PBS表示令牌桶P桶的大小,可配置;PIR表示往令牌桶P桶中投放令牌的速率,也就是报文的最大通过速率,可配置,但PIR必须等于或大于CIR;GBS表示令牌桶G桶的大小,可配置,必须等于或大于之前配置的CBS和PBS,GBS设置时最好设置为大于等于数据流中可能的最大IP报文;GIR表示往令牌桶P桶中投放令牌的速率,可配置。

用户可以配置以上几个参数,与传统trTCM算法不同,CBS/PBS可配置小于最大包长,对于单包长度超过CBS/PBS的大包,直接从G桶中取令牌。G桶同时用单独的大包速率GIR注入令牌。配置较小的CBS/PBS,对于绝大多数的小包更加合理,避免突发流量过大以及提高整形效果;改进后大包小包走不同的桶,互不影响。

下面结合附图对本发明实施作进一步说明。如图4所示,包括步骤S401至S420。

S401,接收报文后,判断报文的长度是否超过用户配置的CBS/PBS。如果是,则进入S402,否则进入S409。

S402,将报文标记为红色。

S403,判断报文长度是否超过G桶已有令牌数。如果是则进入S404,否则,执行S407。

S404,添加令牌。

S405,再次判断报文长度是否超过当前令牌桶中的令牌数量。如果是,则执行S406,否则执行S408。

S406,缓存或丢弃报文。

S407,从G桶中取令牌。

S408,通过报文。

S409,判断报文长度是否超过P桶令牌数。如果是,则进入S410,否则进入S415。

S410,将报文标记为红色。

S411,添加令牌。

S412,再次判断报文长度是否超过当前令牌桶中的令牌数量。如果是,则执行S413,否则执行S414。

S413,缓存或丢弃报文。

S414,通过报文。

S415,判断报文长度是否超过C桶已有的令牌数。如果是,则执行S416,否则执行S418。

S416,标报文标记为黄色。

S417,从P桶中取令牌。执行S420。

S418,标报文标记为绿色。

S419,从C桶中取令牌。

S420,通过报文。

其中,上述S410至S414的过程与S402至S408过程类似,都是添加令牌和取令牌的过程,只是在不同的桶内执行。

本发明实施例改进后的配置对大多数应用中的小包更加合理,配置较小的CBS/PBS能够避免突发流量过大,造成网络延时,同时,对于整形,CBS/PBS不能太大,否则就不能起到整形效果了,本发明实施例的改进解决了以上的问题。

尽管为示例目的,已经公开了本发明的优选实施例,本领域的技术人员将意识到各种改进、增加和取代也是可能的,因此,本发明的范围应当不限于上述实施例。

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