一种基于改进的wred的拥塞控制方法和装置的制造方法

文档序号:9931216阅读:733来源:国知局
一种基于改进的wred的拥塞控制方法和装置的制造方法
【技术领域】
[0001] 本发明涉及网络传输控制领域,具体涉及一种基于改进的WRED的拥塞控制方法 和装置。
【背景技术】
[0002] 网络拥塞容易造成延迟和吞吐量等服务质量(QoS, Quality of Service)性能指 标下降,是影响带宽、系统缓存等资源利用率的关键因素。因此,有效的拥塞避免机制对于 提高路由器性能具有重要意义。
[0003] 加权随机早期检测(WRED,Weighted Random Early Detection)算法是现有拥 塞避免机制中常用的一种丢弃算法。WRED算法的计算过程主要包括:平均队列深度计算、 WRED丢弃概率的计算和WRED丢弃判断,其丢弃曲线如图1所示。图1中,横轴avg_q_length 表示队列准备丢弃数据包前队列当前的平均队列深度,该参数反映出队列深度的变化趋 势;纵轴P表示丢弃概率,其反映出数据包被丢弃的可能性;min_th表示平均队列深度最小 门限;max_th表示平均队列深度最大门限;max P表示最大丢弃概率;其中,min_th、max_th 和max P的取值可根据需要进行设置。从图1可以看出,丢弃数据包的可能性随着平均队 列深度向最大门限max_th靠近而不断上升。当平均队列深度达到最大门限max_th时,数 据包丢弃概率达到设置的最大丢弃概率maxP。当平均队列深度超过最大门限max_th时,所 有其它试图进入队列的数据包都被丢弃;因此,在实际应用中可以调节min_th和max_th的 取值来增大或降低丢包程度;而从图1可以看出max P的取值是与min_th和max_th的取 值直接相关的,也就是说,确定了 min_th和max_th的取值则ma P的值也就确定了;实际中 min_th和max_th的取值与传输的数据包的业务类型相关,例如,电信业务、上网业务、视频 传输业务等等,不同的业务对丢包的容忍程度不同,对于丢包容忍程度低的业务来说,可以 将max_th设置的相对较小;对于丢包容忍程度高的业务来说,可以将max_th的值设置的相 对大些。
[0004] WRED算法在拥塞控制中的处理流程如图2所示,主要包括以下处理步骤:
[0005] S201 :计算平均队列深度;
[0006] 数据包进入拥塞控制系统时,首先进行平均队列深度的计算。平均队列深度能 够从总体变化趋势上反映真实的队列深度,同时可以平滑掉流量突发,不会因为偶尔的流 速升高或降低而引起对流量总体情况判定的改变。平均队列深度的计算公式为Avg = Avg' +Wq(Q_length_Avg')。其中,Avg'为上次计算的队列的平均深度,由于在WRED算法中 每接收到一个数据包需要需要判断将该数据包加入队列或丢弃,因此,当将数据包加入队 列时,队列的深度将发生变化,因此,该参数反映出从接收到第一个数据包到上一次接收到 数据包时,队列深度的变化趋势;当接收到第一个数据包时,Avg'的取值为0,并计算出当 前的平均队列深度,之后,当接收到第二个数据包时,根据上一次计算出的队列深度、当前 队列深度以及权重值Wq确定出当前的平均队列深度,以此类推,不断循环迭代;Q_length 为当前队列深度,也就是,接收到数据包时,当前队列的深度;Wq为计算权重,Avg为当前队 列的平均深度。
[0007] 步骤S202 :判断平均队列深度是否满足丢弃条件;
[0008] 具体的,若平均队列深度大于等于预先设置的平均深度最大门限max_th,则确定 该数据包满足丢弃条件,直接转至步骤S206,丢弃当前数据包;若不满足,则转步骤S203继 续处理。
[0009] 步骤S203 :判断平均队列深度是否满足入队条件;
[0010] 也就是判断当前的平均队列深度是否满足将该数据包直接加入数据包队列的条 件;具体的,当平均队列深度小于平均数据包深度的最小门限min_th时,可以确定该数据 包满足直接加入数据包队列的条件,则转至步骤S207,将该数据包直接入队;当该平均队 列深度不满足入队条件时,即,当前平均队列深度属于[min_th,max_th]区间范围内时,转 至步骤S204继续执行。
[0011] 步骤S204 :计算丢弃概率;
[0012] 具体的,根据当前数据包的长度和平均队列深度计算该数据包的丢弃概率P。
[0013] 步骤205 :判断丢弃概率是否大于R ;
[0014] 确定当前数据包的丢弃概率之后,将所确定的丢弃概率和系统生成的R[0,l]区 间内的随机数R进行比较;若丢弃概率大于R,则转至步骤S206直接丢弃该数据包;若丢弃 概率小于等于R,则转至步骤S207,将该数据包加入队列。
[0015] 在上述方案中,进行WRED丢弃概率计算和基于丢弃概率的WRED丢弃判断方法多 种多样,其中,一种基于等价包长的计算方法,其基本方案如下:将可支持的数据包的包长 范围划分为若干区间;为每个区间设置不同的等价包长;根据接收数据包的包长查找该接 收数据包的归属区间,并根据找到的归属区间确定该接收数据包的等价包长;根据以下计 算公式计算接收数据包的丢弃概率 :
[0017] 其中,packet_size_new表示等价包长,max_packet_size表示可支持数据包的 最大包长,avg_q_length表示队列的平均深度,max_th表示队列平均深度的最大门限值, min_th表示队列平均深度的最小门限值,max P表示接收数据包的最大丢弃概率max P;
[0018] 实际应用当中,该方案对于包长的分段处理较为复杂,增加了设计的复杂度;而且 该方案的离散性突出,处于同一包长范围内的数据包在同等条件下的丢弃概率是固定的, 不能根据实际的数据包长度变化趋势来平滑改变各个包长的丢弃概率;且对于短包丢弃概 率过小,提前丢弃性能退化。

【发明内容】

[0019] 为了解决现有存在的技术问题,本发明实施例期望提供一种基于改进的WRED的 拥塞控制方法和装置。
[0020] 本发明实施例提供了一种基于改进的WRED的拥塞控制方法,所述方法包括:
[0021] 根据平均包长确定接收到的数据包的丢弃概率;
[0022] 根据所确定的丢弃概率判断将所述数据包发送至队列或丢弃。
[0023] 上述方案中,通过以下公式确定接收到的数据包的丢弃概率Pb' :
[0025] 其中,Avgpaeket』en表示平均包长、max_packet_size表示可支持数据包的最大包长、 avg_q_len表示队列的平均深度、minth表示队列平均深度的最小门限值、maxth表示队列 平均深度的最大门限值、maxp表示接收数据包的最大丢弃概率。
[0026] 上述方案中,通过以下公式确定接收到的数据包的平均包长Avgpadffit>:
[0027] Avgpacket-Len A"Vg packet-Len+Wp (P&cket-Loll Avg Packet-Len) '
[0028] 其中,Avg' paeketjen为历史平均包长;packet_Len为接收到的数据包的包长;Wp为 计算权重。
[0029] 上述方案中,所述Wp取值为2n,其中,n为负整数。
[0030] 上述方案中,通过以下方式判断将所述数据包发送至数据包队列或丢弃:
[0031 ] 当Pb'〈R时,确定丢弃所述数据包;
[0032] 当Pb' > = R时,确定将所述数据包发送至所述队列;
[0033] 其中,Pb'所述数据包的丢弃概率,R为[0, 1]范围内的随机数。
[0034] 本发明实施例提供了一种基于改进的加权随机早期检测WRED的拥塞控制装置, 所述装置包括:丢弃概率确定模块、判断模块和数据包处理模块;其中,
[0035] 所述丢弃概率确定模块,用于根据平均包长确定接收到的数据包的丢弃概率;
[0036] 所述判断模块,用于根据所确定的丢弃概率判断将所述当前数据包发送至队列还 是丢弃,并在得到判断结果之后,触发处理模块;
[0037] 所述处理模块,用于被判断模块触发时,根据判断结果将所述数据包发送至队列 或丢弃。
[0038] 上述方案中,所述丢弃概率确定模块用于通过以下公式确定接收到的数据包的丢 弃概率Pb' :
[0040] 其中,Avgpaeket』en表示平均包长、max_packet_size表示可支持数据包的最大包长、 avg_q_len表示队列的平均深度、minth表示队列平均深度的最小门限值、maxth表示队列 平均深度的最大门限值、maxp表示接收数据包的最大丢弃概率。
[0041] 上述方案中,所述丢弃概率确定模块通过以下公式确定平均包长Avgpadffit>:
[0042] Avgpacket-Len A"Vg packet-Len+Wp (P&cket-Loll Avg Packet-Len) '
[0043] 其
当前第1页1 2 3 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1