提高网络拥塞时数据传输性能的方法

文档序号:7898321阅读:295来源:国知局
专利名称:提高网络拥塞时数据传输性能的方法
技术领域
本发明涉及网络通信技术领域,尤其涉及一种提高网络拥塞时数据传输性能的方法。
背景技术
随着网络通信技术的发展,对网络通信中的数据传输性能的要求也日益提高。为了保证网络通信中数据传输性能,即保证数据的可靠传输,以满足用户的通信需求,目前通常采用PQ(优先队列)等拥塞管理技术对数据的传输过程进行管理,当输出接口发生拥塞时,可以根据所传输数据的重要程度、需要提供的服务质量等级等对数据流进行分类,通常为根据数据报文承载的业务属性确定数据的发送优先级;然后将分类后的数据分别送入不同优先级的队列,这种方法在一定程度上保证了网络中具有较高优先级即要求服务质量等级较高的高发送优先级的数据业务的可靠传输,例如对于网络通信中要求服务质量等级较高的实时业务数据,可以送入高优先级队列进行优先传输,以使其服务质量得到优先保证。
数据拥塞管理技术一定程度上解决了网络通信发生拥塞时高优先级数据可靠传输的问题,然而,由于网络中传输的数据包大小各异,较大的数据包在传输过程中需要的时间要比较小的数据包长一些,这种传输时间的差异对于高速链路来说是可以忽略不计的,但对于低速链路上述时间的差异却可能导致数据传输性能大大降低,而无法满足用户的通信需求。比如对于语音业务业务数据,通常要求端到端的时延不宜超过150ms,单跳的时延不宜超过20ms,传输时延通常为数据包大小(帧长)除以链路带宽,对于低速链路大数据包的传输时延如图1所示,对于768Kbps以下的低速链路,大数据包引起的时延远远超出了语音业务数据通常要求的端到端的时延值。也就是说大数据包随后到达的实时业务数据包,虽然进入了高优先级队列(即High队列)中也必需等待大数据包发送完毕后才能得到调度处理,如图2所示,实时业务数据包2在大数据包1进行调度处理的瞬间到达,但实时业务数据包2必须等到大数据包1发送完后才能进行调度处理,假设大数据包1长度为1500字节,输出的链路带宽为256Kbps,则实时业务数据包2的时延将达到46ms。
为了解决上述问题,通常想到的方法便是对大数据包进行分片,减小最大传输单元,对数据包进行分片可以在网络层或链路层进行,如果在网络层进行数据包的分片,并在目的端的网络层进行分片后数据的重组,则将增加对网络带宽资源的消耗,必将加剧网络的拥塞程度,因此对大数据包进行分片应该在链路层进行。现有的MP(PPP多链路协议)分片技术便是一种链路层分片技术,该技术将PPP(点到点协议)帧按一定的分片策略分成若干片,在每一个分片上封装MP头,做起始(B)、终止(E)等标记,并编上序号,然后将所有分片分发给各个通道进行发送,在接收端按序号对分片进行重组,如果有分片丢失,则整个数据包因无法重组而被丢弃。
因此,如果采用MP分片技术就必需保证分片报文的按序发送和接收。通常对于没有应用PQ、CQ(定制队列)、WFQ(加权公平队列)等排队机制的情况,分片报文的传输顺序是可以保证的;但对于采用了上述排队机制的通信网络来说,如果仍采用现有的MP分片技术,则可能出现因严重打乱分片报文的传输顺序而在接收端无法进行报文的重组,从而无法保证数据的可靠传输的情况。

发明内容
鉴于上述现有技术所存在的问题,本发明的目的是提供一种提高网络拥塞时数据传输性能的方法,以解决链路中因大数据包产生的传输时延而导致无法满足数据传输服务质量要求的问题。
本发明的目的是这样实现的所述的提高网络拥塞时数据传输性能的方法,包括a、将待发送的数据进行分类;b、将具有高发送优先级的数据转入高优先级队列中,其他数据转入分片临时队列和较低优先级队列中;c、在进行数据发送处理时,首先对高优先级队列和分片临时队列中的数据进行发送处理,然后对较低优先级队列中的数据进行发送处理。
所述的步骤a包括根据QoS(服务质量)值对数据进行分类。
所述的步骤a包括根据IP(互联网协议)的五元组信息对数据进行分类。
所述的步骤a包括根据数据包的输入接口对数据进行分类。
所述的骤b包括根据需要将从较低优先级队列中调度出的大数据包进行分片,并在所述的分片中封装序号后转入分片临时队列中;大数据包是否需要分片及分片的大小是根据高优先级数据业务允许的时延和数据传输带宽确定的,分片大小等于允许的时延乘以数据传输带宽。
所述的高发送优先级的数据为根据数据报文承载的业务属性确定在网络拥塞时需要优先进行发送的数据;所述的大数据包为其大小在发送过程中对高优先级数据产生的时延超过该类数据允许的时延。
所述的较低优先级队列可以进一步包括一个或多个不同优先级的数据发送队列。
当采用单通道链路(即低速链路)进行数据发送时,所述的步骤c进一步包括c1、调度高优先级队列中的数据并发送出去;c2、当高优先级队列中的数据发送完毕时,调度分片临时队列中的数据并发送出去;c3、当高优先级队列和分片临时队列中的数据均发送完毕时,调度较低优先级队列中的数据并进行发送处理。
当采用多通道链路进行数据发送时所述的步骤b还包括将各数据均封装序号后分别加入各个队列中;所述的步骤c进一步包括c4、调度分片临时队列中的数据并发送出去;c5、当分片临时队列中的数据发送完毕时,调度高优先级队列中的数据并发送出去;
c6、当分片临时队列和高优先级队列中的数据均发送完毕时,调度较低优先级队列中的数据并进行发送处理;在接收端根据各数据的序号进行数据的接收及分片数据的重新组装。
由上述技术方案可以看出,本发明是在低速链路发生拥塞时,将大数据包在链路层进行分片,减小数据包的长度,使实时业务数据等高优先级数据交叉在分片报文中发送,避免实时业务数据因为等待大数据包发送而引起的时延和抖动,保证实时业务数据的服务质量。本发明还可以在捆绑多通道的链路上应用QoS的排队机制时,最大程度的减少数据传输过程中分片报文的乱序,而同时又能保证实时业务数据等高优先级数据的优先调度。本发明实现也较为简单,只需要在原来实现的排队策略基础上,增加一个分片临时队列,没有其他的系统开销。另外,本发明的适用范围较广,可以应用于包括PPP、HDLC(高级数据链路控制)、FR(帧中继)等多种链路中。


图1为不同长度帧在不同带宽链路中的传输时延表;图2为现有技术中数据包发送的示意图;图3为本发明中采用单通道进行数据包发送的示意图;图4为本发明中采用多通道进行数据包发送的示意图;图5为本发明的具体实施方式
流程图。
具体实施例方式
本发明的所述的提高网络拥塞时数据传输性能的方法的核心思想是当链路层因网络拥塞而发送数据包失败后,将数据包按一定的规则,例如IP的五元组信息或者QoS(服务质量)值等,入相应的队列,其中IP的五元组信息包括源和目的地址,源和目的端口号,协议号,相应的队列包括高优先级队列、分片临时队列和较低优先级队列。实时业务入高优先级队列,对于待发送的大数据包分片后放入分片临时队列中,其他业务数据放入较低优先级队列。实时数据包交叉到大数据包的分片中进行调度,这样便可以保证发送失败的数据中具有高优先级的数据可以优先发送出去,且保证其不会因为其他大数据包的发送导致较长的时延。
本发明的具体实施方式
如图3、图4和图5所示,具体实现过程描述如下,参见图5步骤51将因网络拥塞而未发送出去的数据包按照相应的发送优先级对其进行分类;具体可以根据各数据包的QoS(服务质量)值进行分类,也可以根据IP数据包的五元组信息进行分类。
步骤52将具有高发送优先级的数据转入高优先级队列中,例如可以将发送优先级较高的实时业务数据放入高优先级队列中,以便于下一步的优先发送。
步骤53将其他数据转入分片临时队列和较低优先级队列中,具体过程为
步骤531将其他数据转入较低优先级队列中;较低优先级队列还可以进一步根据数据服务质量等级划分为不同优先级的多个队列,且当高优先级队列和分片临时队列中的数据均已发送完毕时,再按优先级顺序进行较低优先级队列的调度,例如可以分为如图3、图4所示的正常数据发送队列(即Normal队列)和低优先级数据发送队列(即Low队列),当然也可以分成更多的不同优先级数据发送队列,或者仅应用一个数据发送队列作为较低优先级队列;步骤532当高优先级队列中的数据发送处理完毕时,调度出较低优先级队列中的数据;步骤533将调度出的大数据包进行分片处理,并将所述的分片中封装序号后放入分片临时队列中,即将分片封装标记头,标记头中包含按照分片顺序确定的分片序号;分片的大小可以根据网络通信中高优先级数据需要保证的时延及数据传输带宽进行控制,具体为每个分片的大小(byte)等于需要保证的时延(ms)乘以数据传输带宽(Kbps)再除以8,数据传输带宽即待发送数据的输出接口带宽;大数据包是指其大小在发送过程中对高优先级数据产生的时延超过了该类数据允许的时延,对大数据包的分片是为了避免紧随其后到达的高优先级数据包不需要等候该大数据包发送完毕再进行发送,而仅需要等待一个小的分片报文发送完毕即可,其余分片则暂时缓存到分片临时队列中,从而保证了实时业务数据等高优先级数据的时延符合通信要求;
采用将从队列中调度出的大数据包进行分片后再入分片临时队列的是为了方便接收端对接收数据和处理。如果将分类后的大数据包直接分片并放入相应的队列中,则因为出队时不同优先级队列的交叉调度,不同队列中的不同数据包的分片报文将交叉混合发送出去,将造成严重的分片报文乱序,增加了接收端重组报文的负荷,甚至无法对接收的分片报文进行重组。
步骤54将高优先级队列和分片临时队列中的数据进行发送处理;高优先级队列和分片临时队列中的数据或者具有较高的发送优先级,或者是已经从较低优先级队列中调度出的待发送数据,所以需要优先进行发送处理;数据的调度发送处理过程具体包括以下两种情况一种是采用单通道链路进行数据发送,这种情况可以优先发送高优先级队列中的数据,当高优先级队列中的数据发送处理完毕时,再发送分片临时队列中的分片数据;即当进行发送处理时,总是最先检查高优先级队列中是否存在数据包,如果有,则将其调度出队列,不做任何标记,直接发送出去;当高优先级队列为空时,才调度其他的队列;分片临时队列的优先级仅次于高优先级队列,而高于其他队列;当有实时业务数据等高发送优先级数据到达时,优先对其进行调度,而分片报文则优先于除高发送优先级数据以外的其他数据得到调度,从而保证了高发送优先级数据总是最优先发送,即使是在大数据包之后到达,也只需要等待一个分片报文发送的时间,因此,高发送优先级数据的时延和抖动等服务质量指标得到了很好的保证,即提高网络拥塞时数据传输性能;在链路的接收端,对于实时业务数据等高发送优先级数据由于没有封装标记头,可以立即交给网络层进行转发处理;而对于分片报文,则放入缓存,等到接收到该数据包的全部分片,并按序号重组起来,再交由网络层处理,这样,虽然实时业务数据包等高发送优先级数据交叉在分片报文当中传输,仍然不会引起分片报文的乱序;具体数据发送过程可以参见图3,数据包1在得到调度出队列时对其进行分片,分成分片报文1.1、1.2、1.3、1.4,假设输出的链路带宽为256Kbps,要保证10ms的时延,每片的报文大小大约为320字节;首先发送分片报文1.1,其他的分片缓存到分片临时队列;如果分片报文1.1发送完成后,高优先级队列中有实时业务数据包2到达,则调度发送实时业务数据包2;发送完成后,如果高优先级队列中没有数据包了,再调度发送第二个分片报文1.2,如此继续;第二种情况是采用捆绑多通道链路进行数据的发送,所述的捆绑多通道是将多个通道作为一个接口来应用,以增加传输带宽,因为通过多通道链路发送数据时数据流被多个通道分担,同一数据流可能从不同的通道发送,而各个通道由于带宽和拥塞程度的不同,可能导致数据包的错序,所以通过多通道链路发送数据时,需要为数据包确定序号,以保证接收端按正确的顺序将数据包交给网络层处理;否则,可能导致接收端无法正确的重组数据包;
本发明将多通道链路作为一条逻辑链路,并为逻辑链路设计总的排队策略,而不是为各个通道分别设计排队策略,当某一通道拥塞时,由它发送的数据包将被送入逻辑链路的队列,进行统一的队列调度;为了保证各个通道负载均衡,多通道链路通常也会将大数据包按照一定的分片策略分成若干分片报,由各个通道分别发送;且仍然采用出队时分片及暂存于分片临时队列中的方法,将数据包的分片缓存到一个临时队列中;在多通道链路的情况下,所有的数据包,包括实时业务数据包,都需要标记序号;且设定分片临时队列的优先级最高,以确保一个数据包的各个分片按顺序调度,避免分片报文的乱序。但是与低速链路方案不同的是,分片临时队列具有最高的优先级。
如上所述高发送优先级数据可能需要等待一个大数据包的分片全部发送完毕后才得到调度,但是对于多通道链路来说,其带宽通常比较大,大数据包发送引起的时延和抖动通常不会超出高发送优先级数据允许的最大时延。
通过多通道链路发送数据的具体过程如图4所示,当链路发生拥塞时,数据包根据排队策略入相应优先级的队列,当大数据包1得到调度出队时,多通道链路为了平衡负载,将该数据包分成通道数个分片报文1.1、1.2、1.3、1.4,先将第一个分片报文1.1出队,由轮到的物理通道(图中是物理通道1)发送;其他分片报文1.2、1.3、1.4入分片临时队列,等待下一次的队列调度,因为分片临时队列的优先级最高,所以所有分片被连续调度后,才会调度其他队列中的数据包,所有数据包都被封装了标记头,编上了序号,如此调度物理通道的负载近似,可以最大限度的降低数据包乱序的可能;而同时又成功的实现了多通道链路的QoS队列调度。
步骤55对较低优先级队列中的数据进行发送处理;较低优先级队列包括正常数据发送队列和低优先级数据发送队列,在进行数据发送处理时,正常数据发送队列中的数据优先于低优先级数据发送列;对较低优先级队列中的数据进行发送处理包括对于正常大小的数据包直接进行发送,正常大小的数据包是指该数据包的发送时延不超过网络通信允许的最大时延;对于大数据包则参照步骤533进行处理。
权利要求
1.一种提高网络拥塞时数据传输性能的方法,其特征在于包括a、将待发送的数据进行分类;b、将具有高发送优先级的数据转入高优先级队列中,其他数据转入分片临时队列和较低优先级队列中;c、在进行数据发送处理时,首先对高优先级队列和分片临时队列中的数据进行发送处理,然后对较低优先级队列中的数据进行发送处理。
2.根据权利要求1所述的提高网络拥塞时数据传输性能的方法,其特征在于所述的步骤a包括根据QoS(服务质量)值对数据进行分类。
3.根据权利要求1所述的提高网络拥塞时数据传输性能的方法,其特征在于所述的步骤a包括根据IP(互联网协议)的五元组信息对数据进行分类。
4.根据权利要求1所述的提高网络拥塞时数据传输性能的方法,其特征在于所述的步骤a包括根据数据包的输入接口对数据进行分类。
5.根据权利要求1所述的提高网络拥塞时数据传输性能的方法,其特征在于所述的步骤b包括根据需要将从较低优先级队列中调度出的大数据包进行分片,并在所述的分片中封装序号后转入分片临时队列中。
6.根据权利要求5所述的提高网络拥塞时数据传输性能的方法,其特征在于大数据包是否需要分片及分片的大小是根据高优先级数据业务允许的时延和数据传输带宽确定的,其中,分片大小等于允许的时延乘以数据传输带宽。
7.根据权利要求1、5或6所述的提高网络拥塞时数据传输性能的方法,其特征在于所述的高发送优先级的数据为根据数据报文承载的业务属性确定在网络拥塞时需要优先进行发送的数据;所述的大数据包为其大小在发送过程中对高优先级数据产生的时延超过该类数据允许的时延。
8.根据权利要求1或5所述的提高网络拥塞时数据传输性能的方法,其特征在于所述的较低优先级队列可以进一步包括一个或多个不同优先级的数据发送队列。
9.根据权利要求1所述的提高网络拥塞时数据传输性能的方法,其特征在于,当采用单通道链路(即低速链路)进行数据发送时,所述的步骤c进一步包括c1、调度高优先级队列中的数据并发送出去;c2、当高优先级队列中的数据发送完毕时,调度分片临时队列中的数据并发送出去;c3、当高优先级队列和分片临时队列中的数据均发送完毕时,调度较低优先级队列中的数据并进行发送处理。
10.根据权利要求1所述的提高网络拥塞时数据传输性能的方法,其特征在于,当采用多通道链路进行数据发送时所述的步骤b还包括将各数据均封装序号后分别加入各个队列中;所述的步骤c进一步包括c4、调度分片临时队列中的数据并发送出去;c5、当分片临时队列中的数据发送完毕时,调度高优先级队列中的数据并发送出去;c6、当分片临时队列和高优先级队列中的数据均发送完毕时,调度较低优先级队列中的数据并进行发送处理;在接收端根据各数据的序号进行数据的接收及分片数据的重新组装。
全文摘要
本发明涉及一种提高网络拥塞时数据传输性能的方法。该方法是在低速链路发生拥塞时,将大数据包在链路层进行分片,减小数据包的长度,并转入分片临时队列,而将高发送优先级数据转入高优先级队列,使实时业务数据等高优先级数据交叉在分片中发送,避免实时业务数据因为等待大数据包发送而引起的时延和抖动,保证针对实时业务数据的服务质量,且最大程度的减少了分片报文的乱序,同时又能保证实时业务数据等高优先级数据的优先调度。
文档编号H04Q3/545GK1536820SQ0311004
公开日2004年10月13日 申请日期2003年4月9日 优先权日2003年4月9日
发明者舒志龙, 薛国锋 申请人:华为技术有限公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1