Friday, June 27, 2008

期末程式作業

下載老師的主程式Demo.cpp和標頭檔PoissonArrival.h、DynamicQueue.h把它加入到程式中,並且進行修改,目前大概改了一些,還沒全部搞定。

期末程式作業

p.s. 最近搬家忙昏頭了,所以還沒修改好。

NS2技能的自我檢視

Q1:隱藏節點 & 暴露節點

描述:在實驗九當中利用了RTS/CTS 的機制來降低隱藏節點的問題,但是暴露節點使用RTS/CTS並沒有辦法明顯改善,所以要利用何種方法來改善暴露節點的問題?

Q2:Multicast & Unicast

描述:Unicast 必須設定封包最大傳送次數,最大傳送次數的值對封包的遺失率有什麼影響嗎?

Q3:Model

描述:如果有自己創立的model檔,要如何擴充到目前的檔案中?

Q4:MyEvalVid

描述:在實驗六中,使用不同的封包錯誤率,對PSNR的數值影響為何?

Q5:影響傳輸

描述:為何需要在測量影響傳輸的時候,需要經過多次的轉檔?

Thursday, May 15, 2008

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並不能有效的解決暴露節點的問題


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

Sunday, March 30, 2008

實驗八 影像傳輸效能分析與評估

了解各種影響影像傳輸的因素,並了解各個因素之間的關連性。

使用ffmpeg程式將YUV檔轉成m4v檔

使用MP4Box將影片再轉成mp4檔案,不過又出現了錯誤訊息,缺少了msvcr70.dll,於是我就去把lab6的msvcr70.dll複製過來lab8的資料夾裡面,就可以解決了

成功轉成mp4

利用mp4trace程式將影片中每一個frame相關資訊擷取出來並存放到foreman_qcif.st檔案中

使用ns2進行模擬

使用模擬過程中的 sd 、rd 、foreman_qcif.st 、mp4檔案,經由etmp4程式產生一個有畫面遺失的影片mp4檔

再使用ffmpeg將重建之後的mp4檔回復成yuv影片檔

使用avgpsnr去針對重建後yuv影片檔及原始yuv影片檔,獲得重建後的yuv影片的平均PSNR為
26.609726(跟課本上的PSNR=26.64差了ㄧ點)

a.產生GOP length 9的方式

b.產生 GOP length 15的方式