专利名称:报文转发方法及装置的制作方法
技术领域:
本发明涉及交换网转发的服务质量领域,尤其涉及一种报文转发方法及装置。
背景技术:
在通信领域中,当报文发送的负载比较轻时,不会产生拥塞,数据报文一到达接口就直接被转发出去;当数据报文的发送速度高于接口的转发速度时,就会发生拥塞。为了解决拥塞问题,拥塞管理方法应运而生,当拥塞发生时数据报文就在接口处排队,然后等待接口转发。接口会根据数据的优先级别和队列机制确定哪些数据报文放置在哪些队列里,以及如何调度并转发队列中的报文。VOQ(Virtual Output Queue,虚拟输出队列)机制将队列从接口处移动至交换网的上行,通过板间交换信息的传递和调度器的管理,实现了正常转发和拥塞调度。PQ(Priority Queueing,优先队列)算法,是针对关键业务型应用设计的。共有四个队列,按照优先级从高到低的顺序排列(即高优先级队列,中优先级队列,普通优先级队列和低优先级队列)。在使用时,把分类后的数据报文根据其重要程度分别放置在相应的队列中,在队列调度时,严格按照优先级从高到低的次序优先发送优先级高的队列中的报文, 这样,将关键业务的报文放入较高优先级队列中,将非关键业务(如Internet)的报文放入较低优先级的队列,可以保证关键业务的报文被优先传送,非关键业务的报文在处理关键业务报文的空闲时被传送。WFQ(Weighted Fair Queueing,加权公平队列)是一种基于数据流的调度方式, 它会自动生成数据流,并为每个数据流分配一个队列,而队列的权重值是根据IPdnternet ftOtocol,互联网协议)优先级值计算的。CBffFQ(Class-Based Weighted Fair Queueing,基于分类的加权公平队列)是标准的WFQ功能的扩展,它可以让用户自己定义数据类,并为每个数据类分配一个队列。一旦数据被分类后,就等于生成了队列,不同类的报文进入不同的队列中。在CBWFQ中,每个数据报文的权重来自分配给它所在的数据类(class)的带宽值, 因此,分配给每个数据类的带宽决定发送该类数据报文所在队列的顺序。所有的数据报文都根据它的权重公平的接受服务(被转发),没有哪个数据类(队列)能获得严格优先权。 对语音数据流来说,由于在队列中需要等待,它使语音数据时延和抖动过大,严重影响了语音的清晰度。为了保证这类报文的低时延,目前实现方式都是通过严格优先级队列来保证该类报文被优先处理,从而对时延加以保证。LLQ (Low Latency Queuing,低时延的队列),是CBWFQ的一种变形。通过在CBWFQ 队列中加入了一个或者几个优先级队列来实现,以保证这些队列优先处理,保证进入这些队列的报文的较低时延。LLQ调度时首先检查低时延队列,当低时延队列没有报文时才转向其他非低时延队列。LLQ可以设置多个低时延队列,多个低时延队列关系是平等的,用户可以根据需要,将不同的业务放入到不同的低时延队列,例如将语音流放入到一个低时延队列,视频流放入到另外一个低时延队列,虽然可以保证两种业务能够同时得到服务,但是同时使用了两个队列,若需要保证低时延的业务较多时,则相应的低时延队列会增多,进而导致这些队列也要进行排队等待。综上,传统的方式下,为了减小时延,在流量分类后,数据报文进入相应的队列,再进行优先发送,因此实现时需要在CBWFQ中配置PQ,调度器需要支持PQ+WFQ同时存在的混合算法,这对调度的实现提出了较高的要求;此外,为了支持LLQ,还需要将多个WFQ队列设置成PQ,业务类型较多时可能队列数不够用。
发明内容
本发明的目的是,提供一种报文转发方法及装置,以改进现有报文转发机制中对于低时延报文的转发过于复杂的问题。本发明提供了一种报文转发方法,上述方法包括上行报文转发部分和下行报文转发部分,上述上行报文转发部分包括当收到上行报文时,判断上述上行报文是否需要快速转发,若是,则为上述上行报文设置快速转发标记并转发;上述下行报文转发部分包括当收到下行报文时,判断上述下行报文是否有快速转发标记,若是,则将上述下行报文放入低时延缓存中进行转发。优选地,在上述上行报文转发部分中,当判断出上述上行报文不需要快速转发时,执行如下步骤将上述上行报文放入普通队列中;按照调度规则调度上述普通队列;转发当前调度的普通队列中的报文。优选地,在上述下行报文转发部分中,当判断出上述下行报文无快速转发标记时,将上述下行报文放入普通缓存中进行转发。优选地,上述下行报文转发部分还同时循环执行以下操作判断上述低时延缓存中是否有报文,若是,则转发上述低时延缓存中的报文;否则,转发上述普通缓存中的报文。优选地,上述低时延缓存和上述普通缓存为FIFO (First Input First Output,先入先出)缓存。本发明进一步提供了一种报文转发装置,包括判断模块、标记模块、转发模块以及低时延缓存模块,上述判断模块,用于判断收到的上行报文是否需要快速转发,并将需要快速转发的上行报文发送给上述标记模块;或者用于判断收到的下行报文是否有快速转发标记,并将有快速转发标记的下行报文放入上述低时延缓存模块中;上述标记模块,用于为收到的上行报文添加快速转发标记,并发送给上述转发模块;上述转发模块,用于转发收到的上行报文;上述低时延缓存模块,用于缓存收到的下行报文。优选地,上述装置还包括普通缓存模块以及队列模块上述判断模块,还用于将不需要快速转发的上行报文放入普通队列中,以及将无快速转发标记的下行报文放入上述普通缓存模块中;上述普通缓存模块,用于缓存收到的下行报文;上述队列模块,用于存储上述普通队列。优选地,上述装置还包括调度模块,用于调度上述队列模块中的普通队列。优选地,上述判断模块,还用于循环判断上述低时延缓存模块中是否有报文,并在上述低时延缓存模块中有报文时,通过上述转发模块转发上述报文,在上述低时延缓存模块中无报文时,通过上述转发模块转发上述普通缓存模块中的报文;上述转发模块,还用于转发上述低时延缓存模块和上述普通缓存模块中的报文。本发明通过对需要快速转发的业务类型的报文添加快速转发标记的方法,使该报文在上行方向上不需要调度而直接进行转发,在下行方向上则进入低时延缓存进行转发。 本发明在上行方向上减少了队列的个数;减少了低时延报文的时延。
此处所说明的附图用来提供对本发明的进一步理解,构成本发明的一部分,本发明的示意性实施例及其说明用于解释本发明,并不构成对本发明的不当限定。在附图中图1是本发明报文转发方法中的上行报文转发部分优选实施例的流程图;图2是本发明报文转发方法中的下行报文转发部分优选实施例的流程图;图3是本发明下行调度流程的优选实施例的流程图;图4是本发明报文转发装置优选实施例的原理框图。
具体实施例方式为了使本发明所要解决的技术问题、技术方案及有益效果更加清楚、明白,以下结合附图和实施例,对本发明进行进一步详细说明。应当理解,此处所描述的具体实施例仅用以解释本发明,并不用于限定本发明。如图1所示,是本发明报文转发方法中的上行报文转发部分的流程图;本实施例包括以下步骤步骤SOOl 收到上行报文;步骤S002 判断上述上行报文是否需要快速转发,若是,则执行步骤S003 ;否则, 执行步骤S005 ;
步骤S003 为上述上行报文设置快速转发标记;步骤S004 直接转发上述上行报文,结束;步骤S005 将上述上行报文放入普通队列中;本发明中,普通队列不止一个,可以根据业务需要,设置多个。步骤S006 按照调度规则调度上述普通队列;步骤S007 转发当前调度的普通队列中的报文。如图2所示,是本发明报文转发方法中的下行报文转发部分的流程图;本实施例包括以下步骤步骤SlOl 收到下行报文;步骤S102 判断上述下行报文是否有快速转发标记,若是,则执行步骤S103 ;否则,执行步骤S104;步骤S103 将上述下行报文放入低时延缓存中进行转发;步骤S104 将上述下行报文放入普通缓存中进行转发;下行报文转发部分还同时执行以下流程,如图3所示,是本发明下行调度流程图, 本实施例包括以下步骤步骤S301 判断低时延缓存中是否有报文,若是,则执行步骤S302 ;否则,执行步骤 S303 ;步骤S302 转发上述低时延缓存中的报文;步骤S303 转发上述普通缓存中的报文。本发明中,低时延缓存和普通缓存为FIFO缓存。如图4所示,是本发明报文转发装置的原理框图,本实施例包括判断模块01、标记模块02、队列模块03、低时延缓存模块04、普通缓存模块05、转发模块06以及调度模块07, 其中,判断模块01,用于判断收到的上行报文是否需要快速转发,并将需要快速转发的上行报文发送给标记模块02,将不需要快速转发的上行报文放入队列模块03的普通队列中;或者用于判断收到的下行报文是否有快速转发标记,并将有快速转发标记的下行报文放入低时延缓存模块04中,将无快速转发标记的下行报文放入普通缓存模块05中;还用于循环判断低时延缓存模块04中是否有报文,并在低时延缓存模块04中有报文时,通过转发模块06转发上述报文,在低时延缓存模块04中无报文时,通过转发模块06转发普通缓存模块05中的报文;标记模块02,用于为收到的上行报文添加快速转发标记,并发送给转发模块04 ;队列模块03,用于存储普通队列;低时延缓存模块04,用于缓存有快速转发标记的下行报文;普通缓存模块05,用于缓存无快速转发标记的下行报文;转发模块06,用于转发收到的具有快速转发标记的上行报文,以及转发当前调度的普通队列中的上行报文;以及转发低时延缓存模块04和普通缓存模块05中的下行报文。调度模块07,用于调度队列模块03中的普通队列。上述说明示出并描述了本发明的优选实施例,但如前所述,应当理解本发明并非局限于本文所披露的形式,不应看作是对其他实施例的排除,而可用于各种其他组合、修改和环境,并能够在本文所述发明构想范围内,通过上述教导或相关领域的技术或知识进行改动。而本领域人员所进行的改动和变化不脱离本发明的精神和范围,则都应在本发明所附权利要求的保护范围内。
权利要求
1.一种报文转发方法,其特征在于,所述方法包括上行报文转发部分和下行报文转发部分,所述上行报文转发部分包括当收到上行报文时,判断所述上行报文是否需要快速转发,若是,则为所述上行报文设置快速转发标记并转发;所述下行报文转发部分包括当收到下行报文时,判断所述下行报文是否有快速转发标记,若是,则将所述下行报文放入低时延缓存中进行转发。
2.根据权利要求1所述的方法,其特征在于,在所述上行报文转发部分中,当判断出所述上行报文不需要快速转发时,执行如下步骤将所述上行报文放入普通队列中; 按照调度规则调度所述普通队列; 转发当前调度的普通队列中的报文。
3.根据权利要求1所述的方法,其特征在于,在所述下行报文转发部分中,当判断出所述下行报文无快速转发标记时,将所述下行报文放入普通缓存中进行转发。
4.根据权利要求1或3所述的方法,其特征在于,所述下行报文转发部分还同时循环执行以下操作判断所述低时延缓存中是否有报文,若是,则转发所述低时延缓存中的报文;否则,转发所述普通缓存中的报文。
5.根据权利要求1或3所述的方法,其特征在于,所述低时延缓存和所述普通缓存为先入先出FIFO缓存。
6.一种报文转发装置,其特征在于,包括判断模块、标记模块、转发模块以及低时延缓存模块,所述判断模块,用于判断收到的上行报文是否需要快速转发,并将需要快速转发的上行报文发送给所述标记模块;或者用于判断收到的下行报文是否有快速转发标记,并将有快速转发标记的下行报文放入所述低时延缓存模块中;所述标记模块,用于为收到的上行报文添加快速转发标记,并发送给所述转发模块; 所述转发模块,用于转发收到的上行报文; 所述低时延缓存模块,用于缓存收到的下行报文。
7.根据权利要求6所述的装置,其特征在于,所述装置还包括普通缓存模块以及队列模块所述判断模块,还用于将不需要快速转发的上行报文放入普通队列中,以及将无快速转发标记的下行报文放入所述普通缓存模块中; 所述普通缓存模块,用于缓存收到的下行报文; 所述队列模块,用于存储所述普通队列。
8.根据权利要求6或7所述的装置,其特征在于,所述装置还包括调度模块,用于调度所述队列模块中的普通队列。
9.根据权利要求8所述的装置,其特征在于,所述判断模块,还用于循环判断所述低时延缓存模块中是否有报文,并在所述低时延缓存模块中有报文时,通过所述转发模块转发所述报文,在所述低时延缓存模块中无报文时,通过所述转发模块转发所述普通缓存模块中的报文;所述转发模块,还用于转发所述低时延缓存模块和所述普通缓存模块中的报文。
全文摘要
本发明涉及一种报文转发方法及装置,上述方法在收到上行报文时,判断上述上行报文是否需要快速转发,若是,则为上述上行报文设置快速转发标记并转发,在收到下行报文时,判断上述下行报文是否有快速转发标记,若是,则将上述下行报文放入低时延缓存中进行转发;上述装置包括判断模块、标记模块、转发模块以及低时延缓存模块。本发明实现简单,减小了需要快速转发的报文的时延。
文档编号H04L12/56GK102333026SQ20111015769
公开日2012年1月25日 申请日期2011年6月13日 优先权日2011年6月13日
发明者陈晓 申请人:中兴通讯股份有限公司