CN102035719B - 一种报文处理方法和装置 - Google Patents
一种报文处理方法和装置 Download PDFInfo
- Publication number
- CN102035719B CN102035719B CN2009101107221A CN200910110722A CN102035719B CN 102035719 B CN102035719 B CN 102035719B CN 2009101107221 A CN2009101107221 A CN 2009101107221A CN 200910110722 A CN200910110722 A CN 200910110722A CN 102035719 B CN102035719 B CN 102035719B
- Authority
- CN
- China
- Prior art keywords
- queue
- cache
- message
- length
- index
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Expired - Fee Related
Links
- 238000000034 method Methods 0.000 title claims abstract description 21
- 238000012545 processing Methods 0.000 title claims abstract description 21
- 239000000872 buffer Substances 0.000 claims abstract description 107
- 230000008859 change Effects 0.000 claims abstract description 30
- 238000012544 monitoring process Methods 0.000 claims description 21
- 238000003672 processing method Methods 0.000 claims description 20
- 238000004364 calculation method Methods 0.000 claims description 15
- 238000000605 extraction Methods 0.000 claims description 2
- 238000009825 accumulation Methods 0.000 claims 1
- 230000005540 biological transmission Effects 0.000 abstract description 18
- 238000004891 communication Methods 0.000 abstract description 8
- 238000010586 diagram Methods 0.000 description 14
- 238000005516 engineering process Methods 0.000 description 10
- 230000008569 process Effects 0.000 description 5
- 230000003139 buffering effect Effects 0.000 description 3
- 239000000284 extract Substances 0.000 description 3
- 238000012546 transfer Methods 0.000 description 2
- 230000009471 action Effects 0.000 description 1
- 230000015556 catabolic process Effects 0.000 description 1
- 230000007547 defect Effects 0.000 description 1
- 238000006731 degradation reaction Methods 0.000 description 1
- 238000013461 design Methods 0.000 description 1
- 230000007613 environmental effect Effects 0.000 description 1
- 238000012986 modification Methods 0.000 description 1
- 230000004048 modification Effects 0.000 description 1
- 230000006855 networking Effects 0.000 description 1
- 230000003287 optical effect Effects 0.000 description 1
- 238000011160 research Methods 0.000 description 1
- 238000006467 substitution reaction Methods 0.000 description 1
Images
Landscapes
- Data Exchanges In Wide-Area Networks (AREA)
Abstract
本发明实施例涉及一种报文处理方法和装置,其中,所述方法包括:接收报文,将所述报文存储到缓存单元;确定所述报文对应的缓存队列;判断所述报文的长度与所述缓存队列的队列实际长度之和是否小于等于所述缓存队列中队列配置长度,如果是,通过更新所述缓存队列缓存表中的缓存项报文指针内容为所述报文在所述缓存单元的起始存储地址,将所述报文加入到所述缓存队列;更新所述缓存表中缓存项索引和队列入队索引为所述报文建立新索引,更新所述队列实际长度为存储所述报文后的实际长度。本发明实施例中提供了一种动态调整队列缓存带宽的方法,通过判断报文的长度与缓队列实际长度之和与缓存队列中队列配置长度来将报文存储到缓存队列,可以使得队列缓存根据链路带宽的变化而变化,从而改善因队列缓存空间过大而导致传输延迟,和缓存空间过小而导致抖动丢包的问题,提高了通信质量。
Description
技术领域
本发明实施例涉及通信技术,尤其涉及一种报文处理方法和装置。
背景技术
由于IP技术的设计思想简洁实用和应用丰富多彩,所以全IP(ALL IP)的组网方式成为目前网络的演进趋势。但是,在现行网络环境下,为了充分利用已有的接入线路资源,提出了将已有接入网络与IP网络兼容互联的需求。
基于时分复用和时分复用器(Time Division Multiplex and Multiplexer;以下简称:TDM)技术、微波技术等传输模式的网络需要通过网元设备来与IP网络互联。以基于TDM技术的网络为例,TDM网络主要采用基于TDM的IP(IP over TDM)方式与IP网络互联,可以在互联处设置分类器和缓存装置,对从一个网络传输而来的报文进行分类,而后将分类的报文进行缓存,再通过预设的调度策略将缓存装置中的报文发送到另一个网络的链路上。以TDM网络与IP网络互联为例来进行说明,IP Over TDM技术主要包括基于点对点协议的IP(IP Over Point to Point Protocol;以下简称:IP Over PPP)技术、基于异步传输模式的IP(IP Over Asynchroncus Transfer Mode;以下简称:IP Over ATM)技术和基于E1/T1的IP(IP Over E1/T1)低速线路技术。以IP Over E1/T1低速线路的TDM网络与IP网络互联为例,图1为IP网络与TDM网络互联的网络架构示意图。如图1所示,互联设备100通过以太链路与IP网络200相连,通过E1/T1链路与TDM网络300相连。该互联设备100中至少包括分类器101、缓存装置102和调度装置103。从IP网络接收到的报文首先进入分类器101进行分类,分类器101是一个报文处理引擎,根据报文的不同属性,例如目的IP地址、优先级等参数,进行查表处理和分发。分类后的报文送入缓存装置102进行缓存,而后由调度装置103根据报文的类别进行调度,从缓存装置102中提取报文,通过E1/T1链路发送至TDM网络。从TDM网络向IP网络发送报文是上述过程的逆过程,同样要经过分类、缓存和调度发送。
现有缓存装置对报文进行缓存是采用固定缓存队列的技术。每个链路都有固定的几个缓存队列,一般为八个。每个队列都有自己固定大小的循环缓存空间,如图2所示。队列之间可以根据需要分配不同的调度优先级。每个链路可以使用一个或者多个队列进行报文缓存,因此每个队列都需要按照链路的总带宽对报文进行缓存。报文入队列时,如果当前队列已满,即入队列索引等于出队列索引,则报文直接丢弃,否则移动入队列索引,报文入队列;报文出队列时,如果队列不为空,则修改报文出队列指针,报文出队。
在进行本发明的研究过程中,发明人发现现有技术中至少存在如下缺陷:
报文在IP网络和另一网络之间转发的过程中需要进行缓存,缓存装置的缓存容量由固定队列进行索引,是针对链路的带宽预先设定且固定不变的。但是,TDM网络逻辑通道的宽带会因为绑定的时隙数量的变化而变化,宽带网络(如ADSL(非对称数字用户环路,Asymetric Digital Subscriber Loop)/ADSL2+/G.SHDSL(单对线高速数字用户线,Single-pair High-speed DigitalSubscriber Line)/微波链路等网络)中链路的带宽会因诸如天气状况、干扰信号和距离等环境因素的改变而发生变化,在预设缓存容量相对于链路带宽过大的情况下,若链路的负载较重,即带宽变大时,会引起链路的传输时延增加;在预设缓存容量相对于链路带宽过小的情况下,若链路可能无法适应IP网络的报文抖动,容易引起丢包。传输时延增加和丢包现象均导致传输质量的下降。
发明内容
本发明实施例提供一种报文处理方法和装置,以改善网络间报文传输的质量。
本发明实施例提供了一种报文处理方法,包括:
接收报文,将所述报文存储到缓存单元;
确定所述报文对应的缓存队列;
判断所述报文的长度与所述缓存队列的队列实际长度之和是否小于等于所述缓存队列中队列配置长度,如果是,通过更新所述缓存队列缓存表中的缓存项报文指针内容为所述报文在所述缓存单元的起始存储地址,将所述报文加入到所述缓存队列;更新所述缓存表中缓存项索引和队列入队索引为所述报文建立新索引,更新所述队列实际长度为存储所述报文后的实际长度。
本发明实施例还提供了一种报文处理装置,包括:报文接收模块、队列确定模块、缓存控制模块、报文缓存模块;
所述报文接收模块,用于接收报文;
所述报文缓存模块,用于将所述报文存储到缓存单元;
所述队列确定模块,用于确定所述报文对应的缓存队列;
所述缓存控制模块,用于判断所述报文的长度与所述缓存队列的队列实际长度之和是否小于等于所述缓存队列中队列配置长度,如果是,通过更新所述缓存队列缓存表中的缓存项报文指针内容为所述报文在所述缓存单元的起始存储地址,将所述报文加入到所述缓存队列;更新所述缓存表中缓存项索引和队列入队索引为所述报文建立新索引,更新所述队列实际长度为存储所述报文后的实际长度。
本发明实施例中提供了一种动态调整队列缓存带宽的方法,通过判断报文的长度与缓队列实际长度之和与缓存队列中队列配置长度来将报文存储到缓存队列,可以使得队列缓存根据链路带宽的变化而变化,从而改善因队列缓存空间过大而导致传输延迟,和缓存空间过小而导致抖动丢包的问题,提高了通信质量。
附图说明
图1为IP网络与TDM网络互联的网络架构示意图;
图2为现有技术中固定队列缓存装置的结构示意图;
图3为本发明实施例一提供的报文处理方法的流程图;
图4为本发明实施例二提供的报文处理方法的流程图;
图5为本发明实施例二所基于的装置存储状态示意图;
图6为本发明实施例二所基于的装置存储状态示意图;
图7为本发明实施例二所基于的装置存储状态示意图;
图8为本发明实施例二提供的报文处理方法中报文出队列的流程图;
图9为本发明实施例二所基于的装置存储状态示意图;
图10为本发明实施例一提供的报文处理方法中在TDM网络内调整队列配置长度的流程图;
图11为本发明实施例一提供的报文处理方法中宽带网络内调整队列配置长度的流程图;
图12为本发明实施例三提供的报文处理装置的结构示意图;
图13为本发明实施例三提供的报文处理装置的结构示意图;
图14为本发明实施例三提供的报文处理装置中队列长度配置模块的结构示意图;
图15为本发明另一实施例提供的报文处理装置中队列长度配置模块的结构示意图。
具体实施方式
下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有作出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
实施例一
图3为本发明实施例一提供的报文处理方法的流程图,包括如下步骤:
步骤201、接收报文,将所述报文存储到缓存单元,确定所述报文对应的缓存队列;
具体的,可以是通过分类器从通信链路接收报文并对报文作分类处理;接收报文之后,可以根据该报文的类别或优先级等参数确定该报文应入队的队列;
步骤202、判断所述报文的长度与所述缓存队列的队列实际长度之和是否小于等于所述缓存队列中队列配置长度;
步骤203、如果是,通过更新所述缓存队列缓存表中的缓存项报文指针内容为所述报文在所述缓存单元的起始存储地址,将所述报文加入到所述缓存队列;更新所述缓存表中缓存项索引和队列入队索引为所述报文建立新索引,更新所述队列实际长度为存储所述报文后的实际长度。
本发明实施例当步骤202判断所述报文的长度与所述缓存队列的队列实际长度之和大于所述缓存队列中设定的队列配置长度时,则丢弃所述报文。
其中,所述队列配置长度是可以通过监测链路带宽变化,根据变化的带宽进行调整的,具体的,所述队列配置长度通过监测链路带宽变化,根据变化的带宽进行调整的步骤包括:
监测时分复用网络(如E1/T1线路)中对应带宽的链路的时隙数量;
当监测到时隙数量变化时,根据变化的时隙数量和第一设定系数计算队列配置长度;
采用计算获得的队列配置长度更新所述队列配置长度。
或者,
监测宽带网络中对应带宽的链路信号强度;
当监测到信号强度变化时,根据链路的总带宽、当前的所述信号强度和第二设定系数计算队列配置长度;
采用计算获得的队列配置长度更新所述队列配置长度。
本发明实施例中,当存储所述报文时,还包括如下步骤:
通过查找使用状态确定可用的缓存项为待存缓存项;所述使用状态位于所述缓存队列的缓存表缓存项中;
将所述待存缓存项的使用状态更新为已使用状态;
将所述待存缓存项的顺序索引号记录至所述缓存队列的入队列索引所指引的缓存项的动态索引中;
将所述待存缓存项的顺序索引号记录至所述缓存队列的入队列索引中;
将所述报文的长度累加至所述缓存队列的队列实际长度。
当识别到所述缓存队列的出队列索引为空时,则将当前的所述入队列索引记录至所述出队列索引。
本发明实施例当报文从缓存队列出队时,包括如下步骤:
根据队列的出队列索引识别对应的缓存项作为待取缓存项;
从所述待取缓存项内查询报文指针,根据查询得到的报文指针在对应的缓存单元中提取报文;
将所述待取缓存项的动态索引号记录至所述出队列索引;
将所述待取缓存项的动态索引和报文指针清零,且将所述待取缓存项的使用状态更新为可用状态,将队列实际长度更新为原来队列的实际长度减去提取出的报文的长度。
本发明实施例的优点在于,通过判断报文的长度与缓队列实际长度之和与缓存队列中队列配置长度来将报文存储到缓存队列,可以使得队列缓存根据链路带宽的变化而变化,从而改善因队列缓存空间过大而导致传输延迟,和缓存空间过小而导致抖动丢包的问题,提高了通信质量。
实施例二
本发明实施例二提供了一种报文处理方法,用于通过根据链接带宽改变队列配置长度来减少传输过程中的丢包和传输时延现象,提高链路传输质量。
参见图4,为本发明实施例二提供的报文处理方法的流程图,该方法流程可以通过图5所示的以下几个单元实现,包括:控制单元401、队列索引单元402、缓存表单元403和缓存单元404。一个链路可以对应一个或多个队列,每个队列可以通过队列索引单元402、缓存表单元403和缓存单元404来实现。队列索引单元402用于存储队列的相关信息,如入队列索引、出队列索引、队列实际长度和队列配置长度。入队列索引用于指示进入该队列的报文的缓存位置;出队列索引用于指示从该队列提出的报文的缓存位置;队列实际长度是该队列实际缓存报文的长度,单位可以是字节数;队列配置长度是用户可配置、系统可调整的该队列最长能够缓存的长度,与队列实际长度的单位一致。
存储介质构成的存储空间预先被划分为多个缓存单元404,用来存储报文数据,每个缓存单元有预设的大小,以各自的起始地址D1~Dn来标识,n为自然数。
缓存表单元403用于存储缓存表,缓存表由多个缓存项构成,每个缓存项至少包括如下几项数据:顺序索引、动态索引、使用状态(use)和报文指针。顺序索引中存储有顺序索引号,是缓存项的顺序编号,例如1、2、......。使用状态用于标识该缓存项的使用状态,例如,使用状态设为“0”代表“可用”,设为“1”代表“已用”。动态索引中存储有动态索引号,指示当前缓存项所缓存的报文在其所在队列中的下一个报文的顺序索引号。报文指针中存储当前缓存项的报文对应的缓存单元的起始地址。多个队列索引单元402通过缓存表单元403共享缓存单元404提供的缓存空间。
为清楚介绍本实施例的工作过程,假设经分类器分类后需要传输目的IP地址相同的六个报文:P1、P2、P3、P4、P5和P6,六个报文的长度分别为L1、L2、L3、L4、L5和L6。假设各队列的队列索引单元中设定队列配置长度为CL,当队列索引单元和缓存表索引模块中的各个参数没有具体的索引位置时可设定为“0”。
参见图4,对上述报文处理方法具体可以包括如下步骤:
步骤301、接收报文,将报文存储至缓存单元
接收来自链接经分类器分类后的报文,如这里接收报文P1,并将报文存储到缓存单元;
步骤302、确定报文对应的缓存队列;
控制单元根据接收到的报文确定需要报文对应的缓存队列,即报文在哪个缓存队列进行操作,包括将报文在哪个缓存队列进行入队操作等。例如,接收到报文P1后,确定该报文在第一队列进行入队操作,由于第一队列目前没有存储报文,队列实际长度、入队列索引和出队列索引均为“0”;
步骤303、判断报文的长度与缓存队列的队列实际长度之和是否大于缓存队列中设定的队列配置长度,如果结果为是,则丢弃报文,否则,执行下述步骤;
例如,当接收到报文P1后,判断P1的长度L1与队列实际长度(初始化为0)之和(L1+0)是否大于队列配置长度CL,如果是,则丢弃报文P1;如果否,执行步骤304;
步骤304、通过查找使用状态(use)确定可用的缓存项为待存缓存项;
上述使用状态(use)位于缓存项当中,用于指示该缓存项为可用或已用,如0表示可用,1表示已用;可以通过查找使用状态来确定可用的缓存项为待存缓存项。如图5所示,目前可能已经有其他队列的报文占用了缓存项,顺序索引号为“1”、“2”和“5”的缓存项为已用状态,对应的报文指针中记录了相应的缓存单元起始地址Dx、Dy和Dz,则此时可以按照顺序选择第一个可用的缓存项,例如选择顺序索引号为“3”的缓存项作为待存缓存项,在另外一个实施例当中,也可以使用其他的可用缓存项(如顺序索引号为“4”的缓存项)来作为待存缓存项;
步骤305、更新所述待存缓存项中的报文指针内容为报文在缓存单元的起始地址,将所述待存缓存项的使用状态(use)更新为已使用状态;
如图6所示,控制单元可以将接收到的报文P1存储至缓存单元D1,同时,将D1的地址记录到待存缓存项中(顺序索引为3的缓存项),且将待存缓存项的状态设为已用,在选择缓存单元时有多种方式,例如可以顺序选择空闲的缓存单元,或者按照预设策略选择等;
步骤306、将所述待存缓存项的顺序索引号记录至所述缓存队列的入队列索引所指引的缓存项的动态索引中;
例如,当前第一队列的入队列索引为“0”,即该队列中没有该报文的前一项,所以该步骤的操作为空,找不到对应的缓存项;
步骤307、将所述待存缓存项的顺序索引号记录至所述缓存队列的入队列索引中;
由于使用了索引顺序为3的缓存项,因此,将第一队列的入队列索引更新为“3”;
步骤308、将所述报文的长度累加至所述缓存队列的队列实际长度;
例如,P1报文长度为L1,当前第一队列的实际长度为0,则加上L1后,第一队列的实际长度更新为L1,如图6所示。
在上述流程中,在将待存缓存项的顺序索引号记录至缓存队列的入队列索引之后,还包括:当识别到缓存队列的出队列索引为空时(具体可以“0”代表空索引),将当前的入队列索引记录至出队列索引。该情况通常发生在缓存队列未缓存任何报文之时。
重复执行上述步骤301~308,将报文P2、P3、P4和P5依次存储进缓存单元中,则队列索引单元和缓存表索引模块中的记录状态如图7所示。
假设队列配置长度CL=L1+L2+L3+L4+L5,则当存储报文P6时,由于报文P6的长度L6与队列实际长度之和为L1+L2+L3+L4+L5+L6,大于CL,所以将报文P6丢弃。
本发明实施例中,报文出队列的流程如图8所示,包括如下步骤:
步骤701、根据队列的出队列索引识别对应的缓存项作为待取缓存项;
当需要从缓存队列中提取报文时,控制单元按照队列的出队列索引识别对应的缓存项作为待取缓存项,基于图7所示的实例,此时将顺序索引号为“3”的缓存项作为待取缓存项;
步骤702、从所述待取缓存项内查询报文指针,根据查询得到的报文指针在对应的缓存单元中提取报文;
控制单元从待取缓存项内查询报文指针“D1”,根据报文指针在对应的缓存单元中提取报文P1,而后通过链路进行发送;
步骤703、将所述待取缓存项的动态索引号记录至所述出队列索引;
控制单元将待取缓存项的动态索引号“4”记录至出队列索引,用以索引下一个出队的报文;
步骤704、将所述待取缓存项的动态索引和报文指针清零,且将所述待取缓存项的使用状态更新为可用状态,将队列实际长度更新为原来队列的实际长度减去提取出的报文的长度;
控制单元将待取缓存项的动态索引和报文指针清零,且将待取缓存项的状态设定为可用,即设定为“0”,将队列实际长度减去提取出的报文的长度,即队列实际长度为L1+L2+L3+L4+L5-L1=L2+L3+L4+L5,如图9所示。
重复执行上述步骤,将报文P2、P3、P4和P5顺序取出,缓存表恢复至图5的状态。
采用本实施例的技术方案,链路的多个队列所对应的缓存表是一个数组,对应某一个队列的每个缓存项通过动态缓存项连接成一个从入队列索引到出队列索引的单向链表,如图7中箭头所示。本实施例的技术方案使多个队列可以共享缓存空间,并且可以通过缓存表来逐一索引各个队列的报文。
本发明实施例当中,队列的配置长度CL并非固定,而是通过监测链路的带宽变化,根据变化的带宽设定缓存队列的队列配置长度,如可以通过每隔一定时间实时监测链路带宽变化来实时更新队列配置长度,或者根据监测得到的链路带宽变化规律更新队列配置长度,或者根据预定的规则监测得到链路带宽变化来更新队列配置长度。
根据带宽变化来动态调整队列配置长度的方案可以适用于TDM网络(如E1/T1网络)或宽带网络(如ADSL/ADSL2+/G.SHDSL/微波网络等)。在TDM网络中,可以监测TDM网络中对应带宽的链路的时隙数量SLOT,根据时隙数量的变化按照设定公式计算获得队列配置长度,进而对队列配置长度进行更新。在宽带网络中,可以监测宽带网络中对应带宽的链路信号强度,即信号百分比m%,根据信号百分比的变化按照设定公式计算获得队列配置长度,进而对队列配置长度进行更新。
图10为本发明实施例二提供的报文处理方法中在TDM网络内调整队列配置长度的流程图,在TDM网络中,根据变化的带宽设定缓存队列中的队列配置长度的步骤具体包括:
步骤1001、监测TDM网络中对应带宽的链路的时隙数量SLOT;
在E1/T1等低速链路中,系统可以根据具体情况的需要为链路分配不同数量的时隙,所分配的时隙数量的多少对应带宽的大小;
步骤1002、当监测到时隙数量变化时,根据变化的时隙数量和第一设定系数计算队列配置长度;
第一设定系数可以为经验值,记为s,可以按照如下公式(1)计算队列配置长度,单位为比特:
CL=SLOT×单位时隙带宽×s (1)
其中,单位时隙带宽可以为64K;
步骤1003、采用计算获得的队列配置长度更新缓存队列中的队列配置长度。
每个链路可以对应设置有一个或多个队列,在调整队列配置长度时可以是根据当前带宽统一调整所有队列的队列配置长度,也可以是预先设定配置策略,例如,根据当前带宽以及各个队列的优先级,在设定配置策略中查询不同优先级的队列应配置的队列配置长度,进而进行更新。具体的配置策略还可以根据系统的其他要求进行预先设定。
上述技术方案可以根据TDM网络的带宽来动态调整队列的队列配置长度,即能够根据带宽来调整实际使用的缓存空间,能够提高报文的传输质量。TDM的链路可以由用户动态匹配,上述技术方案能够有效适应TDM网络的动态带宽。
图11为本发明实施例二提供的报文处理方法中宽带网络内调整队列配置长度的流程图。在宽带网络中,根据变化的带宽设定缓存队列中的队列配置长度的步骤具体包括:
步骤1101、监测宽带网络中对应带宽的链路信号百分比;
信号百分比m%表示链路的信号质量,对于ADSL(非对称数字用户环路,Asymetric Digital Subscriber Loop)/ADSL2+/G.SHDSL(单对线高速数字用户线,Single-pair High-speed Digital Subscriber Line)/微波链路等宽带链路,信号百分比可以对应带宽的大小,现有网络互联设备中能够识别信号百分比的变化;
步骤1102、当监测到信号百分比变化时,根据链路的总带宽、当前信号百分比和第二设定系统计算队列配置长度;
当信号百分比变化时,根据链路的总带宽M、当前的信号百分比和第二设定系数计算队列配置长度CL,第二设定系数可以为经验参数k,具体可以按照公式(2)来计算队列配置长度CL,单位为比特:
CL=M×m%×k;
步骤1103、采用计算获得的队列配置长度更新缓存队列中的队列配置长度。
上述技术方案可以根据宽带网络(如ADSL/ADSL2+/G.SHDSL/微波等网络)的带宽来动态调整队列的队列配置长度,即能够根据带宽来调整实际使用的缓存空间,提高报文的传输质量。宽带网络的链路由于受到外部环境和地理位置的影响,会导致实际带宽上下波动,上述技术方案能够有效适应宽带网络的动态带宽变化。
采用本实施例的技术方案,队列配置长度可以根据链路的带宽变化而动态调整,该技术方案可以改善现有技术中因缓存队列采用固定存储容量而引发的问题,例如,由于缓存队列的存储容量不能根据链路带宽的变化而变化,存储容量和链路的带宽均较大时会导致传输时延增长,存储容量和链路的带宽均较小时会导致抖动丢包。
本发明实施例相比于现有的固定队列缓存,其优点在于可以提供动态队列缓存,各个队列的队列配置长度可以根据链路带宽的变化而进行调整从而可以改善因缓存空间过大而导致传输延迟,和缓存空间过小而导致抖动丢包的问题,提高了通信质量。
实施例三
图12为本发明实施例三提供的报文处理装置的结构示意图,该装置具体包括:报文接收模块10、队列确定模块20、缓存控制模块30、报文缓存模块40和队列长度配置模块50。
其中,所述报文接收模块10,用于接收报文;
所述报文缓存模块,用于将所述报文缓存到缓存单元;
所述队列确定模块,用于确定所述报文对应的缓存队列;
所述缓存控制模块,用于判断所述报文的长度与所述缓存队列的队列实际长度之和是否小于等于所述缓存队列中队列配置长度,如果是,通过更新所述缓存队列缓存表中的缓存项报文指针内容为所述报文在所述缓存单元的起始存储地址,将所述报文加入到所述缓存队列;更新所述缓存表中缓存项索引和队列入队索引为所述报文建立新索引,更新所述队列实际长度为存储所述报文后的实际长度。
当所述缓存控制模块判断所述报文的长度与所述缓存队列的队列实际长度大于所述缓存队列中队列配置长度时,丢弃所述报文。所述队列长度配置模块,用于通过监测链路带宽变化,根据变化的带宽对所述队列配置长度进行调整;
具体的,可以根据链路的时隙数以及信号质量等对队列配置长度进行动态调整。
本发明实施例通过根据监控到的带宽动态改变队列配置长度,从而动态调整缓存大小,可以改善现有技术中因采用固定缓存容量而引发诸如:传输时延增长,抖动丢包等问题,提高了通信质量。
本发明实施例中,所述报文处理装置的报文缓存模块40进一步包括:至少一个队列索引单元41、缓存表单元42和多个缓存单元43。其中,每个队列索引单元41分别对应于一个队列,每个队列索引单元41用于存储该队列的入队列索引、出队列索引、队列实际长度和队列配置长度;缓存表单元42用于存储包括多个缓存项的缓存表,每个缓存项至少包括顺序索引、动态索引、使用状态和报文指针;多个缓存单元43,用于存储报文。
缓存控制模块30具体包括:计算单元31、查找单元32、入队列单元33、第一索引更新单元34、第二索引更新单元35和长度累加单元36。其中,计算单元31用于计算该报文的长度与该缓存队列的队列实际长度之和,并判断是否大于缓存队列中设定的队列配置长度,若判断结果为是则丢弃该报文,否则触发查找单元32动作;查找单元32用于在缓存表单元42中查找使用状态为可用的缓存项作为待存缓存项;入队列单元33用于通过更新缓存项报文指针的内容为报文在缓存单元的起始存储地址将报文加入到缓存队列,且将待存缓存项的使用状态设为已用;第一索引更新单元34用于将待存缓存项的顺序索引号记录至缓存队列的入队列索引所指引的缓存项的动态索引中;第二索引更新单元35用于将待存缓存项的顺序索引号记录至缓存队列的入队列索引中;长度累加单元36用于将报文的长度累加至缓存队列的队列实际长度。
该缓存控制模块30还包括:出队列初始单元37,用于在第二索引更新单元35动作之后,且识别到缓存队列的出队列索引为空时,将当前的入队列索引记录至出队列索引。
基于上述报文缓存模块40还能够进一步实现出队列操作,即缓存控制模块30还包括:出队列识别单元38、报文提取单元39、第三索引更新单元310和第四索引更新单元311。其中,出队列识别单元38用于当根据调度策略从缓存单元43中提取报文时,按照队列的出队列索引识别对应的缓存项作为待取缓存项;报文提取单元39用于从待取缓存项内查询报文指针,根据报文指针在对应的缓存单元43中提取报文;第三索引更新单元310用于将待取缓存项的动态索引号记录至出队列索引;第四索引更新单元311用于将待取缓存项的动态索引和报文指针清零,且将待取缓存项的使用状态设定为可用,将队列实际长度减去提取出的报文的长度。
参见图14,为本发明实施例报文处理装置中队列长度配置模块的结构示意图,队列长度配置模块具体可以包括:
第一带宽监测单元51、第一长度计算单元52和第一长度更新单元53。其中,第一带宽监测单元51用于监测TDM网络中对应带宽的链路的时隙数量;第一长度计算单元52用于当监测到时隙数量变化时,根据变化的时隙数量和第一设定系数计算队列配置长度;第一长度更新单元53用于采用计算获得的队列配置长度更新报文缓存模块的队列中的队列配置长度。
采用本实施例的技术方案可以根据TDM网络的带宽来动态调整队列的队列配置长度,即能够根据带宽来调整实际使用的缓存空间,能够提高报文的传输质量。TDM的链路可以由用户动态匹配,本实施例的技术方案能够有效适应TDM网络的动态带宽。
参见图15,为本发明另一实施例中队列长度配置模块的结构示意图,队列长度配置模块具体可以包括:第二带宽监测单元54、第二长度计算单元55和第二长度更新单元56。其中,第二带宽监测单元54用于监测宽带网络(如ADSL/ADSL2+/G.SHDSL/微波等链路网络)中对应带宽的链路信号强度;第二长度计算单元55用于当监测到信号强度变化时,根据链路的总带宽、当前的信号强度和第二设定系数计算队列配置长度;第二长度更新单元56用于采用计算获得的队列配置长度更新报文缓存模块的队列中的队列配置长度。
这里需要说明的是,上述各单元可以由一个或多个通用处理器来完成,也可以使用一个或多个专用的处理器或其他硬件处理单元来完成。同时,上述各单元可以集成在一个装置中,也可以分别集成在互联设备的各个装置中,例如,报文接收模块10和队列确定模块20可以集成在分类器中,由分类器执行接收报文并确定缓存队列的操作,或者,将上述所有单元都集成在一个装置中,在此并不限定。
同时,本发明实施例可以应用到网关,基站,路由器等等通信设备上。
本实施例可以执行本发明实施例提供的报文处理方法,相比于现有的固定队列缓存,本发明实施例的优点在于可以通过监测链路带宽,根据带宽改变队列配置长度,提供动态队列缓存,可以使得队列缓存根据链路带宽的变化而变化,从而改善因缓存空间过大而导致传输延迟,和缓存空间过小而导致抖动丢包的问题。
本领域普通技术人员可以理解:实现上述方法实施例的全部或部分步骤可以通过程序指令相关的硬件来完成,前述的程序可以存储于一计算机可读取存储介质中,该程序在执行时,执行包括上述方法实施例的步骤;而前述的存储介质包括:ROM、RAM、磁碟或者光盘等各种可以存储程序代码的介质。
最后应说明的是:以上实施例仅用以说明本发明的技术方案,而非对其限制;尽管参照前述实施例对本发明进行了详细的说明,本领域的普通技术人员应当理解:其依然可以对前述各实施例所记载的技术方案进行修改,或者对其中部分技术特征进行等同替换;而这些修改或者替换,并不使相应技术方案的本质脱离本发明各实施例技术方案的精神和范围。
Claims (11)
1.一种报文处理方法,其特征在于,包括:
接收报文,将所述报文存储到缓存单元;
确定所述报文对应的缓存队列;
判断所述报文的长度与所述缓存队列的队列实际长度之和是否小于等于所述缓存队列中队列配置长度,如果是,通过更新所述缓存队列缓存表中的缓存项报文指针内容为所述报文在所述缓存单元的起始存储地址,将所述报文加入到所述缓存队列;更新所述缓存表中缓存项索引和队列入队索引为所述报文建立新索引,更新所述队列实际长度为存储所述报文后的实际长度;
所述队列配置长度通过监测链路带宽变化,根据变化的带宽进行调整,包括:
监测时分复用网络中对应带宽的链路的时隙数量;
当监测到时隙数量变化时,根据变化的时隙数量和第一设定系数计算队列配置长度;
所述计算方法包括:CL=SLOT×单位时隙带宽×s,其中,CL为队列配置长度,SLOT为对应带宽的链路的时隙数量,s为第一设定系数;
采用计算获得的队列配置长度更新所述队列配置长度;
或者,
监测宽带网络中对应带宽的链路信号强度;
当监测到信号强度变化时,根据链路的总带宽、当前的所述信号强度和第二设定系数计算队列配置长度;
所述计算方法包括:CL=M×m%×k,其中,M为链路的总带宽,CL为队列配置长度,m%为信号百分比,k为第二设定系数;
采用计算获得的队列配置长度更新所述队列配置长度。
2.如权利要求1所述的报文处理方法,其特征在于,还包括:
当判断所述报文的长度与所述缓存队列的队列实际长度之和大于所述缓存队列中的所述队列配置长度时,丢弃所述报文。
3.根据权利要求1所述的报文处理方法,其特征在于,所述更新所述缓存表中缓存项索引和队列入队索引为所述报文建立新索引,更新所述队列实际长度为存储所述报文后的实际长度的步骤包括:
通过查找使用状态确定可用的缓存项为待存缓存项;所述使用状态位于所述缓存队列的缓存表缓存项中;
将所述待存缓存项的使用状态更新为已使用状态;
将所述待存缓存项的顺序索引号记录至所述缓存队列的入队列索引所指引的缓存项的动态索引中;
将所述待存缓存项的顺序索引号记录至所述缓存队列的入队列索引中;
将所述报文的长度累加至所述缓存队列的队列实际长度。
4.根据权利要求3所述的报文处理方法,其特征在于,在将所述待存缓存项的顺序索引号记录至所述缓存队列的入队列索引之后,还包括:
当识别到所述缓存队列的出队列索引为空时,则将当前的所述入队列索引记录至所述出队列索引。
5.根据权利要求3所述的报文处理方法,其特征在于,还包括:
当所述报文从所述缓存队列出队时,包括如下步骤:
根据队列的出队列索引识别对应的缓存项作为待取缓存项;
从所述待取缓存项内查询报文指针,根据查询得到的报文指针在对应的缓存单元中提取报文;
将所述待取缓存项的动态索引号记录至所述出队列索引;
将所述待取缓存项的动态索引和报文指针清零,且将所述待取缓存项的使用状态更新为可用状态,将队列实际长度更新为原来队列的实际长度减去提取出的报文的长度。
6.一种报文处理装置,其特征在于,包括:报文接收模块、队列确定模块、缓存控制模块、报文缓存模块;
所述报文接收模块,用于接收报文;
所述报文缓存模块,用于将所述报文存储到缓存单元;
所述队列确定模块,用于确定所述报文对应的缓存队列;
所述缓存控制模块,用于判断所述报文的长度与所述缓存队列的队列实际长度之和是否小于等于所述缓存队列中队列配置长度,如果是,通过更新所述缓存队列缓存表中的缓存项报文指针内容为所述报文在所述缓存单元的起始存储地址,将所述报文加入到所述缓存队列;更新所述缓存表中缓存项索引和队列入队索引为所述报文建立新索引,更新所述队列实际长度为存储所述报文后的实际长度;
队列长度配置模块,用于通过监测链路带宽变化,根据变化的带宽对所述队列配置长度进行调整;
所述队列长度配置模块包括:
第一带宽监测单元,用于监测时分复用网络中对应带宽的链路的时隙数量;
第一长度计算单元,用于当监测到时隙数量变化时,根据变化的时隙数量和第一设定系数计算队列配置长度;
所述计算方法包括:CL=SLOT×单位时隙带宽×s,其中,CL为队列配置长度,SLOT为对应带宽的链路的时隙数量,s为第一设定系数;
第一长度更新单元,用于采用计算获得的队列配置长度更新所述缓存队列中的队列配置长度;
或者,所述队列长度配置模块包括:
第二带宽监测单元,用于监测宽带网络中对应带宽的链路信号强度;
第二长度计算单元,用于当监测到信号强度变化时,根据链路的总带宽、当前的所述信号强度和第二设定系数计算队列配置长度;
所述计算方法包括:CL=M×m%×k,其中,M为链路的总带宽,CL为队列配置长度,m%为信号百分比,k为第二设定系数;
第二长度更新单元,用于采用计算获得的队列配置长度更新所述报文缓存模块的队列中的队列配置长度。
7.如权利要求6所述的报文处理装置,其特征在于,所述缓存控制模块还用于:
当判断所述报文的长度与所述缓存队列的队列实际长度之和大于所述缓存队列中设定的队列配置长度时,丢弃所述报文。
8.根据权利要求6所述的报文处理装置,其特征在于:
所述报文缓存模块还包括:
至少一个队列索引单元,每个所述队列索引单元分别对应于一个所述缓存队列,每个队列索引单元用于存储所述缓存队列的入队列索引、出队列索引、队列实际长度和队列配置长度;
缓存表单元,用于存储包括多个缓存项的缓存表,每个缓存项至少包括顺序索引、动态索引、使用状态和报文指针;
至少一个缓存单元,用于存储所述报文。
9.如权利要求8所述的报文处理装置,其特征在于,所述缓存控制模块包括:
计算单元,用于计算所述报文的长度与所述缓存队列的队列实际长度之和,并判断是否大于所述缓存队列中设定的队列配置长度,若判断结果为是则丢弃所述报文,否则触发查找单元动作;
查找单元,用于在所述缓存表单元中查找使用状态为可用的缓存项作为待存缓存项;
入队列单元,用于将接收到的所述报文加入到所述缓存队列;
所述入队列单元还用于,通过更新所述缓存队列缓存表中的缓存项报文指针内容为所述报文在所述缓存单元的起始存储地址,将所述报文加入到所述缓存队列;且将所述待存缓存项的使用状态设为已用;
第一索引更新单元,用于将所述待存缓存项的顺序索引号记录至所述缓存队列的入队列索引所指引的缓存项的动态索引中;
第二索引更新单元,用于将所述待存缓存项的顺序索引号记录至所述缓存队列的入队列索引中;
长度累加单元,用于将所述报文的长度累加至所述缓存队列的队列实际长度。
10.根据权利要求9所述的报文处理装置,其特征在于,所述缓存控制模块还包括:
出队列初始单元,用于在所述第二索引更新单元动作之后,且识别到所述缓存队列的出队列索引为空时,将当前的所述入队列索引记录至所述出队列索引。
11.根据权利要求10所述的报文处理装置,其特征在于,所述缓存控制模块还包括:
出队列识别单元,用于当根据调度策略从所述缓存单元中提取报文时,按照队列的出队列索引识别对应的缓存项作为待取缓存项;
报文提取单元,用于从所述待取缓存项内查询报文指针,根据报文指针在对应的缓存单元中提取报文;
第三索引更新单元,用于将所述待取缓存项的动态索引号记录至所述出队列索引;
第四索引更新单元,用于将所述待取缓存项的动态索引和报文指针清零,且将所述待取缓存项的使用状态设定为可用,将队列实际长度减去提取出的报文的长度。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN2009101107221A CN102035719B (zh) | 2009-09-29 | 2009-09-29 | 一种报文处理方法和装置 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN2009101107221A CN102035719B (zh) | 2009-09-29 | 2009-09-29 | 一种报文处理方法和装置 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN102035719A CN102035719A (zh) | 2011-04-27 |
CN102035719B true CN102035719B (zh) | 2013-04-24 |
Family
ID=43888077
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN2009101107221A Expired - Fee Related CN102035719B (zh) | 2009-09-29 | 2009-09-29 | 一种报文处理方法和装置 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN102035719B (zh) |
Families Citing this family (17)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN104040977B (zh) * | 2012-12-28 | 2016-10-05 | 华为技术有限公司 | 缓存报文的方法和装置 |
CN103929372B (zh) * | 2013-01-11 | 2017-10-10 | 华为技术有限公司 | 主动队列管理方法和设备 |
CN103166845A (zh) * | 2013-03-01 | 2013-06-19 | 华为技术有限公司 | 数据处理方法和装置 |
CN103595724A (zh) * | 2013-11-19 | 2014-02-19 | 曙光信息产业(北京)有限公司 | 报文的缓冲方法和装置 |
CN103647726B (zh) * | 2013-12-11 | 2017-01-11 | 华为技术有限公司 | 一种报文调度方法及装置 |
CN104038441A (zh) * | 2014-06-25 | 2014-09-10 | 浪潮(北京)电子信息产业有限公司 | 一种数据传输方法及系统 |
CN104243348B (zh) * | 2014-09-22 | 2018-03-23 | 曙光信息产业(北京)有限公司 | 一种数据处理方法和装置 |
CN104618265B (zh) * | 2014-12-30 | 2018-03-13 | 华为技术有限公司 | 一种报文转发方法和装置 |
CN106713456B (zh) * | 2016-12-22 | 2020-09-15 | 上海帝联信息科技股份有限公司 | 网络带宽统计方法及装置 |
CN109862297B (zh) * | 2017-11-30 | 2021-11-16 | 浙江宇视科技有限公司 | 窗口调整方法、装置及可读存储介质 |
CN109995658B (zh) * | 2017-12-29 | 2021-07-20 | 华为技术有限公司 | 发送、接收以及转发报文的方法和装置 |
CN110764709B (zh) * | 2019-10-28 | 2022-11-11 | 锐捷网络股份有限公司 | 报文的处理方法及装置 |
CN110784655B (zh) * | 2019-11-27 | 2021-06-11 | 杭州栖金科技有限公司 | 报文消耗方法、装置及图像处理设备 |
CN111314245B (zh) * | 2020-01-17 | 2023-10-24 | 鹏城实验室 | 报文调度方法及装置、存储介质及电子设备 |
CN113872881A (zh) * | 2020-06-30 | 2021-12-31 | 华为技术有限公司 | 队列信息的处理方法及装置 |
CN113347116B (zh) * | 2021-06-16 | 2022-05-27 | 杭州迪普科技股份有限公司 | QoS调度延迟抖动处理方法及装置 |
CN116545934B (zh) * | 2023-07-06 | 2023-09-15 | 成都星联芯通科技有限公司 | 报文调度方法、装置、卫星通信系统及存储介质 |
-
2009
- 2009-09-29 CN CN2009101107221A patent/CN102035719B/zh not_active Expired - Fee Related
Also Published As
Publication number | Publication date |
---|---|
CN102035719A (zh) | 2011-04-27 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN102035719B (zh) | 一种报文处理方法和装置 | |
US7359321B1 (en) | Systems and methods for selectively performing explicit congestion notification | |
CN109120544B (zh) | 一种数据中心网络中基于主机端流量调度的传输控制方法 | |
JP3438651B2 (ja) | パケット多重装置 | |
KR100933917B1 (ko) | 네트워크 스위치에서의 대역폭 보장 및 과부하 보호 방법및 장치 | |
US12101260B1 (en) | Multi-destination traffic handling optimizations in a network device | |
US9608927B2 (en) | Packet exchanging device, transmission apparatus, and packet scheduling method | |
US6795870B1 (en) | Method and system for network processor scheduler | |
CN101567855B (zh) | 分布式包交换系统和分布式包交换方法 | |
CN103023806B (zh) | 共享缓存式以太网交换机的缓存资源控制方法及装置 | |
US9769092B2 (en) | Packet buffer comprising a data section and a data description section | |
US20080063004A1 (en) | Buffer allocation method for multi-class traffic with dynamic spare buffering | |
US8929372B2 (en) | Grid router | |
JP2004015561A (ja) | パケット処理装置 | |
WO2002062013A2 (en) | Methods and systems providing fair queuing and priority scheduling to enhance quality of service in a network | |
JP2009022038A5 (zh) | ||
EP2526478B1 (en) | A packet buffer comprising a data section an a data description section | |
CN101834790A (zh) | 一种基于多核处理器的流量控制方法和多核处理器 | |
CN113064738B (zh) | 基于概要数据的主动队列管理方法 | |
US20020141423A1 (en) | Queue control method and relay apparatus using the method | |
US20110122883A1 (en) | Setting and changing queue sizes in line cards | |
CN103617132B (zh) | 一种基于共享存储的以太网终端发送实现方法及终端装置 | |
JP4276094B2 (ja) | パケットの優先制御を行う通信装置及び優先制御方法 | |
CN108173784B (zh) | 一种交换机的数据包缓存的老化方法及装置 | |
KR100959397B1 (ko) | 패킷 스케줄링 장치 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C06 | Publication | ||
PB01 | Publication | ||
C10 | Entry into substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
C14 | Grant of patent or utility model | ||
GR01 | Patent grant | ||
CF01 | Termination of patent right due to non-payment of annual fee |
Granted publication date: 20130424 Termination date: 20150929 |
|
EXPY | Termination of patent right or utility model |