📄 proc-loss-cwnd
字号:
#! /usr/bin/perlopen LOSSCWND, "> result/chain/static-loss-cwnd.log";open CWND, "result/chain/cwnd.log";open LOSS, "result/chain/loss.log";while (@cwnd = split('\n', <CWND>)) { @loss = split( '\n', <LOSS>); ($h, $c_a1, $c_a001, @g) = split( ' ', $cwnd[0] ); ($h, $l_a1, $l_a001, $g) = split( ' ', $loss[0] ); print LOSSCWND "$l_a1 $c_a1 $l_a001 $c_a001\n";}close LOSS;close CWND;foreach $N (4, 8) { foreach $L (4, 5, 6, 7, 8, 10, 12, 14, 16, 20) { foreach $A ( "a1", "a0.01" ) { $prev_cwnd = 0; $t_cwnd = 0; $t_intv = 0; $max = 0; for ( $X=0; $X < $N; $X+=1 ) { $prev_t = 0; open TCPLOG, "result/chain/DSR0/$A.tcp$N.hop$L/tcp$X.log"; while ( <TCPLOG> ) { ($time, @msg) = split(' '); if ( $msg[4] eq "cwnd_" && $time > 10.0) { if ( $prev_t != 0 ) { $t_cwnd += $prev_cwnd * ($time-$prev_t); $t_intv += $time - $prev_t; } $prev_t = $time; $prev_cwnd = $msg[5]; } } close TCPLOG; } open TRACE, "result/chain/DSR0/$A.tcp$N.hop$L/out.tr"; $nsend = 0; $nrecv = 0; while (<TRACE>) { @ll = split(' '); if ( $ll[0] eq "s" && $ll[8] == 0 && $ll[34] eq "tcp" ) { $nsend += 1; } if ( $ll[0] eq "r" && $ll[8] == $L && $ll[34] eq "tcp" ) { $nrecv += 1; } } close TRACE; $rloss = 1.0 - $nrecv/$nsend; if ( $t_intv != 0 ) { $mean_cwnd = $t_cwnd/$t_intv; print LOSSCWND "$rloss $mean_cwnd "; } else { print LOSSCWND "$rloss cwnd "; } } print LOSSCWND "\n"; }}close LOSSCWND;
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -