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

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

【技术实现步骤摘要】
一种低时延抖动小突发的亏空轮询方法
本专利技术涉及用于数据交换网络的基于轮询的调度方法,尤其是涉及一种低时延抖动小突发的亏空轮询方法。
技术介绍
亏空轮询(Deficit Round Robin,DRR)方法是在数据交换网上经常采用的一种基于轮询的调度方法,它对于变长数据包的支持比较好,复杂度低。该方法包括如下的具体实现步骤:入队操作将有数据包等待发送的发送队列的序号放入一个链表中;出队操作在每次访问该链表头上的序号所对应的发送队列时,先将该发送队列的服务令牌数加上一个预约带宽的预约令牌数(每次轮询允许发送的字节数),每次发送数据包之前,判断该发送队列剩余的服务令牌数是否大于队列头上数据包长度,若是,发送该数据包,并将该发送队列的服务令牌数减去发送的数据包长度,然后取出该队列的下一个数据包,重复上述同样的操作直到该发送队列的服务令牌数小于将要发送的数据包长度,此时将这个发送队列序号加入至链表尾部,接着访问下一个发送队列,若某发送队列为空时,则把这个发送队列的序号移出链表。如上所述的DRR方法,显然可知:DRR方法的实现,需要在发送数据包之前知道数据包的长度从而决定是否发送,如此操作在实现上会增加系统资源的开销;同时采用DRR方法,持续对满足条件的链表头上序号所对应发送队列的进行服务,直至用尽它的服务令牌数,这样做会导致数据包的突发性大,同时还会带来很大的数据延时抖动。
技术实现思路
本专利技术需要解决的技术问题是提供一种低时延抖动小突发的亏空轮询方法,采用本专利技术能够减小数据突发和延时抖动,并且在实现上能够减少系统资源开销。-->为了解决上述技术问题,本专利技术提供了一种低时延抖动小突发的亏空轮询方法,该方法通过数据交换系统执行对各发送队列中数据包的发送,包括如下步骤:(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本文档来自技高网...

【技术保护点】
一种低时延抖动小突发的亏空轮询方法,该方法通过数据交换系统执行对各发送队列中数据包的发送,包括如下步骤:(a1)系统初始化,分别为每个发送队列赋予最小令牌数,对需要发送的数据包进行入队操作,设置可存储若干发送队列序号的当前服务链表和 下一次服务链表;(a2)判断当前服务链表中位于链表头的序号所对应的发送队列的令牌数是否大于或等于最小令牌数,若是,发送该发送队列的头数据包,并且使该发送队列的令牌数减去头数据包的长度,否则执行步骤(a4);(a3)发送头数据 包后,判断该发送队列是否为空,若是,将该发送队列所对应的序号从当前服务链表中去掉,执行步骤(a5);否则进一步判断相减后发送队列的令牌数是否大于或等于最小令牌数,若是,将该发送队列的序号加入至当前服务链表的尾部,执行步骤(a5),否则执行步骤(a4);(a4)将该发送队列的序号加入至下一次服务链表的尾部,并且使该发送队列的令牌数增加相应的预约令牌数;(a5)重复步骤(a2)至(a5),直至当前服务链表为空;(a6)将空的当前服务链表设置为下一次服务链表 ,同时将下一次服务链表设置为当前服务链表,重复步骤(a2)至(a6),直至当前服务链表和下一次服务链表均为空。...

【技术特征摘要】
1、一种低时延抖动小突发的亏空轮询方法,该方法通过数据交换系统执行对各发送队列中数据包的发送,包括如下步骤:(a1)系统初始化,分别为每个发送队列赋予最小令牌数,对需要发送的数据包进行入队操作,设置可存储若干发送队列序号的当前服务链表和下一次服务链表;(a2)判断当前服务链表中位于链表头的序号所对应的发送队列的令牌数是否大于或等于最小令牌数,若是,发送该发送队列的头数据包,并且使该发送队列的令牌数减去头数据包的长度,否则执行步骤(a4);(a3)发送头数据包后,判断该发送队列是否为空,若是,将该发送队列所对应的序号从当前服务链表中去掉,执行步骤(a5);否则进一步判断相减后发送队列的令牌数是否大于或等于最小令牌数,若是,将该发送队列的序号加入至当前服务链表的尾部,执行步骤(a5),否则执行步骤(a4);(a4)将该发送队列的序号加入至下一次服务链表的尾部,并且使该发送队列的令牌数增加相应的预约令牌数;(a5)重复步骤(a2)至(a5),直至当前服务链表为空;(a6)将空的当前服务链表设置为下一次服务链表,同时将下一次服务链表设置为当前服务链表,重复步骤(a2)至(a6),直至当前服务链表和下一次服务链表均为空。2、根据权利要求1所述的一种低时延抖动小突发的亏空轮询方法,其特征在于,步骤(a1)中的...

【专利技术属性】
技术研发人员:吴代立刘欣
申请(专利权)人:中兴通讯股份有限公司
类型:发明
国别省市:94[中国|深圳]

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1
相关领域技术
  • 暂无相关专利