Friday, April 18, 2008

實驗十一 無線網路效能分析探討(三)802.11b DCF 與 802.11e EDCA之比較

了解802.11b DCF 和 802.11e EDCA機制之運作,探討此兩種機制對多媒體資料流所提供之傳輸服務品質。

本實驗主要在比較在802.11b 和 802.11e 下影片傳輸的服務品質,實驗室一個無線網路,當中有三個無線網路節點n0、n1、n2、n0為傳送影片資料給n1,n1會送一個FTP flow給 n2,n2會送一個Exponential Traffic 給 no ,在802.11e的環境下,影片會被設定成video (prio_會被設為1),FTP flow 會被設為best effort (prio_會被設為2),Exponential Traffic 會被設為background(prio_會被設為3)

用ns執行lab11.tcl 0 (802.11)

產生 sd rd 記錄檔

把mp4檔轉成yuv

算出average psnr 為33.991658 s

平均延遲:0.881965 s
最大延遲:1.257069 s

用ns執行lab11.tcl 1 (802.11e)

產生 sd rd 記錄檔

把mp4檔轉成yuv

算出average psnr 為34.887196 s
平均延遲:0.081828 s
最大延遲:o.495100 s

實驗十 無線網路效能分析探討(二) AdHoc網路路由協定效能分析

了解如何在NS2中建立無線隨意網路(Wireless Ad Hoc network),學習分析無線隨意網路路由協定(Ad Hoc routing protocols)。

DSDV
DSDV(Destination-Sequenced Distance-Vector)是基於傳統Bellman-Ford路由選擇演算法所改良發展出來的ㄧ個以路由表為基礎的通訊協定。每一個無線節點必須儲存並持續更新一個路由表,每個節點都會週期性的將他們的路由表傳送給最靠近的鄰居,以維持所有節點都擁有完整路徑的特性。

AODV
AODV(Ad-hoc On-demand Distance Vector)這個路由協定允許無線節點很快的獲得許多路徑到達它所想要到達的目的地,而且並不要求這些無線節點去維護這些到目的地的路徑。

DSR
DSR(Dynamic Source Routing)是利用 source routing 的觀念,也就是傳送端知道目的地完整的跳躍路徑(hop-by-hop route)。

使用兩個小工具 cbrgen & setdest

舉例說明
若是共有5個節點,最大連線數為2,種子為1,且希望每秒產生十個CBR封包時,就可以使用以下的指令

輸出結果存放到cbr_n5_m2_r10中,內容如下

setdest可以用來隨機產生無線網路模擬所需要的節點移動場景,使用前必須先make產生執行檔

若是有兩個節點,在範圍300m x 300m 內不停的移動,其最大速度為20m/s,模擬時間為10秒,指令如下

輸出結果存放到scen_2n_0p_20M_10t_300_300中,內容如下


範例一
由100個節點所組成,模擬時間為100秒,pause time設為100秒,也就是在模擬這段時間沒有mobility,另外設定使用CBR flow,最大連線數目為十條,每ㄧ條flow十個封包

使用cbrgen 產生 traffic pattern,在使用setdest產生無線網路移動場景

DSDV執行方法與結果

AODV執行方法與結果


範例二
由100個節點所組成,模擬時間為100秒,pause time設為0秒,也就是在模擬這段時間節點隨時都在移動中,另外設定使用CBR flow,最大連線數目為十條,每ㄧ條flow十個封包

使用setdest產生無線網路移動場景

DSDV執行方法與結果

AODV執行方法與結果

DSR執行方法與結果

Friday, April 11, 2008

實驗九 無線網路效能分析探討(一) 隱藏節點和暴露節點的問題

了解什麼是隱藏節點和暴露節點的問題,了解RTS/CTS如何降低隱藏節點問題發生的機率,提升系統效能。

隱藏節點問題
有三個節點 A → B ←C,節點A和節點C同時想傳送資料到節點A,但是節點A和節點C都不在對方的傳送範圍內,所以節點A把資料傳給節點B,節點C也把資料傳給節點B,這樣資料就會在節點B發生碰撞(Collision),因為傳送距離發生誤判的問題,就被稱為隱藏節點問題(Hidden Terminal Problem)

暴露節點問題
有四個節點 R1 ← S1 S2 → R2,其中R1和R2不在對方的傳送範圍內,而S1和S2彼此在對方的傳送範圍內,暴露節點的問題是發生在當有一個節點要發送資料給另一個節點,但因為臨近節點也正在發送資料,因此影響了原本節點的資料傳送。

利用NS2的小工具計算出有效的傳輸距離和相對應的參數,在第一次使用的時候要先編譯程式

執行threshold

以Two Ray Ground ,希望有效的傳輸距離為250公尺,便可得到相關參數設定

執行 test_2nodes.tcl檔

執行結果當node 0 和 node 1 距離為250公尺,發現傳送端 sd 檔和接收端 rd 檔所傳送和接收到的封包一樣多

執行結果當node 0 和 node 1 距離為251公尺,發現傳送端 sd 檔所傳送的封包接收端rd檔沒有任何的紀錄,是因為node 0 和 node 1 距離過遠,無法成功接受到封包


Example1
A B距離100m ,B C 距離 100m 而節點之間的carrier sense距離為150m,可傳送的有效距離為120m

使用threshold球出相對應的參數

執行 test_hidden_terminal.tcl,當沒有RTS/CTS(Mac/802_11 set RTSThreshold_ 3000),可以發現sd1 node0送出1688個封包,rd1 node1 接收到 153個封包

執行 test_hidden_terminal.tcl,當沒有RTS/CTS(Mac/802_11 set RTSThreshold_ 3000),可以發現sd2 node0送出1626個封包,rd2 node1 接收到 104個封包

當沒有RTS/CTS(Mac/802_11 set RTSThreshold_ 0),可以發現sd1 node0送出1688個封包,rd1 node1 接收到 738個封包

當有RTS/CTS(Mac/802_11 set RTSThreshold_ 0),可以發現sd2 node0送出1626個封包,rd2 node1 接收到 782個封包,結果可以顯示使用RTS/CTS可以降低隱藏節點的問題


Example2
S1 S2 同時想要分別傳送資料到R1和R2,節點之間的距離都為100公尺,而 carrier sense距離為120公尺,可以傳送資料的有效距離為100公尺

使用threshold球出相對應的參數

以Two Ray Ground ,希望有效的傳輸距離為120公尺,便可得到相關參數設定

執行 test_exposed_terminal.tcl,當沒有RTS/CTS(Mac/802_11 set RTSThreshold_ 3000),可以發現sd1 node1送出1688個封包,rd1 node0 接收到從node1送出的925 個封包

執行 test_exposed_terminal.tcl,當沒有RTS/CTS(Mac/802_11 set RTSThreshold_ 3000),可以發現sd2 node1送出1626個封包,rd2 node0 接收到從node1送出的835 個封包

當有RTS/CTS(Mac/802_11 set RTSThreshold_ 0),可以發現sd1 node1送出1688個封包,rd1 node0 接收到 828個封包

當有RTS/CTS(Mac/802_11 set RTSThreshold_ 0),可以發現sd2 node1送出1626個封包,rd2 node0 接收到 782個封包,結果顯示使用RTS/CTS並不能有效的解決暴露節點的問題


暴露節點的接收檔雖然跟課本的結果有一些出入,但是不會差很多,應該每一台電腦所得到的結果不一定會一樣的關係吧!