CN100499580C - 一种低时延抖动小突发的亏空轮询方法 - Google Patents

一种低时延抖动小突发的亏空轮询方法 Download PDF

Info

Publication number
CN100499580C
CN100499580C CNB2005100899009A CN200510089900A CN100499580C CN 100499580 C CN100499580 C CN 100499580C CN B2005100899009 A CNB2005100899009 A CN B2005100899009A CN 200510089900 A CN200510089900 A CN 200510089900A CN 100499580 C CN100499580 C CN 100499580C
Authority
CN
China
Prior art keywords
transmit queue
token number
packet
chained list
current service
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
Application number
CNB2005100899009A
Other languages
English (en)
Other versions
CN1913483A (zh
Inventor
吴代立
刘欣
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
ZTE Corp
Original Assignee
ZTE Corp
Priority date (The priority date 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 date listed.)
Filing date
Publication date
Application filed by ZTE Corp filed Critical ZTE Corp
Priority to CNB2005100899009A priority Critical patent/CN100499580C/zh
Publication of CN1913483A publication Critical patent/CN1913483A/zh
Application granted granted Critical
Publication of CN100499580C publication Critical patent/CN100499580C/zh
Expired - Fee Related legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Landscapes

  • Data Exchanges In Wide-Area Networks (AREA)

Abstract

本发明公开了一种低时延抖动小突发的亏空轮询方法,包括如下步骤:系统初始化,为每个发送队列赋予最小令牌数,设置当前服务链表和下一次服务链表;对需要发送的数据包进行入队操作;判断当前服务链表头的序号所对应的发送队列的令牌数是否不小于最小令牌数,若是,发送该队列的头数据包,并且将其令牌数减去头数据包的长度;判断相减后令牌数是否不小于最小令牌数,若是,将其序号加入当前服务链表尾部,否则将其序号加入下一次服务链表尾部;重复上述步骤,直至当前服务链表为空;调换当前服务链表与下一次服务链表,重复上述步骤直至两个服务链表均为空。采用本发明能够减小数据突发和延时抖动,并且在实现上能够减少系统资源开销。

Description

一种低时延抖动小突发的亏空轮询方法
技术领城
本发明涉及用于数据交换网络的基于轮询的调度方法,尤其是涉及一种低时延抖动小突发的亏空轮询方法。
背景技术
亏空轮询(Deficit Round Robin,DRR)方法是在数据交换网上经常采用的一种基于轮询的调度方法,它对于变长数据包的支持比较好,复杂度低。该方法包括如下的具体实现步骤:入队操作将有数据包等待发送的发送队列的序号放入一个链表中;出队操作在每次访问该链表头上的序号所对应的发送队列时,先将该发送队列的服务令牌数加上一个预约带宽的预约令牌数(每次轮询允许发送的字节数),每次发送数据包之前,判断该发送队列剩余的服务令牌数是否大于队列头上数据包长度,若是,发送该数据包,并将该发送队列的服务令牌数减去发送的数据包长度,然后取出该队列的下一个数据包,重复上述同样的操作直到该发送队列的服务令牌数小于将要发送的数据包长度,此时将这个发送队列序号加入至链表尾部,接着访问下一个发送队列,若某发送队列为空时,则把这个发送队列的序号移出链表。如上所述的DRR方法,显然可知:DRR方法的实现,需要在发送数据包之前知道数据包的长度从而决定是否发送,如此操作在实现上会增加系统资源的开销;同时采用DRR方法,持续对满足条件的链表头上序号所对应发送队列的进行服务,直至用尽它的服务令牌数,这样做会导致数据包的突发性大,同时还会带来很大的数据延时抖动。
美国专利申请US2003/0231590A1公开了一种使用多个循环链表的亏空轮询方法,设置多个用于存储发送队列序号的循环链表,入队操作将有数据包等待发送的发送队列的序号放入其中一链表中,出队操作在每次访问该链表头上的序号所对应的发送队列时,判断该发送队列的令牌数是否大于该队列中头数据包长度,根据判断结果发送该队列的头数据包后,根据调度规则将该发送队列的序号移至对应的循环链表的尾部,之后依次对该链表中所有发送队列序号执行同样的处理,直到该链表为空后,采用同样的方法处理下一链表上的发送队列序号,直到所有链表均为空。但是,该方法在发送数据包之前也需要知道数据包的长度,还是会增加系统资源的开销;另外,需要设置的循环链表的个数较多时,又会增加系统资源的开销。
发明内容
本发明需要解决的技术问题是提供一种低时延抖动小突发的亏空轮询方法,采用本发明能够减小数据突发和延时抖动,并且在实现上能够减少系统资源开销。
为了解决上述技术问题,本发明提供了一种低时延抖动小突发的亏空轮询方法,该方法通过数据交换系统执行对各发送队列中数据包的发送,包括如下步骤:
(a1)系统初始化,分别为每个发送队列赋予最小令牌数,对需要发送的数据包进行入队操作,设置可存储若干发送队列序号的当前服务链表和下一次服务链表;
(a2)判断当前服务链表中位于链表头的序号所对应的发送队列的令牌数是否大于或等于最小令牌数,若是,发送该发送队列的头数据包,并且使该发送队列的令牌数减去头数据包的长度,否则执行步骤(a4);
(a3)发送头数据包后,判断该发送队列是否为空,若是,将该发送队列所对应的序号从当前服务链表中去掉,执行步骤(a5);否则进一步判断相减后发送队列的令牌数是否大于或等于最小令牌数,若是,将该发送队列的序号加入至当前服务链表的尾部,执行步骤(a5),否则执行步骤(a4);
(a4)将该发送队列的序号加入至下一次服务链表的尾部,并且使该发送队列的令牌数增加相应的预约令牌数;
(a5)重复步骤(a2)至(a5),直至当前服务链表为空;
(a6)将空的当前服务链表设置为下一次服务链表,同时将下一次服务链表设置为当前服务链表,重复步骤(a2)至(a6),直至当前服务链表和下一次服务链表均为空。
进一步地,本发明还具有如下特点,步骤(a1)中的入队操作包括如下步骤:
(b1)将需要发送的数据包放入各自数据包所描述的发送队列;
(b2)分别将具有需要发送数据包的发送队列的序号加入至当前服务链表,并且对该发送队列分别赋予相应的预约令牌数,使该发送队列的令牌数为最小令牌数与预约令牌数之和。
进一步地,本发明还具有如下特点,还包括如下步骤:
系统初始化后,在对各发送队列进行操作期间,若有新的数据包需要发送,则将该数据包放入其数据包所描述的发送队列,并且判断该发送队列是否由空到非空,若是,将该发送队列的序号加入至下一次服务链表,同时使该发送队列的令牌数增加相应的预约令牌数。
进一步地,本发明还具有如下特点:所述预约令牌数根据发送队列中数据包的业务类型来设定,若需要发送的数据包较大时,可设置较大的预约令牌数。
进一步地,本发明还具有如下特点:所述最小令牌数可根据需要发送的数据包的长度特性来设定,其数值小于预约令牌数。
进一步地,本发明还具有如下特点:所述发送队列中数据包的业务类型可分为4种,相应的预约令牌数分别取值为6400字节、4800字节、3200字节和1600字节,最小令牌数取值为100字节。
与现有技术相比,本发明具有以下优点:
A、由于本方法中系统对当前发送队列进行操作时,直接比较当前发送队列的令牌数与最小令牌数,如此操作使得调度之前不需要访问位于外部存储器的数据包的描述符中读出数据包的长度进行令牌数计算,从而减小网络处理器的消耗,大大提高调度的效率;
B、由于本方法中设置有当前服务链表和下一次服务链表,分别存放当前服务的发送队列序号和下一次服务的发送队列序号,两链表可进行相互调换进行操作,当系统对当前发送队列进行操作时,每次操作只发送其头数据包,并且经过相应的比较判断,将该发送队列放入当前服务链表或下一次服务链表的尾部,然后对下一个发送队列进行相同处理,如此操作减短了每次服务发送队列的时间片,使得发送队列的服务更加平滑,保证了队列服务的公平性,而且大大减小了业务流的突发性和数据包的延时抖动,改善了数据流的流量特性。
附图说明
图1是根据本发明的低时延抖动小突发的亏空轮询方法的流程示意图;
图2是现有亏空轮询方法的服务公平性的示意图;
图3是根据本发明的低时延抖动小突发的亏空轮询方法的服务公平性的示意图;
图4是现有亏空轮询方法与本发明之间,各自数据包时延抖动的对比图。
具体实施方式
为了深入了解本发明,下面结合附图及具体实施例对本发明进行详细说明。
在本实施例中,根据本发明的亏空轮询方法应用于3G通信系统中基站控制器(BSC)的交换单元,该交换单元采用美国英特尔公司(Intel.Inc.)的网络处理器。
如图1所示,根据本发明的一种低时延抖动小突发的亏空轮询方法,包括如下步骤:
步骤101,系统初始化,分别为每个发送队列赋予一个最小令牌数token_min,设置且初始化两个服务链表,这两个服务链表分别为存储当前需要服务的发送队列序号的当前服务链表(LinkListNow)和存储下一次需要服务的发送队列序号的下一次服务链表(LinkListNext),并且对需要发送的数据包进行入队操作,入队操作包括将需要发送的数据包放入各自数据包所描述的发送队列,以及分别将具有需要发送数据包的发送队列的序号加入至LinkListNow,同时对该发送队列分别赋予相应的预约令牌数token_preengage[i],使该发送队列的令牌数为最小令牌数与预约令牌数之和,即token_current[i]=token_min+token_preengage[i],i表示该发送队列的序号;
步骤102,系统判断LinkListNow中位于链表头的序号i所对应的发送队列Q[i]的令牌数token_current[i]是否大于或等于最小令牌数token_min,若token_current[i]≥token_min,发送该发送队列Q[i]的头数据包,并且使发送队列Q[i]的当前令牌数减去头数据包的长度,即token_current[i]=token_current[i]-Ltransmit(头数据包的长度),否则执行步骤104;
步骤103,发送头数据包后,系统判断发送队列Q[i]是否为空,若为空,将该发送队列所对应的序号i从LinkListNow中去掉,执行步骤105;否则进一步判断发送队列Q[i]的令牌数token_current[i]是否大于或等于最小令牌数token_min,若token_current[i]≥token_min,将该发送队列Q[i]的序号i加入至LinkListNow的尾部,执行步骤105,否则执行步骤104;
步骤104,将该发送队列的序号i加入至LinkListNext的尾部,并且使发送队列Q[i]的令牌数增加相应的预约令牌数,即token_current[i]=token_current[i]+token_preengage[i];
步骤105,重复步骤102至步骤105,直至LinkListNow为空;
步骤106,系统对当前服务链表和下一次服务链表进行调换,即把空的LinkListNow设置为LinkListNext,同时将LinkListNext设置为LinkListNow,重复步骤102至步骤106,直至LinkListNow和LinkListNext均为空,从而完成所有需要发送的数据包的发送。
系统初始化后,在对各发送队列进行操作期间,若有新的数据包需要发送,将该数据包放入其数据包所描述的发送队列,并且判断该发送队列是否由空到非空,若是,将该发送队列的序号i加入至下一次服务链表,同时使该发送队列的令牌数增加相应的预约令牌数,即token_current[i]=token_current[i]+token_preengage[i]。
本方法中最小令牌数token_min可根据需要发送的数据包的长度特性来设定,这样可以避免每次进行轮询时,窄带宽的发送队列都有一次发送的机会,从而保证服务发送队列的公平性;所述预约令牌数可根据发送队列中数据包的业务类型来设定,若需要发送的数据包较大时,可设置较大的预约令牌数。
下面将结合具体的实际情况,对本方法与现有亏空轮询方法进行比较,本实施例中交换单元对数据包的业务类型进行了分类,共分为4种业务类型,与每一种业务类型相对应的发送队列的预约令牌数分别为6400字节、4800字节、3200字节和1600字节,最小令牌数为100字节;每一类业务数据包的长度成指数分布,平均数据包长为512字节,数据包速率为0.2Mp/s,链路速率为1Gbps。
此时,采用现有亏空轮询方法的服务公平性如图2所示,图中每一条横实线表示对每一类业务服务的时间片长短,按照现有亏空轮询方法,当系统服务某个发送队列时,需要耗尽该发送队列的所有令牌数才服务下一个发送队列,如此操作会造成服务时间太集中,数据包的突发性很大。然而,根据本发明的亏空轮询方法的服务公平性如图3所示,图中每一条横实线表示对每一类业务服务的时间片长短,从图中显然可知,采用本方法后,系统对各个发送队列的服务更加平滑,并且大大减小业务流的突发性。
图4是现有亏空轮询方法与本发明之间,各自数据包时延抖动的对比图,实线是采用现有亏空轮询方法所产生的数据包延时统计特性,虚线是采用根据本发明的亏空轮询方法所产生的数据包延时统计特性,从图中显然可知,本方法对于数据包的延时抖动有了很大的改善。
因此,本发明改进了现有亏空轮询方法的轮询机制和比较发送队列数据包的先后顺序,不仅减少了系统资源的消耗,而且在业务处理的公平性以及减小数据包时延抖动等方面都得到了很大的提高。此外,改进后的方法实现简单,复杂度低。

Claims (6)

1、一种低时延抖动小突发的亏空轮询方法,该方法通过数据交换系统执行对各发送队列中数据包的发送,包括如下步骤:
(a1)系统初始化,分别为每个发送队列赋予最小令牌数,对需要发送的数据包进行入队操作,设置可存储若干发送队列序号的当前服务链表和下一次服务链表;
(a2)判断当前服务链表中位于链表头的序号所对应的发送队列的令牌数是否大于或等于最小令牌数,若是,发送该发送队列的头数据包,并且使该发送队列的令牌数减去头数据包的长度,否则执行步骤(a4);
(a3)发送头数据包后,判断该发送队列是否为空,若是,将该发送队列所对应的序号从当前服务链表中去掉,执行步骤(a5);否则进一步判断相减后发送队列的令牌数是否大于或等于最小令牌数,若是,将该发送队列的序号加入至当前服务链表的尾部,执行步骤(a5),否则执行步骤(a4);
(a4)将该发送队列的序号加入至下一次服务链表的尾部,并且使该发送队列的令牌数增加相应的预约令牌数;
(a5)重复步骤(a2)至(a5),直至当前服务链表为空;
(a6)将空的当前服务链表设置为下一次服务链表,同时将下一次服务链表设置为当前服务链表,重复步骤(a2)至(a6),直至当前服务链表和下一次服务链表均为空。
2、根据权利要求1所述的一种低时延抖动小突发的亏空轮询方法,其特征在于,步骤(a1)中的入队操作包括如下步骤:
(b1)将需要发送的数据包放入各自数据包所描述的发送队列;
(b2)分别将具有需要发送数据包的发送队列的序号加入至当前服务链表,并且对该发送队列分别赋予相应的预约令牌数,使该发送队列的令牌数为最小令牌数与预约令牌数之和。
3、根据权利要求2所述的一种低时延抖动小突发的亏空轮询方法,其特征在于,该方法还包括如下步骤:
系统初始化后,在对各发送队列进行操作期间,若有新的数据包需要发送,则将该数据包放入其数据包所描述的发送队列,并且判断该发送队列是否由空到非空,若是,将该发送队列的序号加入至下一次服务链表,同时使该发送队列的令牌数增加相应的预约令牌数。
4、根据权利要求3所述的一种低时延抖动小突发的亏空轮询方法,其特征在于:所述预约令牌数根据发送队列中数据包的业务类型来设定,若需要发送的数据包较大时,设置较大的预约令牌数。
5、根据权利要求4所述的一种低时延抖动小突发的亏空轮询方法,其特征在于:所述最小令牌数根据需要发送的数据包的长度特性来设定,其数值小于预约令牌数。
6、根据权利要求5所述的一种低时延抖动小突发的亏空轮询方法,其特征在于:所述发送队列中数据包的业务类型分为4种,相应的预约令牌数分别取值为6400字节、4800字节、3200字节和1600字节,最小令牌数取值为100字节。
CNB2005100899009A 2005-08-10 2005-08-10 一种低时延抖动小突发的亏空轮询方法 Expired - Fee Related CN100499580C (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CNB2005100899009A CN100499580C (zh) 2005-08-10 2005-08-10 一种低时延抖动小突发的亏空轮询方法

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CNB2005100899009A CN100499580C (zh) 2005-08-10 2005-08-10 一种低时延抖动小突发的亏空轮询方法

Publications (2)

Publication Number Publication Date
CN1913483A CN1913483A (zh) 2007-02-14
CN100499580C true CN100499580C (zh) 2009-06-10

Family

ID=37722258

Family Applications (1)

Application Number Title Priority Date Filing Date
CNB2005100899009A Expired - Fee Related CN100499580C (zh) 2005-08-10 2005-08-10 一种低时延抖动小突发的亏空轮询方法

Country Status (1)

Country Link
CN (1) CN100499580C (zh)

Families Citing this family (9)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN102316009A (zh) * 2010-07-08 2012-01-11 创锐讯通讯科技(上海)有限公司 改进的dwrr调度方法
CN102694715A (zh) * 2011-03-22 2012-09-26 中兴通讯股份有限公司 一种授权请求状态信息的控制方法及系统
CN102420758B (zh) * 2011-11-30 2014-04-30 华为技术有限公司 队列调度方法及装置
CN105429897A (zh) * 2014-09-19 2016-03-23 深圳市中兴微电子技术有限公司 一种服务质量调度方法和装置
CN106254272B (zh) * 2016-09-05 2019-08-02 盛科网络(苏州)有限公司 基于硬件实现的弹性的加权公平调度方法及调度系统
CN108460731A (zh) * 2017-03-16 2018-08-28 中国人民解放军海军航空工程学院青岛校区 一种消除联网飞行仿真中视景图像抖动的方法
CN110032453B (zh) * 2019-04-19 2022-05-03 上海兆芯集成电路有限公司 用以任务调度与分配的处理系统及其加速方法
CN110445729B (zh) * 2019-09-05 2023-03-24 北京物芯科技有限责任公司 一种队列调度方法、装置、设备及储存介质
CN112511463B (zh) * 2020-11-18 2022-04-05 潍柴动力股份有限公司 报文的发送方法及装置

Also Published As

Publication number Publication date
CN1913483A (zh) 2007-02-14

Similar Documents

Publication Publication Date Title
CN100499580C (zh) 一种低时延抖动小突发的亏空轮询方法
US8917740B2 (en) Channel service manager
CN100512207C (zh) 一种流量控制方法
CN101803313B (zh) 用于提供拥塞信息的方法和装置
US8310934B2 (en) Method and device for controlling information channel flow
CN101282305B (zh) 分布式系统中的带宽控制方法及业务板
CN101322357A (zh) 千兆比特/10千兆比特以太网系统中的显式流控制
US20030223442A1 (en) Buffer memory reservation
CN103312807A (zh) 数据传输方法、装置及系统
CN101692648A (zh) 一种队列调度方法及系统
CN1656775B (zh) 分组应用的基于速率的调度
CN101272349B (zh) 一种质量服务的优先级模拟队列控制方法及装置
CN110868359B (zh) 一种网络拥塞控制方法
CN104184679A (zh) 一种智能变电站中报文的调度方法和装置
CN105573193A (zh) 网络布置和融合承载网络中实时电报区分优先次序的方法
JP5347836B2 (ja) 通信装置および通信方法
CN101616096B (zh) 队列调度方法及装置
CN106330710B (zh) 数据流调度方法及装置
JP4973452B2 (ja) WiMAXスケジューラーの待ち時間カウントを使用した無効データ除去
CN100459743C (zh) 一种高速下行分组接入业务的调度方法
CN205142245U (zh) 用于在载波侦听多址接入网络中进行组播通信的装置
JP4846601B2 (ja) 不足ラウンドロビン方式のデータパケットスケジューリングのインスタントサービス方法
CN101453411B (zh) 建立标签交换路径的方法、系统和设备
CN107040478A (zh) 令牌申请处理方法及装置
CN100508455C (zh) 一种提高分组传输性能的方法

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: 20090610

Termination date: 20150810

EXPY Termination of patent right or utility model