Friday, March 14, 2008

實驗四 網路效能測量

學習如何測量以UDP為傳輸協定的應用程式之throughput、packet delay、packet jitter和packet loss rate,並且學習如何量測以TCP為傳輸協定的應用程式之throughput。

由於目前我們還無法獨自撰寫TCL檔,於是便使用課本上所附之範例來進行模擬。

example 1 有線網路

首先切換到TCL檔所儲存的目錄底下,輸入「ns wired-measure.tcl」來執行

模擬結束之後會產生tcp_sink、sd_udp和rd_udp三個記錄檔

從sd_udp檔案中,可得知有550筆記錄

從rd_udp檔案中,可得知有542筆記錄,所以總共有8個封包遺失,遺失率為8/550=1.45%

使用「$awk '{print $1, $4 }' rd_udp > cbr_delay」把rd_udp第ㄧ欄(封包序號)和第四欄(封包延遲時間),列印到cbr_delay中

使用gnuplot畫出cbr_delay,輸入「plot "cbr_delay" title 'cbr: packet delay' with linespoints 1」

畫出來的圖

設定X軸跟Y軸,並且存成gif的圖檔

cbr_delay的圖

使用awk分析程式來求得抖動率「$awk -f measure-jitter.awk rd_udp > cbr_jitter」

使用gnuplot畫出cbr_jitter,輸入「plot "cbr_jitter" title 'cbr: packet jitter' with linespoints 1」

畫出來的圖

設定X軸跟Y軸,並且存成gif的圖檔

使用Perl分析UDP throughput(measure-throughput.pl)

使用「perl measure-throughput.pl rd_udp 0.5」每0.5秒去統計這段時間的平均吞吐量,執行結果中的第ㄧ欄是時間,第二欄是這段時間內的平均吞吐量,最後是平均吞吐量(Average rate)和最高吞吐量(Peak rate)

使用Perl分析TCP throughput(measure-TCP.pl)

使用「perl measure-TCP.pl tcp_sink 0.5」去執行


example 2 無線網路
首先切換到TCL檔所儲存的目錄底下,輸入「ns wireless-measure.tcl」來執行,模擬結束之後會產生sd_udp和rd_udp兩個記錄檔

從sd_udp檔案中,可得知有453筆記錄

從rd_udp檔案中,可得知有205筆記錄,所以總共有248個封包遺失,遺失率為248/453=54.74%

使用「$awk '{print $1, $4 }' rd_udp > cbr_delay」把rd_udp第ㄧ欄(封包序號)和第四欄(封包延遲時間),列印到cbr_delay中

使用gnuplot畫出cbr_delay,輸入「plot "cbr_delay" title 'cbr: packet delay' with linespoints 1」,設定X軸跟Y軸,並且存成gif的圖檔

使用awk分析程式來求得抖動率「$awk -f measure-jitter.awk rd_udp > cbr_jitter」,並使用gnuplot畫出cbr_jitter,輸入「plot "cbr_jitter" title 'cbr: packet jitter' with linespoints 1」,設定X軸跟Y軸,並且存成gif的圖檔

使用Perl計算 throughput(measure-throughput.pl rd_udp 1)


目前只是按照課本的步驟來模擬,要達到會自己寫TCL來模擬和使用awk或是perl來計算,還有一段很大的差距。

1 comment:

yusufyusuf said...

Nice blog...

www.yusufyusuf85.blogspot.com