一种基于令牌桶的延迟请求处理方法及装置制造方法

文档序号:7776874阅读:189来源:国知局
一种基于令牌桶的延迟请求处理方法及装置制造方法
【专利摘要】本发明公开了一种基于令牌桶的延迟请求处理方法及装置,涉及通信【技术领域】,为在延迟请求处理时缩短扫描周期而发明。所述方法包括:接收令牌桶对应队列的延迟请求消息,该延迟请求消息中包括延迟请求时间;根据该延迟请求时间判断该延迟请求消息是否需要优先处理;在确定该延迟请求消息需要优先处理时,按照优先处理方式对该延迟请求消息进行处理。本发明可用于延迟请求的处理技术中。
【专利说明】一种基于令牌桶的延迟请求处理方法及装置
【技术领域】
[0001]本发明涉及通信【技术领域】,尤其涉及一种基于令牌桶的延迟请求处理方法及装置。
【背景技术】
[0002]在利用令牌桶对数据网络的流量进行控制的过程中,当令牌桶中的令牌消耗殆尽时,表明此数据网络中已无流量能够再分配给该令牌桶对应的队列,因此,该令牌桶对应的队列需暂时退出调度。此时,需要将该令牌桶关闭,该关闭的令牌桶对应的队列发出的调度请求需要作为延迟请求处理。待某个队列的延迟请求时间到时,即已关闭的令牌桶累积到足够的令牌时,该已关闭的令牌桶被重新打开,此令牌桶对应的队列重新参与调度。
[0003]现有技术中,在处理各令牌桶对应的队列的延迟请求时,是将所有发出延迟请求的队列的延迟请求信息都存放在一个存储器中,然后从存储器中扫描出延迟请求时间已到达的队列,并处理该延迟请求时间已到达的队列。
[0004]在实际应用中,发出延迟请求的队列往往数量巨大,因此,按照现有技术的处理方式在处理各队列的延迟请求时扫描周期长。

【发明内容】

[0005]有鉴于此,本发明提供一种基于令牌桶的延迟请求处理方法及装置,以缩短描周期。
[0006]为达到上述目的,本发明实施例采用如下技术方案:
[0007]第一方面,本发明提供了一种基于令牌桶的延迟请求处理方法,包括:接收令牌桶对应队列的延迟请求消息,所述延迟请求消息中包括延迟请求时间;
[0008]根据所述延迟请求时间判断述延迟请求消息是否需要优先处理;
[0009]在确定所述延迟请求消息需要优先处理时,按照优先处理方式对所述延迟请求消息进行处理。
[0010]在第一方面的第一种实现方式中,所述按照优先处理方式对所述延迟请求消息进行处理包括:
[0011]保存所述延迟请求消息;
[0012]轮询扫描延迟请求消息,在所述延迟请求时间到达时,将所述延迟请求消息发送给下行模块进行处理。
[0013]结合第一方面的第一种实现方式,在第一方面的第二种实现方式中,在所述保存所述延迟请求消息前,还包括:判断发送所述延迟请求消息的队列的标识是否被存储;
[0014]所述保存所述延迟请求消息具体包括:
[0015]在所述队列的标识已被存储时,利用所述延迟请求时间更新存储的与所述队列的标识对应的延迟请求时间,将所述队列的标识标记为待处理状态;
[0016]在所述队列的标识未被存储时,存储所述队列的标识,并将所述队列的标识标记为待处理状态;
[0017]所述轮询扫描所述延迟请求消息,在所述延迟请求时间到达时,将所述延迟请求消息发送给下行模块进行处理具体包括:
[0018]轮询扫描延迟请求消息,获取处于待处理状态的队列的延迟请求时间;
[0019]获取在接收到所述延迟请求消息时所对应的全局时间;
[0020]获取当前的全局时间;
[0021]在所述当前的全局时间与在接收到所述延迟请求消息时所对应的全局时间之差等于或大于所述延迟请求时间时,将所述延迟请求消息发送给下行模块进行处理,并将所述队列的标识标记为已处理状态;
[0022]在所述当前的全局时间与在接收到所述延迟请求消息时所对应的全局时间之差小于所述延迟请求时间时,保持所述队列的标识为待处理状态。
[0023]结合第一方面的第二种实现方式,在第一方面的第三种实现方式中,所述存储所述队列的标识具体包括:
[0024]将所述队列的标识存储到高速缓存中。
[0025]结合第一方面的第三种实现方式,在第一方面的第四种实现方式中,在所述将所述队列的标识存储到高速缓存中之前,所述方法还包括:
[0026]判断所述高速缓存是否能够存储所述队列的标识;
[0027]所述将所述队列的标识存储到高速缓存中具体包括:在确定所述高速缓存能够存储所述队列的标识时,将所述队列的标识存储到所述高速缓存中。
[0028]结合第一方面以及第一方面的第一至第四种实现方式,在第一方面的第五种实现方式中,所述根据所述延迟请求时间确定所述延迟请求消息是否需要优先处理包括:
[0029]将所述队列的延迟请求时间与预设延迟时间进行比较;
[0030]若所述队列的延迟请求时间小于等于所述预设延迟时间,则确定所述延迟请求消息需要优先处理,否则确定所述延迟请求消息不需要优先处理。
[0031]第二方面,本发明提供了一种基于令牌桶的延迟请求处理装置,包括:
[0032]接收单元,用于接收令牌桶对应队列中的延迟请求消息,所述延迟请求消息中包括延迟请求时间;
[0033]判断单元,用于根据所述接收单元接收到的所述延迟请求时间判断所述延迟请求消息是否需要优先处理;
[0034]处理单元,用于在所述判断单元确定所述延迟请求消息需要优先处理时,按照优先处理方式对所述延迟请求消息进行处理。
[0035]在第二方面的第一种实现方式中,所述处理单元包括:
[0036]保存子单元,用于在所述判断单元确定所述延迟请求消息需要优先处理时,保存所述延迟请求消息;
[0037]扫描子单元,用于轮询扫描所述保存子单元保存的延迟请求消息,在所述延迟请求时间到达时,将所述延迟请求消息发送给下行模块进行处理。
[0038]结合第二方面的第一种实现方式,在第二方面的第二种实现方式中,所述保存子单元具体用于:
[0039]在所述队列的标识已被存储时,利用所述延迟请求时间更新存储的与所述队列的标识对应的延迟请求时间,将所述队列的标识标记为待处理状态;
[0040]在所述队列的标识未被存储时,存储所述队列的标识,并将所述队列的标识标记为待处理状态;
[0041]所述扫描子单元具体用于:
[0042]轮询扫描延迟请求消息,获取所述保存子单元保存的处于所述待处理状态的队列的延迟请求时间;
[0043]获取所述接收单元在接收到所述延迟请求消息时对应的全局时间;
[0044]获取当前的全局时间;
[0045]在所述当前的全局时间与所述接收单元在接收到所述延迟请求消息时所对应的全局时间之差等于或大于所述延迟请求时间时,将所述延迟请求消息发送给下行模块进行处理,并将所述队列的标识标记为已处理状态;
[0046]在所述当前的全局时间与所述接收单元在接收到所述延迟请求消息时所对应的全局时间之差小于所述延迟请求时间时,保持所述队列的标识为待处理状态。
[0047]结合第二方面的第二种实现方式,在第二方面的第三种实现方式中,在存储所述队列的标识时,所述保存子单元具体用于:
[0048]将所述队列的标识存储到高速缓存中。
[0049]结合第二方面的第三种实现方式,在第二方面的第四种实现方式中,所述判断单元用于:
[0050]判断所述高速缓存是否能够存储所述队列的标识;
[0051]所述保存子单元具体用于:在所述判断单元确定所述高速缓存能够存储所述队列的标识时,将所述队列的标识存储到所述高速缓存中。
[0052]结合第二方面以及第二方面的第一至第四种实现方式,在第二方面的第五种实现方式中,所述判断单元具体用于:
[0053]将所述延迟请求时间与预设延迟时间进行比较,在所述延迟请求时间小于或等于所述预设延迟时间时,确定所述延迟请求消息需要优先处理,否则确定所述延迟请求消息不需要优先处理。
[0054]本发明实施例提供的基于令牌桶的延迟请求处理方法及装置,当对队列的延迟请求消息进行处理时,首先根据队列的延迟请求时间确定该队列的延迟请求消息是否需要优先处理,当需要优先处理时,对该队列的延迟请求消息进行优先处理。通过优先处理部分队列的延迟请求消息,从而加快了该部分队列的延迟请求消息的处理速度,进而提高了对所有参与延迟请求的队列的延迟请求消息的处理速度。从而利用本发明实施例的延迟请求处理方法及装置,克服了现有技术中将所有参与延迟请求的队列一起处理时速度慢的缺陷,缩短了扫描周期。
【专利附图】

【附图说明】
[0055]为了更清楚地说明本发明实施例的技术方案,下面将对实施例描述中所需要使用的附图作一简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。[0056]图1为本发明实施例一基于令牌桶的延迟请求处理方法的流程图;
[0057]图2为本发明实施例二基于令牌桶的延迟请求处理方法的电路结构示意图;
[0058]图3为本发明实施例二中位图标志位的示意图;
[0059]图4为本发明实施例二基于令牌桶的延迟请求处理方法的流程图;
[0060]图5为本发明实施例二步骤24中具体步骤的流程图;
[0061]图6为本发明实施例二保存工作的流程图;
[0062]图7为本发明实施例二扫描工作的流程图;
[0063]图8为本发明实施例三延迟请求的处理装置的结构图;
[0064]图9为本发明实施例三中处理单元的示意图;
[0065]图10为本发明实施例四提供的延迟请求处理设备的结构示意图。
【具体实施方式】
[0066]下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
[0067]为了克服现有技术中对各令牌桶对应的队列的延迟请求处理周期长的缺陷,本发明实施例一提供了一种基于令牌桶的延迟请求处理方法。如图1所示,本发明实施例一的基于令牌桶的延迟请求处理方法包括:
[0068]步骤11、接收令牌桶对应队列的延迟请求消息,该延迟请求消息中包括延迟请求时间。
[0069]其中,在此的延迟请求时间为一个时间值,用来表示队列允许对其延迟请求消息延迟处理的时间,如100毫秒。
[0070]步骤12、根据该延迟请求时间判断该延迟请求消息是否需要优先处理。
[0071]在具体应用中,此步骤包括:将该延迟请求时间与预设延迟时间进行比较;若队列的延迟请求时间小于或等于预设延迟时间,则确定该延迟请求消息需要优先处理,否则确定该延迟请求消息不需要优先处理。
[0072]其中,预设延迟时间为一个时间值,它可以由用户预先设置,也可由系统设置。例如,预设延迟请求时间可以设置为50毫秒。在实际应用中该预设延迟时间的设置要视具体情况而定,本发明对其不做限定。
[0073]另外,队列的延迟请求消息中还包括队列的标识。其中,队列的标识用来唯一识别该队列,如某个队列的标识可以为“Entry_ID”。在此不对队列的标识的形式进行限定,只要其能够唯一标识某个队列即可。
[0074]例如,假设队列“a”(指标识)的延迟请求时间为40毫秒,而预设延迟时间设置为50毫秒。将队列“a”的延迟请求时间(40毫秒)与预设延迟时间(50毫秒)进行比较,结果为队列“a”的延迟请求时间小于该预设延迟时间,因此可确定队列“a”的延迟请求消息需要优先处理。
[0075]步骤13、在确定该延迟请求消息需要优先处理时,按照优先处理方式对该延迟请求消息进行处理。[0076]其中,优先处理方式为与现有技术不同的、更快的处理方式。例如,该优先处理方式可以为:将需要优先处理的延迟请求消息利用高速缓存技术进行处理,从而提高对延迟请求消息的处理速度。
[0077]由上可以看出,利用本发明实施例的基于令牌桶的延迟请求处理方法通过优先处理部分队列的延迟请求消息,从而加快了该部分队列的延迟请求消息的处理速度,进而提高了对所有参与延迟请求的队列的延迟请求消息的处理速度,从而克服了现有技术中将所有参与延迟请求的队列一起处理时速度慢的缺陷,缩短了扫描周期。
[0078]以下对本发明实施例二的基于令牌桶的延迟请求处理方法进行详细描述。
[0079]如图2所示的延迟请求的处理装置可以划分成两部分,其中,第一单元H_PR0C用于利用本发明提供的方法对需要优先处理的队列的延迟请求消息(DR_Info)进行优先处理,第二单元ALL_PR0C用于利用现有技术的延迟请求处理方法对不需要优先处理的延迟请求消息进行处理,以及在某些情况下,例如在第一单元中的高速缓存(Cache)已满的情况下,第二单元ALL_PR0C也用于处理需要优先处理的延迟请求消息。
[0080]其中,如图2所示,该装置有三个外部接口,分别为接口 A、接口 B以及接口 C。其中,接口 A为接收上行模块发送的队列的延迟请求消息以及接收全局时间(TimeStamp)的接口 ;接口 B为用于输出延迟请求时间到达的队列的信息的接口 ;接口 C为在第一单元的高速缓存(Cache)已满的情况下,向接口 A提供表示高速缓存(Cache)已满的反压信号(cache_full)的接口。
[0081]如图2所示,第一单元H_PR0C包括:高速缓存(Cache)、位图(LlBitmap)、存储器(Memory)以及逻辑控制器;第二单元ALL_PR0C包括:位图、存储器(Memory)以及逻辑控制器。对于第一单元,采用“位图+缓存”的处理机制对队列的延迟请求进行处理,其中,队列的标识存储在高速缓存(Cache)中,队列的延迟请求时间存储在存储器(Memory)中。对于第二单元,采用“位图”的处理机制对队列的延迟请求进行处理,其中,队列的标识以及延迟请求时间都存储在存储器(Memory)中。其中,第二单元的处理机制与现有技术的相同,在此不再赘述。以下详细描述一下第一单元的处理机制。
[0082]如图3所示,位图根据设置可包括多个标志位,其中每个标志位与队列的标识相对应,用来表明队列的延迟请求消息的处理状态(包括待处理状态和已处理状态),即表明该队列的标识是否在高速缓存中处理。例如,可以预先设置某个队列对应的标志位为I对应该队列的延迟请求消息处于待处理状态,即与该标志位对应的队列的标识在高速缓存中处理;该队列对应的标志位为O对应该队列的延迟请求消息处于已处理状态,即与该标志位对应的队列的标识未在高速缓存中处理。当然,还可用其他形式的标识对位图标志位进行区分,只要能够表明队列的延迟请求消息的处理状态即可。
[0083]为了便于说明,下面的描述中就以标志位为I对应队列的延迟请求消息处于待处理状态,标志位为O对应队列的延迟请求消息处于已处理状态为例进行说明。
[0084]其中,在此的位图标志位的位宽与所述高速缓存(Cache)的深度相同。所述高速缓存(Cache)的深度可利用如下公式计算:
[0085]Cache深度=线速带宽/最小速率。
[0086]其中线速带宽指的是网络流量大小,如100G,最小速率指的是令牌桶的限速值,如32Kbps ο[0087]例如,如表1所示,以线速带宽为100G的流量管理芯片中的应用为例,令牌桶限速值范围在 32Kbps-100Gbps。
[0088]表1
[0089]
【权利要求】
1.一种基于令牌桶的延迟请求处理方法,其特征在于,包括: 接收令牌桶对应队列的延迟请求消息,所述延迟请求消息中包括延迟请求时间; 根据所述延迟请求时间判断所述延迟请求消息是否需要优先处理; 在确定所述延迟请求消息需要优先处理时,按照优先处理方式对所述延迟请求消息进行处理。
2.根据权利要求1所述的基于令牌桶的延迟请求处理方法,其特征在于,所述按照优先处理方式对所述延迟请求消息进行处理包括: 保存所述延迟请求消息; 轮询扫描延迟请求消息,在所述延迟请求时间到达时,将所述延迟请求消息发送给下行模块进行处理。
3.根据权利要求2所述的基于令牌桶的延迟请求处理方法,其特征在于,在所述保存所述延迟请求消息前,还包括:判断发送所述延迟请求消息的队列的标识是否被存储; 所述保存所述延迟请求消息具体包括: 在所述队列的标识已被存储时,利用所述延迟请求时间更新存储的与所述队列的标识对应的延迟请求时间,将所述队列的标识标记为待处理状态; 在所述队列的标识未被存储时,存储所述队列的标识,并将所述队列的标识标记为待处理状态; 所述轮询扫描延迟请求消息,在所述延迟请求时间到达时,将所述延迟请求消息发送给下行模块进行处理具体包括: 轮询扫描延迟请求消息,获取处于待处理状态的队列的延迟请求时间; 获取在接收到所述延迟请求消息时所对应的全局时间; 获取当前的全局时间; 在所述当前的全局时间与在接收到所述延迟请求消息时所对应的全局时间之差等于或大于所述延迟请求时间时,将所述延迟请求消息发送给下行模块进行处理,并将所述队列的标识标记为已处理状态; 在所述当前的全局时间与在接收到所述延迟请求消息时所对应的全局时间之差小于所述延迟请求时间时,保持所述队列的标识为待处理状态。
4.根据权利要求3所述的基于令牌桶的延迟请求处理方法,所述存储所述队列的标识具体包括: 将所述队列的标识存储到高速缓存中。
5.根据权利要求4所述的基于令牌桶的延迟请求处理方法,其特征在于,在所述将所述队列的标识存储到高速缓存中之前,所述方法还包括: 判断所述高速缓存是否能够存储所述队列的标识; 所述将所述队列的标识存储到高速缓存中具体包括:在确定所述高速缓存能够存储所述队列的标识时,将所述队列的标识存储到所述高速缓存中。
6.根据权利要求1至5任一所述的基于令牌桶的延迟请求处理方法,其特征在于,所述根据所述延迟请求时间确定所述延迟请求消息是否需要优先处理包括: 将所述延迟请求时间与预设延迟时间进行比较; 若所述延迟请求时间小于或等于所述预设延迟时间,则确定所述延迟请求消息需要优先处理,否则确定所述延迟请求消息不需要优先处理。
7.一种基于令牌桶的延迟请求处理装置,其特征在于,包括: 接收单元,用于接收令牌桶对应队列中的延迟请求消息,所述延迟请求消息中包括延迟请求时间; 判断单元,用于根据所述接收单元接收到的所述延迟请求时间判断所述延迟请求消息是否需要优先处理; 处理单元,用于在所述判断单元确定所述延迟请求消息需要优先处理时,按照优先处理方式对所述延迟请求消息进行处理。
8.根据权利要求7所述的基于令牌桶的延迟请求处理装置,其特征在于,所述处理单元包括: 保存子单元,用于在所述判断单元确定所述延迟请求消息需要优先处理时,保存所述延迟请求消息; 扫描子单元,用于轮询扫描所述保存子单元保存的延迟请求消息,在所述延迟请求时间到达时,将所述延迟请求消息发送给下行模块进行处理。
9.根据权利要求8所述的基于令牌桶的延迟请求处理装置,其特征在于,所述保存子单元具体用于: 在所述队列的标识已被存储时,利用所述延迟请求时间更新存储的与所述队列的标识对应的延迟请求时间,将所述队列的标识标记为待处理状态; 在所述队列的标识未被存储时,存储所述队列的标识,并将所述队列的标识标记为待处理状态; 所述扫描子单元具体用于: 轮询扫描延迟请求消息,获取所述保存子单元保存的处于所述待处理状态的队列的延迟请求时间; 获取所述接收单元在接收到所述延迟请求消息时对应的全局时间; 获取当前的全局时间; 在所述当前的全局时间与所述接收单元在接收到所述延迟请求消息时所对应的全局时间之差等于或大于所述延迟请求时间时,将所述延迟请求消息发送给下行模块进行处理,并将所述队列的标识标记为已处理状态; 在所述当前的全局时间与所述接收单元在接收到所述延迟请求消息时所对应的全局时间之差小于所述延迟请求时间时,保持所述队列的标识为待处理状态。
10.根据权利要求9所述的基于令牌桶的延迟请求处理装置,其特征在于,在存储所述队列的标识时,所述保存子单元具体用于: 将所述队列的标识存储到高速缓存中。
11.根据权利要求10所述的基于令牌桶的延迟请求处理装置,其特征在于,所述判断单元用于: 判断所述高速缓存是否能够存储所述队列的标识; 所述保存子单元具体用于:在所述判断单元确定所述高速缓存能够存储所述队列的标识时,将所述队列的标识存储到所述高速缓存中。
12.根据权利要求7-11任一所述的基于令牌桶的延迟请求处理装置,其特征在于,所述判断单元具体用于: 将所述延迟请求时间与预设延迟时间进行比较,在所述延迟请求时间小于或等于所述预设延迟时间时,确定所述延迟请求消息需要优先处理,否则确定所述延迟请求消息不需要优先处 理。
【文档编号】H04L12/875GK103647729SQ201310581113
【公开日】2014年3月19日 申请日期:2013年11月19日 优先权日:2013年11月19日
【发明者】谢飞, 沈国明, 钟庆昌 申请人:华为技术有限公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1