法律状态公告日
法律状态信息
法律状态
2017-04-12
授权
授权
2014-10-29
实质审查的生效 IPC(主分类):H04L12/24 申请日:20140625
实质审查的生效
2014-10-08
公开
公开
技术领域
本发明属于网络区分服务技术领域,更为具体地讲,涉及一种区分服务的队列管理方法。
背景技术
随着互联网的普及,移动互联网络等接入方式的多样化,越来越多的业务需要网络进行承载,确保网络的QoS(Quality of Service,服务质量)成为日益关注的重点。区分服务模型采用了边缘复杂、核心简单的网络体系结构,将网络中的路由器划分为边缘路由器和核心路由器,将数据分类、标记、监管、整形等复杂的功能在边缘路由器实现,将汇集流的分类和相应的转发处理在核心路由器实现。由于其体系结构简单,信令机制灵活,扩展性能强,便于实现,可以在网络中大规模应用。
队列管理技术是实现区分服务QoS的核心技术。队列管理技术采取分组缓存、时延转发的方式,提高输出链路带宽的利用率。其工作原理为:分组达到队列时,系统根据某种策略丢弃该分组,限制分组进入队列缓存的数目,因此队列管理也称为丢弃分组的策略。
主动队列算法AQM(Active Queue Management)是IETF(Internet Engineering Task Force,互联网工程任务组)推荐的基于网络节点拥塞控制的关键技术,其中比较具有代表性的是SallyFloyd等人提出随机检测RED(Random Early Detection)算法的。RED算法在队列的入口通过监控平均队列长度来检测拥塞程度,采取合理的丢包策略,从而避免拥塞。由于RED算法对相关参数设置敏感,当网络流量迅速增大时,RED的性能算法会急剧下降。基于此,Sally Floyd和Kevin Fall又提出了一种Gentle-RED算法,算法改变了分组概率丢弃函数,提高了RED在复杂网络中的性能。
此外,David Clark等人提出了RIO-C算法,RIO-C算法对于符合规范的流进行分组,设置不同的优先级,从而实现了区分服务的要求。RIO-C在区分服务模型中,可以实现三个优先级队列管理,算法通过控制不同队列中分组的丢 弃概率来实现对业务流的区分服务。但是RIO-C算法对于分组的丢弃不够平缓,容易造成网络系统的不稳定,网络资源利用率不高;并且RIO-C算法采用的是线性的分组丢弃方式,未考虑平均队列长度与分组丢弃概率的非线性特性,对网络出现突发流量的处理能力不足。
发明内容
本发明的目的在于克服现有技术的不足,提供一种区分服务的队列管理方法,以RIO-C算法为基础,结合平均队列长度与分组丢弃概率的非线性特点,提出了分段的平滑丢弃概率函数,提高系统稳定性,增加系统对突发流量的处理能力,更好地保护高优先级的业务,提高区分服务的能力。
为实现上述发明目的,本发明区分服务的队列管理方法,包括以下步骤:
S1:路由器在每一个分组到达时,计算三种优先级队列的平均队列长度Leni,i=1,2,3,分别对应高、中、低三种优先级;
S2:根据平滑丢弃概率公式计算每个优先级队列的丢弃概率Pb_i,再根据丢弃概率Pb_i对分组中的每个优先级队列进行控制,平滑丢弃概率公式为:
其中,Minthi为第i个优先级的队列长度最小阈值,Maxthi为第i个优先级的队列长度最大阈值,并且Maxth(i+1)≤Minthi,Pmaxi为第i个优先级的调整控制参数,Pmaxi<Pmaxi+1,n为大于1的正整数。
本发明区分服务的队列管理方法,路由器在每一个分组到达时,计算三种优先级队列的平均队列长度Leni,再根据本发明提出的平滑丢弃概率函数公式计算丢弃概率,通过设置参数n,可以改变丢弃概率的非线性程度,并且可以通过调整各个优先级的队列阈值,来实现不同优先级的权限。本发明能够通过平均队列长度的大小,更早检测到网络拥塞,从而进行拥塞控制;并通过各个队列阈值的调整可以实现不同优先级的权限,提高各个资源之间的带宽竞争的公平 性;采用了非线性分段的丢弃函数,分组的丢弃更加平滑,整体上可以提高网络的稳定性和资源利用率。
附图说明
图1是本发明中丢弃函数与队列长度关系示意图
图2是实验仿真的网络拓扑图;
图3是仿真实验1中平均队列长度对比图;
图4是仿真实验1中各节点业务流的吞吐率对比图;
图5是仿真实验1中各节点业务流的丢包率对比图;
图6是仿真实验2中平均队列长度对比图;
图7是仿真实验2中各节点业务流的吞吐率对比图;
图8是仿真实验2中各节点业务流的丢包率对比图。
具体实施方式
下面结合附图对本发明的具体实施方式进行描述,以便本领域的技术人员更好地理解本发明。需要特别提醒注意的是,在以下的描述中,当已知功能和设计的详细描述也许会淡化本发明的主要内容时,这些描述在这里将被忽略。
实施例
本发明区分服务的队列管理方法主要包括两大步骤,主要针对丢弃概率公式进行了改进,其具体步骤包括:
S1:路由器在每一个分组到达时,计算三种优先级队列的平均队列长度Leni,i=1,2,3,分别对应高、中、低三种优先级。本实施例中,平均队列长度Leni的计算方法为:
计算当前物理队列长度QavgLen:
QavgLen=(1-wq)QavgLen′+wq×Qin (1)
其中,QavgLen′为上一次分组到达时计算得到的物理队列长度,wq为设置的权重系数,Qin表示当前物理缓冲队列的瞬时长度,Qin=Qin1+Qin2+Qin3,Qini表示第i个优先级队列的瞬时长度;
第i个优先级的平均队列长度Leni的计算公式为:
公式(2)采用低通滤波的原则计算平均队列长度,使得平均队列长度更加的平滑,队列长度的采样更加合理。
将公式(1)和公式(2)联立,可以得到:
其中,Leni′表示上一次分组到达时计算得到的第i个优先级的平均队列长度。
S2:根据平滑丢弃概率公式计算每个优先级队列的丢弃概率Pb_i,再根据丢弃概率Pb_i对分组中的每个优先级队列进行控制,平滑丢弃概率公式为:
其中,Minthi为第i个优先级的队列长度最小阈值,Maxthi为第i个优先级的队列长度最大阈值,并且Maxth(i+1)≤Minthi,Pmaxi为第i个优先级的调整控制参数,Pmaxi<Pmaxi+1,n为大于1的正整数。
从公式(4)可知,当n=1时,丢弃概率公式与一般RIO-C算法的丢弃概率公式类似,是线性的,当n>1,丢弃概率公式为非线性的。本实施例中,为了说明本发明的特点,设置n=2。图1是本发明中丢弃函数与队列长度关系示意图。如图1所示,当网络的平均队列长度QavgLen较小时,即网络负载较轻时,计算得到的各个平均队列长度Leni也较小,各优先级队列的丢弃概率增长速度缓慢,从而可以降低丢弃分组数目,充分利用网络资源;当网络的平均队列长度QavgLen较大时,即网络负载较重时,计算得到的各个平均队列长度Leni也较大,分组的丢弃概率增长速度加快,并且通过各优化级队列长度阈值的设置,使高优先级的队列丢弃概率最低,从而满足区分服务的要求。
下面首先对本发明区分服务的队列管理方法所提出的平滑丢弃概率函数对 各个优先级队列的区分情况进行理论分析。
1)当Minthi<Leni≤(Minthi+Maxthi)/2
(a)当高优先级和低优先级在队列分组中数量相同,即可等效为Leni=Leni+1时,设Maxthi=M×Minthi,Maxth(i+1)=W×Minth(i+1),其中M>1、W>1,
Minthi=Maxth(i+1)+δ=W×Minth(i+1)+δ(δ≥0) (5)
Maxthi=M×(W×Minth(i+1)+δ) (6)
此时,不同优先级分组丢弃概率之比为公式(7)所示:
由公式(5)与(6)可知:
因此可以得出表达式(7)的值小于1,即所以当各个优先级队列中分组数量相同时,低优先级的丢弃概率较大。
(b)当到达相同的丢弃概率时,即Pbi=Pb(i+1)时,可推出公式(9):
此时,由公式(5)与图1可知
因此,可以得出:
化简可得出Leni+1<Leni。因此可知,当丢弃概率相同时,高优先级队列中分组数量多于低优先级队列分组数量,高优先级队列长度较长。
2)当(Minthi+Maxthi)/2<Leni≤Maxthi
(a)当高优先级和低优先级在队列分组中数量相同,即可等效为Leni=Leni+1,可推导出以下表达式。
为了描述方便,单独把(12)中次方多项式进行运算:
由公式(5)和(6)可知:
因此可得出表达式(13)的值小于1,则:
因此可以得出即在队列长度相同时,较低先级的分组丢弃概率较大。
(b)当到达相同的丢弃概率时,即Pbi=Pb(i+1)时
将等式(16)变化为:
因为故由(17)可推出
由公式(5)与不等式(18)联立可得
2Leni-(M+1)×(W×Minth(i+1)+δ)>2Leni+1-(W+1)×Minth(i+1) (19)
又因为(M+1)×(W×Minth(i+1)+δ)>(W+1)×Minth(i+1),所以可得出Leni>Leni+1,因此在丢弃概率相同时,高优先级队列长度较长,即队列中的分组数目较多。
下面对本发明区分服务的队列管理方法的性能进行实验仿真。本实验仿真的平台是ubuntu12.04LTS+NS2.35,在实验中采用了基于NS2.35内核的区分服务架构,在整个仿真过程中,队列管理采用AF结构,即一个物理队列,三个虚拟队列。表1是实验仿真过程中的参数设置。
本实验仿真中,平滑丢弃概率函数的参数n=2。
图2是实验仿真的网络拓扑图。如图2所示,本实验仿真中,S0、S1、S2分 别为源端口发送节点,D0、D1、D2为相应的目的接收节点,E1、E2分别为边缘网络节点,C为核心网络节点,其中所有节点之间的链路时延均为5ms,发送端和接收端到边缘网络节点的链路带宽均为5M,E1与C之间的链路带宽为10M,C与E2之间的链路带宽为5M,因此C与E2之间为颈瓶链路,在网络节点C监测网络流量,从而分析整个网络QoS性能。
仿真实验1:TCP业务流与UDP业务流并存
从源点S0处发送的业务流为分组大小为1000字节的TCP流,传输的是FTP业务,从源点S1、S2处发送的业务流均为分组大小为1000字节,速率为2Mps的UDP流,传输的是CBR业务,其中设置S1发出的业务流优先级比S2的业务流高。此时在边缘路由器E1与边缘路由器C之间分别采用RIO-C算法和本发明进行仿真,仿真时间为60s,在核心路由器处进行统计数据分组的信息。
图3是仿真实验1中平均队列长度对比图。如图3所示,相对于RIO-C算法,采用本发明时,链路上平均队列长度随时间的抖动变化较小,并且平均队列长度可以在较长的时间内几乎不变,即平均队列长度更加平稳,因此在TCP与UDP混合时,采用本发明的系统的队列稳定性能更好。
图4是仿真实验1中各节点业务流的吞吐率对比图。图5是仿真实验1中各节点业务流的丢包率对比图。如图4和图5所示,相对于RIO-C算法,采用本发明时,从S0、S1、S2到D0、D1、D2节点业务流的丢包率明显降低,吞吐率增加。从Sx发生的高优先级业务丢包率有一定的降低,吞吐率几乎不变,从S2发出的低优先级业务的丢包率增加,吞吐率降低。可以看出,本发明牺牲了部分低优先级分组的性能,更好的保护更高优先级的业务,区分服务的能力更强。
综上,在TCP业务流和UDP业务流并存时,本发明可以很好地实现区分服务,满足不同优先级业务的需求,同时本发明与RIO-C算法相比,更好地保护了高优先级的业务流,使得TCP业务流的丢包率降低,吞吐率得到提升,同时链路中的平均队列长度的抖动更小、稳定性能更好,因此本发明增加了系统的稳定性,有效的提升了网络的性能。
仿真实验2:UDP业务流突发场景
仿真实验2的仿真环境与实验1相似,在30秒时UDP突发至3Mps。
图6是仿真实验2中平均队列长度对比图。如图6所示,当UDP流量突发 时,TCP会根据拥塞情况进行流量控制,因此与图3相比,整个链路队列的长度变化不大。本发明与RIO-C相比,队列长度的抖动较小,队列的稳定性较强。因此本发明在UDP和TCP混合时,队列较为稳定,整个系统的稳定性增加。
图7是仿真实验2中各节点业务流的吞吐率对比图。图8是仿真实验2中各节点业务流的丢包率对比图。如图7和图8所示,在UDP突发的场景中,和RIO-C算法相比,在采用本发明时,TCP业务的丢包率降低,吞吐率得到了提升,同时从S1发出的较高优先级的分组的丢包率明显减低,吞吐率得到了提升,从S2发出的较低优先级分组的丢包率增加,吞吐率降低。这是因为本发明牺牲了低优先级分组的性能,确保了高优先级分组得到服务,满足了区分服务的要求。并且在采用本发明时系统总体的吞吐率得到了提升。
综上,在UDP流量突发时,本发明和RIO-C算法相比,TCP业务与较高优先级的业务吞吐率有所增加,丢包率降低,同时链路中的平均队列长度的抖动更小、稳定性能更好,可见本发明增加了系统的稳定性,有效的提升了网络的性能。
尽管上面对本发明说明性的具体实施方式进行了描述,以便于本技术领域的技术人员理解本发明,但应该清楚,本发明不限于具体实施方式的范围,对本技术领域的普通技术人员来讲,只要各种变化在所附的权利要求限定和确定的本发明的精神和范围内,这些变化是显而易见的,一切利用本发明构思的发明创造均在保护之列。
机译: 用于区分服务质量(QOS)的数字处理卫星下行链路队列的拥塞管理系统和方法
机译: 用于区分服务质量(QOS)的数字处理卫星下行链路队列的拥塞管理系统和方法
机译: 用于区分服务质量(QOS)的数字处理卫星下行链路队列的拥塞管理系统和方法