TCP與UDP模擬實驗 - Kun Shan...
Transcript of TCP與UDP模擬實驗 - Kun Shan...
TCP與UDP模擬實驗
Rung-Shiang Cheng (程榮祥)Department of Computer and Communication, Kun Shan University
模擬程式(TCL Script)的基本架構
產生模擬物件 (new Simulator)
定義執行程序及相關變數
設定網路拓樸、撰寫模擬劇本
執行網路模擬 (run)
2
建立UDP連線並產生CBR流量
TCL script: Topology
ps.在此稱UDP"連線"只是方便說明,實際上UDP是connection-less
模擬結果
在NS-2中,UDP Agents的程式碼是放在"ns-allinone-2.31/ns-2.31/apps/udp.{cc, h}"這兩個C++原檔中
Application Layer可透過sendmsg()這個C++ function來取存UDP Agent
Mmaximum segment size (MSS) 的預設值為1000 byte
– Agent/UDP set packetSize_ 1000
建立TCP連線並產生FTP流量
TCL script:Topology
模擬結果
記錄封包傳送的過程
在模擬程式中加入下程式碼 (範例檔案名稱: tcp_fid.tcl)
模擬結果: out.tr記錄檔的部份內容
記錄檔格式
10
AWK資料處理語言
AWK簡介
– Pattern scanning and processing language
• Linux大多取名為 gawk
– 可以直接指定要處理的動作,或將欲處理的動作寫在一個命令稿中
AWK命令格式
AWK資料處理語言-簡單的範例
編輯一個文字檔,輸入1, 2, 3, 4, 5等數字:
AWK執行結果:
AWK Script: 計算End-to-End Delay的範例(1/2)
AWK Script: 計算End-to-End Delay的範例(2/2)
End-to-End Delay量測結果
AWK程式部份輸出結果
格式: packet_id, start, end, one-way-delay
將模擬結果輸出--製作可以給gnuplot使用的檔案
修改AWK程式,將輸出的欄位格式改為類似x y這樣子的格式:
底下為修改過後的AWK程式之輸出結果:
使用導向的方式將結果存到檔案中:
使用gnuplot將模擬結果輸出
Gnuplot的執行畫面
TCP的end-to-end (one-way) delay
使用gnuplot將模擬結果輸出--輸出到檔案
AWK Script: 統計傳送以及遺失封包的個數
程式初始化
統計從node 0送出多少封包
統計flow 1掉封包的個數
統計傳送以及遺失封包的個數
AWK程式輸出結果
FTP送出了548個封包,但其中53個封包丟掉了
記錄封包傳送的過程
在模擬程式中加入下程式碼 (範例檔案名稱: udp_fid.tcl)
將UDP Agent的fid_參數(Flow ID)設為1
AWK Script: 計算Throughput –以CBR為例
分析計算結果
TCL Script程式碼
– 500 × 8 bits / 0.005 = 800 Kbps
AWK程式的計算結果
利用xgraph將計算結果以圖形方式輸出
請在命令列輸入下列指令
Xgraph的輸出結果