ns2仿真学习(四)-CoDel的队列管理仿真

路由器队列管理机制CoDel的ns2的仿真代码补丁[1]。为ns2打CoDel补丁的步骤参考[1]。

仿真脚本参考上一篇文章,将队列的管理机制由DropTail改为CoDel。脚本更改部分如下:

# CoDel values

# interval to keep min over

set interval [delay_parse 100ms]

# target in ms.

set target [delay_parse 5ms]

Queue/CoDel set target_ $target

Queue/CoDel set interval_ $interval



# Create the links:

$ns duplex-link $n0 $n1   100Mb  64ms CoDel

其他的脚本处理与上文一致。

最终的对比。


这个图与上文的图进行对比,bic仍旧占用了大部分带宽。但是CoDel使得reno与vegas得到相对多的带宽。

下面对比在仿真十秒后启动bic算法,两种队列管理机制的对比:


结论仍是如此,CoDel相对来说,改善了reno与vegas的带宽竞争能力。但是CoDel主要是限制了缓冲队列长度的积累,对于不同拥塞机制的tcp的公平性仍显得无能为力。怎么实现实现不同拥塞控制tcp流竞争公平性,是值得研究的议题。

在相同的条件下,对比下数据包的单向时延。我只检出了两种情况下与cubic相关的数据,计算时延脚本oneway_delay.awk。脚本修改自柯志亨老师的教程,抱歉找不到地址了。

BEGIN {
#程式初始化,設定一變數以記錄目前最高處理封包的ID。
     highest_packet_id = 0;
}


{
   action = $1;
   time = $2;
   node_1 = $3;
   node_2 = $4;
   type = $5;
   flow_id = $8; 
   node_1_address = $9;
   node_2_address = $10; 
   seq_no = $11;
   packet_id = $12;
if(type=="tcp"&&node_1_address=="4.0"&&node_2_address=="5.0")
{
#記錄目前最高的packet ID
   if ( packet_id > highest_packet_id )
                highest_packet_id = packet_id;
 
#記錄封包的傳送時間
   if ( start_time[packet_id] == 0 )  
               start_time[packet_id] = time;
 
#記錄CBR (flow_id=2) 的接收時間
      if ( action == "r" ) {
         end_time[packet_id] = time;
      }
  

}

}  
                                                                                                        
END {
#當資料列全部讀取完後,開始計算有效封包的端點到端點延遲時間 
    for ( packet_id = 0; packet_id <= highest_packet_id; packet_id++ ) {
       start = start_time[packet_id];
       end = end_time[packet_id];
       packet_duration = end - start;
 
#只把接收時間大於傳送時間的記錄列出來
       if ( start < end ) printf("%f %f\n", start, packet_duration);
   }
}


从上图,可以明显看出,采用了CoDel队列管理机制的数据包单向时延较小。

[1]bufferbloat.net

[2]Gnuplot 画多条线

[3]Cronkite-Ratcliff B, Bergman A, Vargaftik S, et al. Virtualized congestion control[C]//Proceedings of the 2016 conference on ACM SIGCOMM 2016 Conference. ACM, 2016: 230-243.






  • 2
    点赞
  • 9
    收藏
    觉得还不错? 一键收藏
  • 7
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 7
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值