一种基于令牌桶算法的数据传输方法及流量控制装置的制作方法

文档序号:7886527阅读:259来源:国知局
专利名称:一种基于令牌桶算法的数据传输方法及流量控制装置的制作方法
技术领域
本发明属于数据流量控制技术领域,尤其涉及一种基于令牌桶算法的数据传输方法及一种流量控制装置。
背景技术
在当前的网络通信系统中,为了使有限的网络资源能够充分的发挥作用,需要对用户发送的数据流量进行流量控制,即对网络中传送的数据包采用不同的承诺访问速率 (CAR)进行流量控制。目前,CAR 一般采用令牌桶算法来进行流量控制。令牌桶的基本原则包括1、令牌以特定的速率注入令牌桶内,令牌桶的容量是固定的;2、如果令牌桶被令牌填满,则新到达的令牌将被丢弃;3、每个令牌允许数据源将特定数量的数据比特发送到网络中;4、当一个数据报文到达令牌同时,如果令牌桶中令牌数大于或等于数据报文所需的令牌数,则从令牌桶中删除相应数量的令牌,并且发送该数据报文,否则,认为该数据报文在流量限制之外。当数据报文被认定在流量限制之外时,可采用以下三种方式进行处理将该数据报文直接丢弃;将该数据报文排放在队列中,以便当令牌桶中累积了足够多的令牌时再传输;将该数据报文继续发送,但对其进行特殊标记,网络过载的时候将其丢弃。当用户在进行点对点(P2P)下载或者观看视频的过程中,会产生很大的数据流量,极易超过用户购买的带宽,即用户产生的数据流量超过承诺访问速率。此时,流量控制设备会利用令牌桶技术来降低用户占用的带宽,在这个过程中,会导致数据报文被丢弃或者被延迟发送,对于实时性要求较高的应用,会因为其数据报文被丢弃或被延迟发送而降低数据传输的实时性,影响应用的正常使用,从而降低用户体验。

发明内容
有鉴于此,本发明的目的在于提供一种基于令牌桶算法的数据传输方法及一种流量控制装置,在保证流量控制准确性的同时,可以将实时性要求较高的应用所产生的数据报文实时发送,从而提高该应用的实时性,进而提高用户体验。为实现上述目的,本发明提供如下技术方案一种基于令牌桶算法的数据传输方法,包括接收到数据报文后,判断所述数据报文的优先级;当所述数据报文为高优先级数据报文时,发送所述高优先级数据报文,之后确定所述高优先级数据报文所占用的第一令牌数,并利用所述第一令牌数更新所述令牌桶中的令牌总量;当所述数据报文为低优先级数据报文时,确定所述低优先级数据报文所占用的第二令牌数,之后比较所述第二令牌数和当前时刻所述令牌桶的令牌总量,若所述第二令牌数不大于所述当前时刻所述令牌桶的令牌总量,则发送所述低优先级数据报文,并利用所述第二令牌数更新所述令牌桶的令牌总数,否则,按照预设策略处理所述低优先级数据报文。优选的,在上述方法中,所述判断所述数据报文的优先级,包括确定产生所述数据报文的应用;判断所述应用是否属于预设的高优先级应用,若所述应用属于所述高优先级应用,则确定所述数据报文为高优先级数据报文,否则,确定所述数据报文为低优先级数据报文。优选的,在上述方法中,所述判断所述数据报文的优先级,包括提取所述数据报文的特征;判断所述数据报文的特征是否包含于预存的特征库,若所述数据报文的特征包含于所述特征库,则确定所述数据报文为高优先级数据报文,否则,确定所述数据报文为低优先级数据报文。优选的,在上述方法中,所述判断所述数据报文的优先级,包括提取所述数据报文的特征;将所述数据报文的特征与预存的识别引擎进行匹配,若所述数据报文的特征匹配命中,则确定所述数据报文为高优先级数据报文,否则,确定所述数据报文为低优先级数据报文。优选的,在上述方法中,所述数据报文的特征包括单包特征和/或连续包长序列特征。一种流量控制装置,包括令牌桶、优先级判断单元、第一处理单元、第二处理单元和令牌控制单元;所述令牌桶,用于存储令牌;所述优先级判断单元,用于判断接收到的数据报文的优先级;所述第一处理单元,用于发送高优先级数据报文,确定所述高优先级数据报文占用的第一令牌数,并将所述第一令牌数发送至所述令牌控制单元;所述第二处理单元,用于确定低优先级数据报文占用的第二令牌数,在所述第二令牌数不大于当前时刻令牌桶的令牌总量时,发送所述低优先级数据报文、并将所述第二令牌数发送至所述令牌控制单元,在所述第二令牌数大于当前时刻令牌桶的令牌总量时, 按照预设策略处理所述低优先级数据报文;所述令牌控制单元,用于接收所述第一令牌数和第二令牌数,利用所述第一令牌数和第二令牌数更新所述令牌桶的令牌总量,还用于获取所述令牌桶的令牌总量并发送至所述第二处理单元。优选的,在上述流量控制装置中,所述优先级判断单元包括应用确定单元,用于确定产生所述数据报文的应用;第一判断单元,用于判断所述应用是否属于预设的高优先级应用,若是,则确定所述数据报文为高优先级数据报文,否则,确定所述数据报文为低优先级数据报文。优选的,在上述流量控制装置中,所述优先级判断单元包括 特征提取单元,用于提取所述数据报文的特征;
第二判断单元,用于判断所述数据报文的特征是否包含于预存的特征库,若是,则确定所述数据报文为高优先级数据报文,否则,确定所述数据报文为低优先级数据报文。优选的,在上述流量控制装置中,所述优先级判断单元包括特征提取单元,用于提取所述数据报文的特征;第三判断单元,用于判断所述数据报文的特征是否与预存的识别引擎匹配,若匹配,则确定所述数据报文为高优先级数据报文,否则,确定所述数据报文为低优先级数据报文。由此可见,本发明的有益效果为本发明公开的方法中,不论令牌桶中令牌的数量是否达到了高优先级数据报文所需占用的令牌数,都对该高优先级数据报文进行发送,保证将实时性要求较高的应用所产生的数据报文实时发送,从而提高该应用的实时性,进而提高用户体验;同时,在发送高优先级数据报文之后,利用高优先级数据报文所需占用的令牌数更新令牌桶的令牌总量,而对于低优先级数据报文,只有令牌桶的令牌总量大于或等于该低优先级数据报文所需的令牌数之后,才对其进行发送,因此,当该高优先级数据报文所占用的令牌数多于当前时刻令牌桶的令牌总数时,会在发送低优先级数据报文的过程中补偿相应数量的令牌,从而保证流量控制的准确性。


为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。图1为本发明公开的一种基于令牌桶算法的数据传输方法的流程图;图2为本发明公开的一种判断数据报文优先级的方法的流程图;图3为本发明公开的另一种判断数据报文优先级的方法的流程图;图4为本发明公开的另一种判断数据报文优先级的方法的流程图;图5为本发明公开的一种流量控制装置的结构示意图;图6为图5中优先级判断单元的一种结构示意图;图7为图5中优先级判断单元的另一种结构示意图;图8为图5中优先级判断单元的另一种结构示意图。
具体实施例方式为使本发明实施例的目的、技术方案和优点更加清楚,下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。本发明公开了一种基于令牌桶算法的数据传输方法,该方法应用于流量控制装置,在保证流量控制准确性的同时,可以将实时性要求较高的应用所产生的数据报文实时发送,从而提高该应用的实时性,进而提高用户体验。基本思路为将实时性要求较高的应用产生的数据报文定义为高优先级,当接收到高优先级数据报文时,不论令牌桶中令牌的数量是否能够达到该高优先级数据报文所需的令牌数,都将该高优先级数据报文发送出去,保证将实时性要求较高的应用所产生的数据报文实时发送,从而提高该应用的实时性,进而提高用户体验;同时,当该高优先级数据报文所占用的令牌数多于当前时刻令牌桶的令牌总数时,在发送低优先级数据报文的过程中补偿相应数量的令牌,从而保证流量控制的准确性。参见图1,图1为本发明公开的一种基于令牌桶算法的数据传输方法的流程图。包括步骤Sl 接收数据报文。步骤S2 判断该数据报文是否为高优先级数据报文,若是,则执行步骤S3,否则, 执行步骤S6。在实际应用中,数据报文的优先级可以在流量控制装置中设定,也可以在用户侧设定之后将相关信息传输至流量控制装置。通常,可以将实时性要求较高的应用产生的数据报文定义为高优先级,例如,可以将即时通讯软件(如QQ、MSN)产生的数据报文定义为高优先级。实施中,可以根据产生数据报文的应用来确定其优先级,或者根据数据报文的特征来确定其优先级。步骤S3 发送该高优先级数据报文。当确定接收到的数据报文具有高优先级时,不论当前时刻令牌桶中的令牌数量是否可以满足该数据报文的需求,均将其发送出去。步骤S4 确定该高优先级数据报文占用的第一令牌数。每个令牌允许发送特定数量的数据,当确定数据报文的数据量之后即可确定该数据报文占用的令牌数。例如,每个令牌允许发送1字节的数据,当发送K字节的数据报文时, 该数据报文占用K个令牌。当数据报文为高优先级数据报文时,将其占用的令牌数记为第一令牌数。步骤S5 利用第一令牌数更新令牌桶的令牌总量。更新的过程具体为,在发送该高优先级数据报文之前确定令牌桶的令牌总量,之后计算令牌总量与第一令牌数之差,将该差值作为新的令牌桶的令牌总量。步骤S6 确定该低优先级数据报文占用的第二令牌数。步骤S7 获取当前时刻令牌桶的令牌总量。步骤S8 判断第二令牌数是否大于令牌桶的令牌总量,若是,则执行步骤S10,否则,执行步骤S9。步骤S9 发送该低优先级数据报文,利用第二令牌数更新令牌桶的令牌总量。步骤SlO 按照预设策略处理该低优先级数据报文。当接收的数据报文为低优先级数据报文时,按照常规方法对其进行处理。按照预设策略处理低优先级数据报文可以是丢弃该数据报文,可以是将其排放在队列中,以便当令牌桶中积累到足够多的令牌时再传输,或者也可以对其进行特殊标记后发送。在上述公开的方法中,不论令牌桶中令牌的数量是否达到了高优先级数据报文所需占用的令牌数,都对该高优先级数据报文进行发送,保证将实时性要求较高的应用所产生的数据报文实时发送,从而提高该应用的实时性,进而提高用户体验;同时,在发送高优先级数据报文之后,利用高优先级数据报文所需占用的令牌数更新令牌桶的令牌总量,而对于低优先级数据报文,只有令牌桶的令牌总量大于或等于该低优先级数据报文所需的令牌数之后,才对其进行发送,因此,当该高优先级数据报文所占用的令牌数多于当前时刻令牌桶的令牌总数时,会在发送低优先级数据报文的过程中补偿相应数量的令牌,从而保证流量控制的准确性。实施中,可以采用多种方式判断数据报文的优先级。下面结合图2、图3和图4分别进行说明。参见图2,图2为本发明公开的一种判断数据报文优先级的方法的流程图。包括步骤S211 确定产生数据报文的应用;步骤S212 判断该应用是否属于预设的高优先级应用,若是,则执行步骤S213,否则,执行步骤S214;步骤S213 确定该数据报文为高优先级数据报文;步骤S214 确定该数据报文为低优先级数据报文。在通信网络中传输的数据报文来自于多种类型的应用,不同应用产生的数据报文会存在差异,例如存在不同的标识符,因此可以根据各数据报文的差异确定其来源,即确定产生数据报文的应用。当产生该数据报文的应用具有高优先级时,则该数据报文也具有高优先级。可以在流量控制装置设定各种应用的优先级,也可以在用户侧或者服务器设定各种应用的优先级,之后以通信的方式告知流量控制装置,由流量控制器存储各预设的具有高优先级的应用。参见图3,图3为本发明公开的一种判断数据报文优先级的方法的流程图。包括步骤S221 提取数据报文的特征;步骤S222 判断该数据报文的特征是否包含于预存的特征库,若是,则执行步骤 S223,否则,执行步骤S224 ;步骤S223 确定该数据报文为高优先级数据报文;步骤S2M 确定该数据报文为低优先级数据报文。不同应用产生的数据报文具有不同的特征,通过比对数据报文的特征可以对各种数据报文进行区分。实施中,对于设定为具有高优先级的数据报文,预先提取其特征并将其保存于特征库,当接收到数据报文时,只要将该数据报文的特征与特征库中的特征进行比对,就可判断该数据报文的优先级。需要说明的是,数据报文的特征可以是单包特征、连续包长序列特征或者两者的结合。相应的,特征库中存储各种高优先级数据报文的单包特征、连续包长序列特征或者两者的结合。参见图4,图4为本发明公开的一种判断数据报文优先级的方法的流程图。包括步骤S231 提取数据报文的特征;步骤S232 将该数据报文的特征与预存的识别引擎进行匹配,若该数据报文的特征匹配命中,则执行步骤S233,否则,执行步骤S234 ;步骤S233 确定该数据报文为高优先级数据报文;步骤S234 确定该数据报文为低优先级数据报文。图4所示方法与图3所示方法的区别在于,预先提取各种具有高优先级的数据报文的特征,之后将提取出各种数据报文的特征抽象成识别引擎,当接收到数据报文后,将该数据报文与该识别引擎进行匹配,如果匹配命中则确定该数据报文为高优先级数据报文。 实施中,该识别引擎可以嵌入到令牌桶算法中,此时无需进行人工配置。需要说明的是,数据报文的特征可以是单包特征、连续包长序列特征或者两者的结合。相应的,提取各种高优先级数据报文的单包特征、连续包长序列特征或者两者的结合,以形成识别引擎。本发明还公开了一种应用上述方法的流量控制装置,利用该流量控制装置控制流量的过程中,可以保证将实时性要求较高的应用所产生的数据报文实时发送,从而提高该应用的实时性,进而提高用户体验,同时保证流量控制的准确性。参见图5,图5为本发明公开的一种流量控制装置的结构示意图。该流量控制装置包括令牌桶1、优先级判断单元2、第一处理单元3、第二处理单元4和令牌控制单元5。其中令牌桶1,用于存储令牌;优先级判断单元2,用于判断接收到的数据报文的优先级;第一处理单元3,用于发送高优先级数据报文,确定高优先级数据报文占用的第一令牌数,并将第一令牌数发送至令牌控制单元5 ;第二处理单元4,用于确定低优先级数据报文占用的第二令牌数,在第二令牌数不大于当前时刻令牌桶的令牌总量时,发送低优先级数据报文、并将第二令牌数发送至令牌控制单元5,在第二令牌数大于当前时刻令牌桶的令牌总量时,按照预设策略处理低优先级数据报文;令牌控制单元5,用于接收第一令牌数和第二令牌数,利用第一令牌数和第二令牌数更新令牌桶的令牌总量,还用于获取令牌桶的令牌总量并发送至第二处理单元4。实施中,优先级判断单元可以采用多种结构。下面结合图6、图7和图8分别进行说明。参见图6,图6为图5中优先级判断单元的一种结构示意图。该优先级判断单元包括应用确定单元211和第一判断单元212。其中应用确定单元211,用于确定产生数据报文的应用;第一判断单元212,用于判断应用是否属于预设的高优先级应用,若是,则确定数据报文为高优先级数据报文,否则,确定数据报文为低优先级数据报文。参见图7,图7为图5中优先级判断单元的另一种结构示意图。该优先级判断单元包括特征提取单元221和第二判断单元222。其中特征提取单元221,用于提取数据报文的特征;第二判断单元222,用于判断数据报文的特征是否包含于预存的特征库,若是,则确定数据报文为高优先级数据报文,否则,确定数据报文为低优先级数据报文。参见图8,图8为图5中优先级判断单元的另一种结构示意图。该优先级判断单元包括特征提取单元221和第三判断单元232。其中特征提取单元221,用于提取数据报文的特征;第三判断单元232,用于判断数据报文的特征是否与预存的识别引擎匹配,若匹配,则确定数据报文为高优先级数据报文,否则,确定数据报文为低优先级数据报文。本说明书中各个实施例采用递进的方式描述,每个实施例重点说明的都是与其他实施例的不同之处,各个实施例之间相同相似部分互相参见即可。对于实施例公开的装置而言,由于其与实施例公开的方法相对应,所以描述的比较简单,相关之处参见方法部分说明即可。专业人员还可以进一步意识到,结合本文中所公开的实施例描述的各示例的单元及算法步骤,能够以电子硬件、计算机软件或者二者的结合来实现,为了清楚地说明硬件和软件的可互换性,在上述说明中已经按照功能一般性地描述了各示例的组成及步骤。这些功能究竟以硬件还是软件方式来执行,取决于技术方案的特定应用和设计约束条件。专业技术人员可以对每个特定的应用来使用不同方法来实现所描述的功能,但是这种实现不应认为超出本发明的范围。结合本文中所公开的实施例描述的方法或算法的步骤可以直接用硬件、处理器执行的软件模块,或者二者的结合来实施。软件模块可以置于随机存储器(RAM)、内存、只读存储器(ROM)、电可编程ROM、电可擦除可编程ROM、寄存器、硬盘、可移动磁盘、CD-ROM、或技术领域内所公知的任意其它形式的存储介质中。对所公开的实施例的上述说明,使本领域专业技术人员能够实现或使用本发明。 对这些实施例的多种修改对本领域的专业技术人员来说将是显而易见的,本文中所定义的一般原理可以在不脱离本发明的精神或范围的情况下,在其它实施例中实现。因此,本发明将不会被限制于本文所示的这些实施例,而是要符合与本文所公开的原理和新颖特点相一致的最宽的范围。
权利要求
1.一种基于令牌桶算法的数据传输方法,其特征在于,包括 接收到数据报文后,判断所述数据报文的优先级;当所述数据报文为高优先级数据报文时,发送所述高优先级数据报文,之后确定所述高优先级数据报文所占用的第一令牌数,并利用所述第一令牌数更新所述令牌桶中的令牌总量;当所述数据报文为低优先级数据报文时,确定所述低优先级数据报文所占用的第二令牌数,之后比较所述第二令牌数和当前时刻所述令牌桶的令牌总量,若所述第二令牌数不大于所述当前时刻所述令牌桶的令牌总量,则发送所述低优先级数据报文,并利用所述第二令牌数更新所述令牌桶的令牌总数,否则,按照预设策略处理所述低优先级数据报文。
2.根据权利要求1所述的方法,其特征在于,所述判断所述数据报文的优先级,包括 确定产生所述数据报文的应用;判断所述应用是否属于预设的高优先级应用,若所述应用属于所述高优先级应用,则确定所述数据报文为高优先级数据报文,否则,确定所述数据报文为低优先级数据报文。
3.根据权利要求1所述的方法,其特征在于,所述判断所述数据报文的优先级,包括 提取所述数据报文的特征;判断所述数据报文的特征是否包含于预存的特征库,若所述数据报文的特征包含于所述特征库,则确定所述数据报文为高优先级数据报文,否则,确定所述数据报文为低优先级数据报文。
4.根据权利要求1所述的方法,其特征在于,所述判断所述数据报文的优先级,包括 提取所述数据报文的特征;将所述数据报文的特征与预存的识别引擎进行匹配,若所述数据报文的特征匹配命中,则确定所述数据报文为高优先级数据报文,否则,确定所述数据报文为低优先级数据报文。
5.根据权利要求3或4所述的方法,其特征在于,所述数据报文的特征包括单包特征和 /或连续包长序列特征。
6.一种流量控制装置,其特征在于,包括令牌桶、优先级判断单元、第一处理单元、第二处理单元和令牌控制单元;所述令牌桶,用于存储令牌;所述优先级判断单元,用于判断接收到的数据报文的优先级; 所述第一处理单元,用于发送高优先级数据报文,确定所述高优先级数据报文占用的第一令牌数,并将所述第一令牌数发送至所述令牌控制单元;所述第二处理单元,用于确定低优先级数据报文占用的第二令牌数,在所述第二令牌数不大于当前时刻令牌桶的令牌总量时,发送所述低优先级数据报文、并将所述第二令牌数发送至所述令牌控制单元,在所述第二令牌数大于当前时刻令牌桶的令牌总量时,按照预设策略处理所述低优先级数据报文;所述令牌控制单元,用于接收所述第一令牌数和第二令牌数,利用所述第一令牌数和第二令牌数更新所述令牌桶的令牌总量,还用于获取所述令牌桶的令牌总量并发送至所述第二处理单元。
7.根据权利要求6所述的流量控制装置,其特征在于,所述优先级判断单元包括应用确定单元,用于确定产生所述数据报文的应用;第一判断单元,用于判断所述应用是否属于预设的高优先级应用,若是,则确定所述数据报文为高优先级数据报文,否则,确定所述数据报文为低优先级数据报文。
8.根据权利要求6所述的流量控制装置,其特征在于,所述优先级判断单元包括 特征提取单元,用于提取所述数据报文的特征;第二判断单元,用于判断所述数据报文的特征是否包含于预存的特征库,若是,则确定所述数据报文为高优先级数据报文,否则,确定所述数据报文为低优先级数据报文。
9.根据权利要求6所述的流量控制装置,其特征在于,所述优先级判断单元包括 特征提取单元,用于提取所述数据报文的特征;第三判断单元,用于判断所述数据报文的特征是否与预存的识别引擎匹配,若匹配,则确定所述数据报文为高优先级数据报文,否则,确定所述数据报文为低优先级数据报文。
全文摘要
本发明实施例公开了一种基于令牌桶算法的数据传输方法,在接收到高优先级数据报文后,均对其进行发送,保证将实时性要求较高的应用所产生的数据报文实时发送,从而提高该应用的实时性,进而提高用户体验;同时,在发送高优先级数据报文之后,利用高优先级数据报文所需占用的令牌数更新令牌桶的令牌总量,而对于低优先级数据报文,只有令牌桶的令牌总量大于或等于该低优先级数据报文所需的令牌数之后,才对其进行发送,因此,当高优先级数据报文所占用的令牌数多于当前时刻令牌桶的令牌总数时,会在发送低优先级数据报文的过程中补偿相应数量的令牌,从而保证流量控制的准确性。本发明实施例还公开了一种流量控制装置。
文档编号H04L29/08GK102420773SQ20121000213
公开日2012年4月18日 申请日期2012年1月5日 优先权日2012年1月5日
发明者张帅, 杨聪毅, 韦炜 申请人:北京网御星云信息技术有限公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1