2008年3月27日 星期四

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

背景知識:


隱藏節點問題:


如圖有三個節點,A和C都正傳送資料給B,但是A和B都不在對方的傳送範圍內,所以以C來說,它會認為目前沒有別的節點傳送資料給B,結果A和C傳送給C的資料就會在B發生碰撞!而這樣因傳送距離而發生誤判的問題就被稱為隱藏節點問題


暴露節點問題:


如圖上有四個節點,A1和A2彼此在對方的傳送範圍內,而B1和B2卻不是,因此當A1傳資料給B1時,A2會偵測到A1在傳資料且怕說影響到A1的傳送而暫時不傳資料給B2,但事實上A2是可以順利無誤的傳送給B2;結論是此種問題是發生在當有一個節點要發送資料給另一個節點,但因為臨時節點也正傳送資料,因而影響了原本節點的資料傳送





實驗:

因為此實驗要計算出有效的傳輸距離和相對應的參數,所以在NS2中我們可以找到一些小工具來輸入並顯示想要的數據,我們可以在以下的位置找到要用的工具C:\cygwin\home\使用者名稱\ns-allinone-2.29\ns-2.29\indep-utils\propagation





第一次使用時要先編譯程式





輸入此行可看使用說明




以Two Ray Ground , 希望有效的傳輸距離為250公尺為例



TCL模擬程式驗證(book2/lab9/test_2nodes.tcl)



模擬後會產生傳送端記錄檔sd和接收端記錄檔rd,下圖為sd,

如果我們把兩節點的距離改成251公尺的話,會發現rd沒記錄

因為兩節點距離過遠







隱藏節點問題

節點A到節點B的距離為100m,節點B到節點C的距離也是100m,而節點之間的carrier sense 距離為150m,可以傳送資料的有效距離為120m


TCL模擬程式驗證(book2/lab9/test_hidden_terminal.tcl)


以下是模擬後產生出來的檔
當沒有RTS/CTS時(Mac/802_11 set RTSThreshold_ 3000)


讀取rd的時候赫然發現數字跟課本的不太一樣!


我想說先試試看接下來的數據好了,在模擬之前記得改依下tcl檔的參數
當沒有RTS/CTS時(Mac/802_11 set RTSThreshold_ 0)






結果又有數字不一樣了!!

還好是課堂上做的,所以問了老師再看看老師發表的文章後,大概知道是怎麼回事了






暴露節點問題



節點s1和節點s2同時想要分別傳送資料到R1和R2,節點之間的距離都為100m,而carrier sence 距離為120m,可以傳送資料的有效距離為100m



TCL模擬程式驗證(book2/lab9/test_exposed_terminal.tcl)


以下是模擬後產生出來的檔

當沒有RTS/CTS時(Mac/802_11 set RTSThreshold_ 3000)

此為sd檔



此為rd檔



當沒有RTS/CTS時(Mac/802_11 set RTSThreshold_ 0)

此為rd檔


大部分的說明課本上和課堂上都有講,我這裡只有描述自己的操作和簡略說明而已




















































































































沒有留言: