CN1195361C - 基于网络处理器平台实现的动态部分缓冲共享方法 - Google Patents
基于网络处理器平台实现的动态部分缓冲共享方法 Download PDFInfo
- Publication number
- CN1195361C CN1195361C CNB021313350A CN02131335A CN1195361C CN 1195361 C CN1195361 C CN 1195361C CN B021313350 A CNB021313350 A CN B021313350A CN 02131335 A CN02131335 A CN 02131335A CN 1195361 C CN1195361 C CN 1195361C
- Authority
- CN
- China
- Prior art keywords
- grouping
- priority
- queue
- arrive
- drop threshold
- 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 15
- 230000015572 biosynthetic process Effects 0.000 claims description 25
- 230000003068 static effect Effects 0.000 claims description 7
- 230000001737 promoting effect Effects 0.000 claims 1
- 230000003190 augmentative effect Effects 0.000 abstract 1
- 230000001105 regulatory effect Effects 0.000 abstract 1
- 238000007726 management method Methods 0.000 description 5
- 238000005516 engineering process Methods 0.000 description 3
- 238000005457 optimization Methods 0.000 description 3
- 230000003139 buffering effect Effects 0.000 description 2
- 238000011084 recovery Methods 0.000 description 2
- 230000006399 behavior Effects 0.000 description 1
- 230000006835 compression Effects 0.000 description 1
- 238000007906 compression Methods 0.000 description 1
- 230000007812 deficiency Effects 0.000 description 1
- 230000008520 organization Effects 0.000 description 1
- 238000003908 quality control method Methods 0.000 description 1
- 230000001360 synchronised effect Effects 0.000 description 1
Images
Landscapes
- Data Exchanges In Wide-Area Networks (AREA)
Abstract
基于网络处理器平台实现的动态部分缓冲共享方法属于队列缓冲资源管理的技术领域,其特征在于:它是一种根据到达分组丢弃行为来动态调整丢弃阈值以提高系统缓冲资源利用率的方法,除了设置一个丢弃阈值TH(0≤TH≤N,N为队列容量)来控制分组丢弃外,还为每个优先级设置一个丢弃分组个数计数值和丢弃分组个数上限值,当丢弃计数值增大到丢弃上限值时,将推动丢弃阈值移动一定的步长以减少该优先级分组的丢弃,实现动态部分缓冲资源共享。它可以获得预期的相对公平性能,并能在一定程度上适应网络流量变化以提高系统缓冲资源利用率,同时算法机制简单,易于实现。
Description
技术领域
基于网络处理器平台实现的动态部分缓冲共享方法属于互联网队列缓冲资源管理技术领域。
背景技术
缓冲管理即队列缓冲资源管理,是服务质量(QoS)控制的一个核心技术。路由器通常采用队列缓存、延迟服务的方式提高输出链路的带宽利用率。缓冲管理机制在分组到达队列前端时依据一定的算法和信息决定是否允许该分组进入缓冲队列,即决定是否丢弃该分组,也称为丢弃控制。
传统的IP网络采用简单的先入先出队列和尾部丢弃控制机制,无法提供服务质量保证。目前的机制是基于静态阈值,通过限定不同优先级分组允许使用的缓冲资源来保证性能。但其阈值的设定没有指导性方法,难以获得预期的相对公平性能,另一方面由于阈值是静态设定的,不能适应网络流量的变化,在突发性将的流量条件下会导致资源利用率下降。
发明内容
本发明的目的在于提供一种根据到达分组丢弃行为来动态调整丢弃阈值的动态部分缓冲共享方法,它可以保证获得预期的相对公平性能,并能在一定程度上适应网络流量的变化,从而提高系统缓冲资源的利用率。
本发明是基于网络处理器平台实现的,这是因为网络处理器具有如下特征;内部有多个微处理单元,并采用专用的优化指令集和硬件多线程技术以提高处理能力;采用高速接口总线,内部多总线方式提高系统内部数据传输带宽;配合高速交换设备实现线速交换;提供主控单元实现控制平面的处理和协调。也就是说,它能弥补传统路由器的不足,提供实现服务质量控制所需要的高速处理能力,极有可能成为下一代网络服务的标准平台。
本发明的特征在于:它是一种基于网络处理器来实现动态部分缓冲共享的方法;它除了设置一个丢弃阈值TH(0≤TH≤N,N为队列容量)来控制分组丢弃外,还为每个优先级设置一个丢弃分组个数计数值和丢弃分组个数上限值,当丢弃计数值增大到丢弃上限值时,将推动丢弃阈值移动一定的步长以减少该优先级的分组丢弃,实现动态部分缓冲资源共享;具体而言,它依次包含以下步骤:
(1)检查到达分组的优先级是否隶属于高、的优先级中的一个,若不是则丢弃该分组,回收该分组占用的缓冲资源,留给下一个到达分组使用,算法流程结束;
(2)若是,则根据前端路由、分类模块提供的信息确定到达分组隶属的队列,从网络处理器中的静态随机存取存储器(SRAM)相应队列结构中读取队列的基本参数和缓冲管理算法的控制参数;
(3)对于不同的优先级级别分别判断是否允许到达分组进入队列:若为高优先级分组,则判断当前队列长度是否小于队列容量;若为低优先级分组,则判断当前队列长度是否小于丢弃阈值;
(4)若允许到达分组进入队列,则队列长度递增1,将该分组描述信息插入到队列链表中,并将队列基本参数写回SRAM中的队列结构中,算法流程结束;
(5)若不允许到达分组进入队列,则相应优先级的丢弃分组个数计数递增1,然后判断该丢弃计数值是否低于相应的丢弃上限值,若是则把更新后的算法控制参数写回到SRAM中的队列结构中;
(6)若该丢弃计数值超过(含等于)相应丢弃上限值,则把该丢弃计数清零;
(7)根据优先级级别的不同分别执行如下步骤:
若到达分组为低优先级,则判断丢弃阈值是否可以增大,如果可以则把丢弃阈值增大相应的步长;
若到达分组为高优先级,则判断丢弃阈值是否可以减小,如果可以则把丢弃阈值减小相应的步长;
(8)将更新后的算法控制参数(丢弃计数值,丢弃阈值)写回SRAM中的队列结构中,并回收该分组占用的缓冲资源,留给下一个到达分组使用,算法流程结束。
实践证明本发明达到了预期目的,可以很好的解决在不同业务优先级之间公平分配缓冲资源的问题,降低分组丢失抖动,并且能够在一定程度上适应网络流量的变化,提高系统缓冲资源的利用率。
附图说明
图1,网络处理器平台模型及队列组织结构图
图2,动态部分缓冲共享方法算法流程图
具体实施方式
本发明提出的动态部分缓冲共享方法在如图1所示的网络处理器平台实现。到达分组从高速输入输出接口进入系统,缓存在存储系统中,经由多处理机系统的处理后再从高速输入输出接口离开系统。
其中,存储器系统由低访问延迟的静态随机存取存储器SRAM和大容量的同步动态随机存取存储器SDRAM组成:如图1所示,需要占据大量存储空间的分组报文缓存在SDRAM中,而和服务质量控制相关、需要频繁访问的队列结构则放在SRAM中以优化系统性能。SDRAM中的分组缓冲空间按照最大传输单元长度分页,每页只允许缓冲一个分组,相应在SRAM中建立与其静态关联的分组描述符,便于缓冲资源的分配和回收。系统初始化时,所有分组描述符置空标志位,并串接在一起形成空闲缓冲资源链表。同一个队列中的分组也被链接在一起(如图1左上部所示),队列中保存头尾两个分组的指针,便于入、出队列的操作。当分组离开系统时,系统回收资源,将相应的描述符链入空闲缓冲资源链表。
本发明的缓冲管理方法(如图2所示)在每一个到达分组进入队列前被调用,依次含有如下步骤:
(1)检查到达分组的优先级是否隶属于高、的优先级中的一个,若不是则丢弃该分组,回收该分组占用的缓冲资源,留给下一个到达分组使用,算法流程结束;
(2)若是,则根据前端路由、分类模块提供的信息确定到达分组隶属的队列,从网络处理器中的静态随机存取存储器(SRAM)相应队列结构中读取队列的基本参数和缓冲管理算法的控制参数;
(3)对于不同的优先级级别分别判断是否允许到达分组进入队列:若为高优先级分组,则判断当前队列长度是否小于队列容量;若为低优先级分组,则判断当前队列长度是否小于丢弃阈值;
(4)若允许到达分组进入队列,则队列长度递增1,将该分组描述信息插入到队列链表中,并将队列基本参数写回SRAM中的队列结构中,算法流程结束;
(5)若不允许到达分组进入队列,则相应优先级的丢弃分组个数计数递增1,然后判断该丢弃计数值是否低于相应的丢弃上限值,若是则把更新后的算法控制参数写回到SRAM中的队列结构中;
(6)若该丢弃计数值超过(含等于)相应丢弃上限值,则把该丢弃计数清零;
(7)根据优先级级别的不同分别执行如下步骤:
若到达分组为低优先级,则判断丢弃阈值是否可以增大,如果可以则把丢弃阈值增大相应的步长;
若到达分组为高优先级,则判断丢弃阈值是否可以减小,如果可以则把丢弃阈值减小相应的步长;
(8)将更新后的算法控制参数(丢弃计数值,丢弃阈值)写回SRAM中的队列结构中,并回收该分组占用的缓冲资源,留给下一个到达分组使用,算法流程结束。
现结合实例步骤,举例说明如下:
假定:队列容量N=100,低优先级分组丢弃上限值为LB=5000,高优先级分组丢弃上限值为HB=5,调整步长均为SP=1。当前队列长度为L=99,丢弃阈值为TH=80,低优先级分组丢弃计数为LC=4999,高优先级分组丢弃计数为HC=4。顺序到达共三个分组,第一个为低优先级,余下两个为高优先级。假定分组到达间隔足够小,输出端没有分组离开队列,即没有队列缓冲资源回收。
低优先级分组到达队列前端时,它满足优先级范围要求,从SRAM中的相应队列结构中读出控制参数;当前队列长度大于丢弃阈值,判定应该丢弃该分组;低优先级分组丢弃计数递增1,LC=5000,到达相应丢弃上限,随即把该丢弃计数清零,LC=0;同时由于丢弃阈值TH=80,小于队列容量N,可以继续增大,将丢弃阈值递增步长SP,TH=81;把更新后的算法控制参数LC,TH写回到SRAM中的队列结构中;丢弃该分组,回收缓冲资源,算法流程结束。
第一个高优先级分组到达队列前端时,它满足优先级范围要求,从SRAM中的相应队列结构中读出控制参数;当前队列长度小于队列容量,判定应该接受该分组,队列长度递增1,L=100,修改队列链表参数,将更新后的基本参数(L等)写回到SRAM中的队列结构中;算法流程结束;
第二个高优先级分组到达队列前端时,它满足优先级范围要求,从SRAM中的相应队列结构中读出控制参数;当前队列长度等于队列容量,判定应该丢弃该分组;高优先级分组丢弃计数递增1,HC=5,到达相应丢弃上限,随即把该丢弃计数清零,HC=0;同时由于丢弃阈值TH=81,可以继续减小,将丢弃阈值递减步长SP,TH=80,以压缩低优先级分组允许使用的空间,从而减少高优先级分组的丢弃;把更新后的算法控制参数HC,TH写回到SRAM中的队列结构中;丢弃该分组,回收缓冲资源,算法流程结束。
它的优点在于,通过对丢弃上限,调整步长等控制参数的设定和优化,可以获得和预期值相吻合的非常稳定的相对丢失率性能,而和预先设定的丢弃阈值没有关系。同时算法机制简单,易于实现。
Claims (1)
1.基于网络处理器平台实现的动态部分缓冲共享方法,含有设定丢弃阈值来限定不同优先级分组允许使用的缓冲资源来实现丢弃控制的步骤,其特征在于:它是一种基于网络处理器来实现动态部分缓冲共享的方法;它除了设置一个丢弃阈值TH,O≤TH≤N,N为队列容量,来控制分组丢弃外,还为每个优先级设置一个丢弃分组个数计数值和丢弃分组个数上限值,当丢弃计数值增大到丢弃上限值时,将推动丢弃阈值移动一定的步长以减少该优先级的分组丢弃,实现动态部分缓冲资源共享;具体而言,它依次包含以下步骤:第1步:检查到达分组的优先级是否隶属于高、的优先级中的一个,若不是则丢弃该分组,回收该分组占用的缓冲资源,留给下一个到达分组使用,算法流程结束;第2步:若是,则根据前端路由、分类模块提供的信息确定到达分组隶属的队列,从网络处理器中的静态随机存取存储器SRAM相应队列结构中读取队列的基本参数和缓冲管理算法的控制参数;
第3步:对于不同的优先级级别分别判断是否允许到达分组进入队列:若为高优先级分组,则判断当前队列长度是否小于队列容量;若为低优先级分组,则判断当前队列长度是否小于丢弃阈值;
第4步:若允许到达分组进入队列,则队列长度递增1,将该分组描述信息插入到队列链表中,并将队列基本参数写回SRAM中的队列结构中,算法流程结束;
第5步:若不允许到达分组进入队列,则相应优先级的丢弃分组个数计数递增1,然后判断该丢弃计数值是否低于相应的丢弃上限值,若是则把更新后的算法控制参数写回到SRAM中的队列结构中;
第6步:若该丢弃计数值超过或等于相应丢弃上限值,则把该丢弃计数清零;
第7步:根据优先级级别的不同分别执行如下步骤:
若到达分组为低优先级,则判断丢弃阈值是否可以增大,如果可以则把丢弃阈值增大相应的步长;
若到达分组为高优先级,则判断丢弃阈值是否可以减小,如果可以则把丢弃阈值减小相应的步长;
第8步:将更新后的算法控制参数即丢弃计数值和丢弃阈值写回SRAM中的队列结构中,并回收该分组占用的缓冲资源,留给下一个到达分组使用,算法流程结束。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CNB021313350A CN1195361C (zh) | 2002-09-29 | 2002-09-29 | 基于网络处理器平台实现的动态部分缓冲共享方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CNB021313350A CN1195361C (zh) | 2002-09-29 | 2002-09-29 | 基于网络处理器平台实现的动态部分缓冲共享方法 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN1402472A CN1402472A (zh) | 2003-03-12 |
CN1195361C true CN1195361C (zh) | 2005-03-30 |
Family
ID=4746654
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CNB021313350A Expired - Fee Related CN1195361C (zh) | 2002-09-29 | 2002-09-29 | 基于网络处理器平台实现的动态部分缓冲共享方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN1195361C (zh) |
Families Citing this family (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
GB2418800B (en) * | 2003-04-02 | 2006-06-21 | Cisco Tech Inc | Path optimization in communications and data networks |
CN100413285C (zh) * | 2005-06-03 | 2008-08-20 | 清华大学 | 基于网络处理器的高速多维报文分类算法的设计和实现 |
CN100376099C (zh) * | 2005-07-04 | 2008-03-19 | 清华大学 | 基于网络处理器平台实现的综合队列管理方法 |
US8325608B2 (en) * | 2008-08-07 | 2012-12-04 | Qualcomm Incorporated | Efficient packet handling for timer-based discard in a wireless communication system |
CN101616097B (zh) * | 2009-07-31 | 2012-05-23 | 中兴通讯股份有限公司 | 一种网络处理器输出端口队列的管理方法及系统 |
CN116319590A (zh) * | 2021-12-21 | 2023-06-23 | 华为技术有限公司 | 一种队列控制的方法及装置 |
-
2002
- 2002-09-29 CN CNB021313350A patent/CN1195361C/zh not_active Expired - Fee Related
Also Published As
Publication number | Publication date |
---|---|
CN1402472A (zh) | 2003-03-12 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN1064500C (zh) | 临时存储数据包的方法和设备 | |
CA2575869C (en) | Hierarchal scheduler with multiple scheduling lanes | |
US8804751B1 (en) | FIFO buffer with multiple stream packet segmentation | |
US11637786B1 (en) | Multi-destination traffic handling optimizations in a network device | |
CN1736069A (zh) | 计算机或通信系统中的数据包处理 | |
CN1433623A (zh) | 利用时序安排和头压缩降低分组延迟的方法和设备 | |
CN1716914A (zh) | 用于业务混合的公平加权随机早期检测 | |
CN1677958A (zh) | 使用双数率同步动态ram的紧凑包交换节点存储体系结构 | |
US20030174708A1 (en) | High-speed memory having a modular structure | |
US7126959B2 (en) | High-speed packet memory | |
US8223788B1 (en) | Method and system for queuing descriptors | |
CN1195361C (zh) | 基于网络处理器平台实现的动态部分缓冲共享方法 | |
US7139280B2 (en) | Buffer management policy for shared memory switches | |
CN113064738A (zh) | 基于概要数据的主动队列管理方法 | |
CN110519180B (zh) | 网卡虚拟化队列调度方法及系统 | |
CN1384673A (zh) | 一种适合实现路由器服务质量的综合业务中的调度方法 | |
US7822051B1 (en) | Method and system for transmitting packets | |
CN1669279A (zh) | 提高分组应用的存储器存取效率 | |
Lin et al. | Two-stage fair queuing using budget round-robin | |
CN1389799A (zh) | 多优先级最佳动态域值缓存管理算法 | |
CN112055382B (zh) | 一种基于精细化区分的业务接入方法 | |
CN1281037C (zh) | 具有有效分组管理单元的分组转发系统及其操作方法 | |
CN113132258A (zh) | 一种时间敏感网络数据传输系统及时延分析方法 | |
CN1213546C (zh) | 一种数据传输过程中提高带宽利用率的方法 | |
CN1112788C (zh) | 基于队列状态的累计补偿型循环轮询不定长包调度方法 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C06 | Publication | ||
PB01 | Publication | ||
C14 | Grant of patent or utility model | ||
GR01 | Patent grant | ||
C19 | Lapse of patent right due to non-payment of the annual fee | ||
CF01 | Termination of patent right due to non-payment of annual fee |