具体实施方式
为了实现本发明目的,本发明实施例提出基于报文所属业务类型多级限速后传输报文的方案,如图2所示,首先接收用户发送的报文,然后确定为每一报文所属业务类型分配的带宽中的空闲带宽;接着判断针对一个报文所属是否足够用来传输报文;最后,在上述报文所属业务类型的空闲带宽量小于门限值时(即不足以传输报文时),从其他业务类型的空闲带宽中选择设定量的带宽来输出所述报文,使得不同的业务独享各自带宽的情况下,当某一业务的报文的带宽不够用时,可以借用其他业务的带宽资源,提高了网络资源的利用率,实现了对于网络业务的高服务质量。
下面结合说明书附图对本发明实施例进行详细描述。
实施例一:
本发明实施例一通过令牌桶方式来说明本发明的具体实现过程。本发明各实施例中涉及的令牌桶可以是多级令牌桶中的任意两级相邻的令牌桶,其中,高一级的令牌桶的填充速率大于低一级的令牌桶的填充速率。每一级令牌桶的填充速率可以根据报文传输的入口带宽设定。例如:当入口带宽为4兆,且用户需要执行三种不同类型的业务时,可以为这三个业务分别分配的带宽都为3兆,在此情况下,当其中两个业务只占用1兆带宽时,第三个业务最多可以占用3兆的带宽资源;如果每个业务占用的带宽资源都超过1兆时,各业务的报文可以根据优先级的高低来占用带宽资源。
如图3所示,为本发明实施例一中报文的传输方法示意图,所述方法包括以下步骤:
步骤101:接收用户发送的报文。
在本步骤中,根据接收到的报文所属的业务类型确定对应的第一级令牌桶,以及与该第一级令牌桶相邻的高一级的第二级令牌桶。第一级令牌桶对一个用户发送的属于一个业务类型的报文进行限速,第二级令牌桶对同一用户发送的属于多个业务类型的报文进行限速。
例如:用户的业务类型有4种,则每种业务类型对应一个第一级令牌桶,这4种业务类型对应的4个第一级令牌桶可以有一个共同的第二级令牌桶,也可以是其中2个第一级令牌桶有一个共同的第二级令牌桶,另外2个第一级令牌桶对应另一个第二级令牌桶。
在本步骤中,还可以根据接收到的报文所属业务确定报文的优先级。例如:可以为实时性要求较高的语音通话业务的报文设定较高的优先级,为上网和网络电视等业务的报文设定较低的优先级。
步骤102:确定报文所属业务的类型对应的第一级令牌桶中的可用令牌数。
本步骤的具体执行过程如下:
第一步:确定所述报文所属业务的类型对应的第一级令牌桶的第一级填充速率(即第一级限速值CIR)和第一级令牌桶能够填充的最大令牌数。(即第一级令牌桶深度CBS)。
第二步:确定当前接收所述报文与上一次接收相同业务类型的报文的时间差值,将所述时间差值和第一级填充速率相乘,并将得到的乘积值与第一级令牌桶中剩余的令牌数相加。
本步骤相加之后得到的和值是:前后报文达到时间内填充的令牌数以及对上一次的报文处理之后第一级令牌桶中剩余的令牌数之和。
第三步:将第二步中得到的和值与第一级令牌桶能够填充的最大令牌数进行比较。
由于第一级令牌桶中的可用令牌数不能够超出第一级令牌桶能够填充的最大令牌数(第二步中计算的和值如果超出第一级令牌桶能够填充的最大令牌数,则超出部分将会溢出),因此,需要将第二步中计算得到的和值与第一级令牌桶能够填充的最大令牌数进行比较。
第四步:如果第二步得到的和值不大于第一级令牌桶能够填充的最大令牌数,则将第二步得到的和值作为第一级令牌桶中的可用令牌数;否则,直接将第一级令牌桶能够填充的最大令牌数作为第一级令牌桶中的可用令牌数。
步骤103:判断报文的长度是否不大于所述第一级令牌桶中的可用令牌数,若是,则执行步骤104;否则,丢弃所述报文。
在本实施例一的方案中,第一令牌桶的第一级填充速率和能够填充的最大令牌数是根据报文所属的业务类型确定的,也就是说,本步骤是对报文进行单令牌桶的限速,使报文能够在所属业务独享的带宽内进行传输。特殊地,为了使某些业务的带宽处于空闲状态时,其他业务的报文可以使用空闲状态的带宽,可以将第一级填充速率设置得小于第二级填充速率,但第一级填充速率接近第二级填充速率。
步骤104:判断报文的优先级是否达到设定的优先级,若是,则执行步骤105;否则,执行步骤110。
在本实施例一的方案中,根据报文所属业务的类型为报文分配优先级,将达到设定的优先级的报文作为高优先级的报文,未达到设定的优先级的报文作为低优先级的报文。
本步骤不是实现本发明实施例的必要步骤,本实施例方案也不限于针对任意优先级的报文,在该报文所属业务的带宽不够用时,借用为该用户的其他业务分配的空闲带宽传输报文的技术方案。通过步骤104的方案,可以区别体现高优先级报文和低优先级报文的不同传输,进一步提高服务质量。
步骤105:确定报文对应的第二级令牌桶中的可用令牌数。
本步骤的具体执行过程如下:
第一步:确定第二级令牌桶的第二级填充速率(即第二级限速值CIR)和第二级令牌桶能够填充的最大令牌数(即第二级令牌桶深度CBS),其中,所述第二级填充速率大于第一级填充速率。
第二步:确定当前接收所述报文与上一次接收相同业务类型的报文的时间差值,将所述时间差值和第二级填充速率相乘,并将得到的乘积值与第二级令牌桶中剩余的令牌数相加。
第三步:将第二步得到的和值与第二级令牌桶能够填充的最大令牌数进行比较。
第四步:如果第二步得到的和值不大于第二级令牌桶能够填充的最大令牌数,则将第二步得到的和值作为第二级令牌桶中的可用令牌数;否则,将第二级令牌桶能够填充的最大令牌数作为第二级令牌桶中的可用令牌数。
步骤106:将报文的长度与第二级令牌桶中的可用令牌数进行比较,若比较结果为报文的长度大于第二级令牌桶中的可用令牌数,执行步骤107;否则,执行步骤108。
在本步骤中,由于报文的长度既不大于第一级令牌桶中的可用令牌数(即报文所属业务的传输通道未拥塞),又不大于第二级令牌桶中的可用令牌数(即传输多业务报文的传输通道未拥塞),因此,该报文可以正常传输。如果在第二级令牌桶后还有更高一级的第三级令牌桶,则可以跳转至步骤105,确定第三级令牌桶的可用令牌数后对报文长度进行检测,直至报文通过多有级别的限速后正常传输或是被丢弃。
步骤107:判断所述报文的长度是否不大于第二级令牌桶中的可用令牌数与预先设定的令牌数之和,若是,则跳转至步骤108;否则,执行步骤109。
所述预先设定的令牌数可以等于第二级令牌桶中能够填充的最大令牌数,或是等于N倍第二级令牌桶中能够填充的最大令牌数(N大于0)。
在本步骤中,报文所属业务的传输通道可能已经发生拥塞,但为了保证高优先级的报文的业务质量,在第二级令牌桶中额外增加第二级令牌桶中能够填充的最大令牌数,相当于将其他业务的空闲带宽资源借用给当前接收到的报文用于传输,以达到提高网络资源利用率的目的。
在从步骤107跳转至步骤108之前,还可以进一步包括以下步骤:
首先,将当前接收所述报文与上一次接收相同业务类型的报文的时间差值与预先设定的均值填充速率相乘,并将得到的乘积值、第二级令牌桶中剩余的令牌数和第二级令牌桶中能够填充的最大令牌数三者之和与报文的长度进行比较,其中:所述均值填充速率小于第二级填充速率。均值填充速率可以是介于第一级填充速率和第二级填充速率的一个速率值,如果均值填充速率取值较大,则可以减少需要限速的报文数量;如果均值填充速率取值较小,则增加需要限速的报文数量。
然后,当确定报文的长度不大于所述三者之和,则保持所述报文的优先级不改变,并跳转至步骤108;否则,降低所述报文的优先级后跳转至步骤107。
在从步骤107跳转至步骤108之前执行上述步骤,是为了根据当前网络的拥塞情况对报文进行限速。如果当前网络拥塞状态不严重,报文可以以高优先级的状态占用其他业务的带宽进行传输;如果当前网络拥塞状态严重,报文虽然仍占用其他业务的带宽进行传输,但降低该报文的优先级后,该报文可能会延时传输以达到限速的目的,或者在后续需要还需要对该报文进行限速的情况下,利用优先级降低后的条件进行限速。
步骤108:输出所述报文,并跳转至步骤101。
在执行步骤108之后,需要将第一级令牌桶中可用令牌数减去传输的报文的长度,并利用得到的差值更新第一级令牌桶中剩余的令牌数,此时,更新后的第一级令牌桶中剩余的令牌数为0或正整数;以及,将第二级令牌桶中可用令牌数减去传输的报文的长度,并利用得到的差值更新第二级令牌桶中剩余的令牌数,此时,更新后的第二级令牌桶中剩余的令牌数为负数、0或正整数。如果更新后的第二级令牌桶中剩余的令牌数为负数,则表示传输该报文时借用了其他业务的空闲带宽,且得到的负数的绝对值不大于第二级令牌桶能够填充的最大令牌数。
步骤109:丢弃所述报文,并跳转至步骤101。
在执行步骤109之后,由于没有消耗令牌数第一级令牌桶和第二级令牌桶中剩余的令牌数不变。
步骤110:比较报文的长度和第二级令牌桶中的可用令牌数,若报文的长度不大于第二级令牌桶中的可用令牌数时,跳转至步骤108,否则,跳转至步骤109。
本步骤中,确定第二级令牌桶中的可用令牌数的方式与步骤105的方式相同。
对于优先级较低的报文而言,如果报文所属网络的带宽不够用时,不再为其借用其他业务的空闲带宽,而是直接将该报文丢弃。
在从步骤110跳转至步骤108之前,还可以进一步包括以下步骤:
首先,将当前接收所述报文与上一次接收相同业务类型的报文的时间差值与预先设定的均值填充速率相乘,并将得到的乘积值与第二级令牌桶中剩余的令牌数之和与报文的长度进行比较。
然后,在报文的长度不大于乘积值与第二级令牌桶中剩余的令牌数之和时,保持所述报文的优先级不改变;否则,降低所述报文的优先级。
在从步骤110跳转至步骤108之前执行上述步骤,是为了根据当前网络的拥塞情况对报文进行限速。如果当前网络不拥塞,报文可以直接进行传输;如果当前网络可能要出现拥塞,则报文虽然仍可以传输,但需要进一步降低该报文的优先级以达到限速的目的。
通过上述步骤101~步骤110的方案,针对同一用户的不同业务分配独立的带宽,并对不同业务和不同优先级的报文采用多级限速,在接收到的报文所属业务的带宽无法满足该报文的传输时,借用其他业务的空闲带宽来传输接收到的报文,在用户的各业务报文传输不干扰的情况下,提高了网络资源的利用率,为用户提供了较好的服务质量。
实施例二:
本发明实施例二还提供一种与实施例一属于同一发明构思下的报文传输系统,如图4所示,所述系统包括报文接收模块11和控制模块12,其中:报文接收模块11用于接收用户发送的报文;控制模块12用于确定为每一报文所属业务类型分配的带宽中的空闲带宽,在一报文所属业务类型的空闲带宽量小于门限值时,从其他业务类型的空闲带宽中选择设定量的带宽来输出所述报文。
如图5所示,控制模块12具体包括第一可用令牌确定模块101、第一比较模块102、第二可用令牌确定模块103、第二比较模块104、第一执行模块105、输出模块106和丢弃模块107,其中:第一可用令牌确定模块101用于针对多级令牌桶的相邻两级令牌桶中,确定该报文所属业务的类型对应的第一级令牌桶中的可用令牌数;第一比较模块102用于比较所述报文的长度和第一级令牌桶中的可用令牌数;第二可用令牌确定模块103用于在比较结果为报文的长度不大于第一级令牌桶中的可用令牌数时,确定该报文对应的第二级令牌桶中的可用令牌数,其中,所述用户发送的属于多个类型业务的报文都通过第二级令牌桶限速;第二比较模块104用于比较报文的长度和第二级令牌桶中的可用令牌数;第一执行模块105用于在报文的长度不大于第二级令牌桶中的可用令牌数时,触发输出模块106,并在报文的长度大于第二级令牌桶中的可用令牌数时,判断所述报文的长度是否不大于第二级令牌桶中的可用令牌数与预先设定的令牌数之和,若是,则触发输出模块106,否则,触发丢弃模块107;输出模块106用于输出所述报文;丢弃模块107用于丢弃所述报文。
第一可用令牌确定模块101具体用于确定第一级令牌桶的第一级填充速率和第一级令牌桶能够填充的最大令牌数,将当前接收报文与上一次接收相同业务类型的报文的时间差值和第一级填充速率相乘,并将得到的乘积值与第一级令牌桶中剩余的令牌数之和与第一级令牌桶能够填充的最大令牌数进行比较,如果乘积值与第一级令牌桶中剩余的令牌数之和不大于所述第一级令牌桶能够填充的最大令牌数,则将乘积值与第一级令牌桶中剩余的令牌数之和作为第一级令牌桶中的可用令牌数;否则,将第一级令牌桶能够填充的最大令牌数作为第一级令牌桶中的可用令牌数。
第二可用令牌确定模块103具体用于确定第二级令牌桶的第二级填充速率和第二级令牌桶能够填充的最大令牌数,将所述时间差值和第二级填充速率相乘,并将得到的乘积值与第二级令牌桶中剩余的令牌数之和与第二级令牌桶能够填充的最大令牌数进行比较,如果乘积值与第二级令牌桶中剩余的令牌数之和不大于第二级令牌桶能够填充的最大令牌数,则将乘积值与第二级令牌桶中剩余的令牌数之和作为第二级令牌桶中的可用令牌数;否则,将第二级令牌桶能够填充的最大令牌数作为第二级令牌桶中的可用令牌数,其中,所述第二级填充速率大于第一级填充速率。
所述系统还包括优先权确定模块108,用于判断所述报文的优先级是否达到设定优先级,在达到设定优先级时,触发第二可用令牌确定模块103。
所述系统还包括第一优先权调整模块109,用于在第一执行模块105判断报文的长度不大于第二级令牌桶中的可用令牌数与预先设定的令牌数之和时,将所述时间差值与预先设定的均值填充速率相乘,并将得到的乘积值、第二级令牌桶中剩余的令牌数和预先设定的令牌数三者之和与报文的长度进行比较,如果报文的长度不大于所述三者之和,则保持所述报文的优先级不改变;否则,降低所述报文的优先级,其中,所述均值填充速率小于第二级填充速率。
优先权确定模块108还用于在报文的优先级未达到设定优先级时,触发第二执行模块110;第二执行模块110用于比较报文的长度和第二级令牌桶中的可用令牌数,若报文的长度不大于第二级令牌桶中的可用令牌数时触发输出模块106,否则,触发丢弃模块107。
所述系统还包括第二优先权调整模块111,用于在第二执行模块110确定报文的长度不大于第二级令牌桶中的可用令牌数时,将当前接收所述报文与上一次接收相同业务类型的报文的时间差值与预先设定的均值填充速率相乘,并将得到的乘积值与第二级令牌桶中剩余的令牌数之和与报文的长度进行比较,如果报文的长度不大于乘积值与第二级令牌桶中剩余的令牌数之和,则保持所述报文的优先级不改变,否则,降低所述报文的优先级,其中:所述时间差值与预先设定的均值填充速率相乘得到的乘积值小于第二级令牌桶中的可用令牌数。
本领域内的技术人员应明白,本申请的实施例可提供为方法、系统、或计算机程序产品。因此,本申请可采用完全硬件实施例、完全软件实施例、或结合软件和硬件方面的实施例的形式。而且,本申请可采用在一个或多个其中包含有计算机可用程序代码的计算机可用存储介质(包括但不限于磁盘存储器、CD-ROM、光学存储器等)上实施的计算机程序产品的形式。
本申请是参照根据本申请实施例的方法、设备(系统)、和计算机程序产品的流程图和/或方框图来描述的。应理解可由计算机程序指令实现流程图和/或方框图中的每一流程和/或方框、以及流程图和/或方框图中的流程和/或方框的结合。可提供这些计算机程序指令到通用计算机、专用计算机、嵌入式处理机或其他可编程数据处理设备的处理器以产生一个机器,使得通过计算机或其他可编程数据处理设备的处理器执行的指令产生用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的装置。
这些计算机程序指令也可存储在能引导计算机或其他可编程数据处理设备以特定方式工作的计算机可读存储器中,使得存储在该计算机可读存储器中的指令产生包括指令装置的制造品,该指令装置实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能。
这些计算机程序指令也可装载到计算机或其他可编程数据处理设备上,使得在计算机或其他可编程设备上执行一系列操作步骤以产生计算机实现的处理,从而在计算机或其他可编程设备上执行的指令提供用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的步骤。
尽管已描述了本申请的优选实施例,但本领域内的技术人员一旦得知了基本创造性概念,则可对这些实施例做出另外的变更和修改。所以,所附权利要求意欲解释为包括优选实施例以及落入本申请范围的所有变更和修改。
显然,本领域的技术人员可以对本发明进行各种改动和变型而不脱离本发明的精神和范围。这样,倘若本发明的这些修改和变型属于本发明权利要求及其等同技术的范围之内,则本发明也意图包含这些改动和变型在内。