實驗步驟與實驗七差不多
STEP3
利用mp4trace將影片中每一個frame相關資訊取出存在foreman_qcif.st檔案中 STEP4
接下來就可以使用ns2模擬工具開始模擬網路效能啦
STEP3
利用mp4trace將影片中每一個frame相關資訊取出存在foreman_qcif.st檔案中 STEP4
接下來就可以使用ns2模擬工具開始模擬網路效能啦
STEP3
再進行評估分析前,須先轉換trace file的格式
STEP4
使用et這個程式進行記錄檔sd、rd、Verbose_StarWarsIV.st做比較,就可得知在此種情晃下可解畫面數及可解畫面比例的大小為多少
可知,這次網路模擬傳輸中共送出163682 packets,其中 I-frame:28770 p-frame:45339 B-frame:89573
總共遺失:1595 其中I-frame:281 p-frame:433 B-frame:881
可解畫面比例為0.913543
total directly decodable frame 代表的意義為這個畫面所分割出來的封包全部被接收端所接收到的數目
STEP5
經由下面操作可得平均延遲時間及最大延遲時間
先把資料收集起來 $awk'{print $1, $2}' delay_pkt.txt > delay_pkt
開始繪圖
用mp4trace.exe 將每一個frame的資訊擷取出來存到forman_qcif.st中
其中 192.168.0.2 is destination ip ,destination port number is 12346
(這邊設定不重要,因為沒有真的傳上網)
現在在lab6裡頭有這四檔案
foreman_qcif.st 裡面有400筆資料
between H and P or P and P have 2 B frame (與壓縮時的參數相關)
STEP4
開始用NS2模擬工具模擬網路效能 (lab6_1.tcl)
參數為 :
opt(0) = good->good 的機率
opt(1) = bad->bad 的機率
opt(2) = 在 good state下,封包發生錯誤的機率
opt(3) = 在 bad state下,封包發生錯誤的機率
opt(4) = seed number
opt(5) = 把每一畫面切成多少size大小的封包
STEP6
再次使用ffmpeg將重建的foreman_qcife.mp4 轉回foreman_qcife.yuv
使用avgpsnr針對重建後的 foreman_qcife.yuv 及原始foreman_qcif.yuv,獲得重建後foreman_qcife.yuv的PSNR值為34.839083
背景知識:
Free Space 是最理想的傳輸模型(檔案在~/ns-2.29/mobile/propagation.h & propagation.cc)
Two Ray Ground 除了考慮直線 path loss也考慮地面反射(reflection of ground)
(檔案在~/ns-2.29/mobile/tworayground.h & tworayground.cc)
Shadowing 是用來模擬Tx到Rx中間有障礙物時對傳送訊號的影響,常用於indoor
(檔案在~/ns-2.29/mobile/shadowing.h & shadowing.cc)
關於"門檻",NS2主要利用訊號強度門檻(Threshold)方式,判斷封包是否成功收到
NS2設定一個訊號偵測(Carrier Sense)的門檻CSThresh_ ,決定封包是否能被Rx偵測出來 (於PHY Module)
NS2會設定另一個RxThresh_ ,用來判斷封包是否能被Rx所接收 (於MAC)
(檔案在~/ns-2.29/mobile/wireless-phy.h & wireless-phy.cc)
開始實驗步驟
STEP1.
ns2提供一個小工具程式threshold.cc(在ns-allinone-2.29/ns-2.29/indep-utils/propagation),他可以藉由輸入想要使用的傳輸模型和有效傳輸距離,而輸出相對應的參數值
用g++編譯它
它告訴我們使用方法囉
來測試看看 設定傳輸模式TwoRayGround 有效傳輸距離250m
顯示參數
STEP3
用TCL模擬程式驗證(home/clark/lab9/test_2nodes.tcl)
這程式設定有兩節點n0(30,30),n1(280,30) n0要傳輸給n1,參數如上設定
執行
模擬結束,會產生接收紀錄檔,打開來看看,確實有接收到
STEP4
那如果變更超過可接受距離呢?
可知n1完全沒接收到n0傳來的資料
接下來要討論隱藏節點問題了
如圖一nA-nB d=100m ,nB-nC d=100 m,節點之間的carrier sense d=150m 傳送有效距離為120m
利用小工具知道我們要設定的參數
對於CSThresh_的設定 ,因為用的公是相同,只要把RXThresh_結果拿來用即可
TCL模擬程式
執行
$ns test_hidden_terminal.tcl
我們看執行後產生的紀錄檔
sd1:
sd2:
rd1:
rd2:
執行 $ns test_exposed_terminal.tcl
記錄檔封包