毕业论文

打赏
当前位置: 毕业论文 > 电子通信 >

NS2基于控制原理的网络拥塞控制设计(4)

时间:2019-01-13 18:45来源:毕业论文
(2)丢包概率的计算。其计算方法如式(2.1)、式(2.2)所示: 可见,丢包概率与平均队长有密切联系。 下面,我们给出RED算法中关键步骤的源代码。首


(2)丢包概率的计算。其计算方法如式(2.1)、式(2.2)所示:
    可见,丢包概率与平均队长有密切联系。
    下面,我们给出RED算法中关键步骤的源代码。首先给出计算平均队长的代码:
double REDQueue::estimator(int nqueued, int m, double ave, double q_w)
{
    double new_ave, old_ave;

    new_ave = ave;
    while (--m >= 1) {
        new_ave *= 1.0 - q_w;
    }
    old_ave = new_ave;
    new_ave *= 1.0 - q_w;
    new_ave += q_w * nqueued;
    
    double now = Scheduler::instance().clock();
    
         if (now > edv_.lastset + edp_.interval)
            updateMaxP(new_ave, now);
    }
    return new_ave;
}
    接下来,我们给出计算丢包概率的源代码:
double REDQueue::calculate_p_new(double v_ave,double th_min, double th_max, double v_a,
    double v_b,double max_p)
{
    double p;
    if ( v_ave>=th_min&&v_ave <=th_max) {
        
        // p ranges from 0 to max_p as the average queue
        // size ranges from th_min to th_max
        p = v_a * v_ave + v_b;
        p *= max_p;
    }
    if (p > 1.0)
        p = 1.0;
    return p;
}
2.2  RED算法分析
针对传统的DropTail丢尾算法的缺点,RED算法使用指数加权滑动平均法求解平均队长并均匀化分组丢弃概率,不仅使分组丢弃率和延迟达到最小,而且避免了全局同步以及对突发业务的偏见。由于Internet中含有很多突发数据,而在传统的丢尾算法中,突发性越高的流越容易造成缓冲队列溢出,使得突发性流被大量丢弃,这也被称为对突发业务的偏见[8]。然而,RED算法中当平均队长大于最大队长阈值时,分组被全部丢弃,这对稳定性有较大的影响。为此,我们对RED算法做出改进,使丢包概率更为平缓过渡,由此得到Gentle-RED算法。
2.3  Gentle-RED算法概述
由上文可知,在传统的RED算法中,当 时,丢包概率为1,为了降低不稳定性,我们引入变量 ,使得当 时,丢包概率不为1,而是依据式(2.3)计算[9]:
Gentle—RED的代码如下:
double REDQueue::calculate_p_new(double v_ave, double th_max, int gentle, double v_a,
    double v_b, double v_c, double v_d, double max_p) NS2基于控制原理的网络拥塞控制设计(4):http://www.youerw.com/tongxin/lunwen_29471.html
------分隔线----------------------------
推荐内容