http://www.pixnet.net/NS2lab

2007.10.01

整理了關於無線傳播的機制,了解無線傳輸時機制後再去看無線模擬的 trace 會比較清楚是在傳送什麼。


DCF-CSMA/CA 機制︰分散協調功能

     1.先進行『載波感知』的動作,也就是偵測所使用的頻道是否有別人正在使用。偵測期間需為 DIFS 時間加上一個亂數時間,若沒有人使用則繼續下一步。
 
     2.傳送端送出 RTS(Request To Send) 封包給接收端,告訴對方想要傳送資料。

     3.接收端收到 RTS 封包後,會在SIFS (Short IFS) 時間內回應 CTS(Clear To Send) 封包給傳送端。

     4.傳送端收到 CTS 封包後,會開始傳送資料。假若沒有收到,就假設碰撞回到第一步重新開始。

     5.接收端收到資料會回應 ACK(Acknowledge)封包進行確認;若傳送端未收到 ACK 封包,就判定傳送失敗,回到第一步重新開始。


在 RTS/CTS 封包中也會包含隨後的傳送過程會花多少時間的資訊,因此其他站台可以由 RTS/CTS 封包中得知接下來的一段時間內有節點在使用傳輸介質,因此若有要傳送資料則會自動多等這段時間。

備註︰

     1. DCF 的資料傳送過程需傳送四個封包,所以也有人稱為 4-Way Handshake

     2. DIFS 時間,隨所用的實體層技術不同而不同

     3. DIFS = Distributed InterFrame Space or DCF InterFrame Space

~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~

PCF-CSMA/CA 機制︰無需競爭傳送方式

     1.定時廣播 Beacon 封包宣傳此節點的存在,Beacon內含 ESSID、目前使用的頻道編號等資訊。進入 CF 模式時,AP 會在 Beacon 封包中加入使用 CF 模式的時間。各站台收到此封包,會將此時間加入他們的等待時間,因此接下來不會有人搶用媒體,整個網路就進入 CF 模式。

     2.AP 開始依照內部清單的順序,用 [CF-Poll] 封包輪流詢問各站台是否要傳送資料。如果在詢問時,恰好有資料要傳給該節點,AP 會將資料連同詢問一起送出,稱為 [Data + CF-Poll] 封包。

     3.被詢問的站台會在 PIFS 時間內回應,回應內容為下列︰

         (1)沒有資料傳送,則回應不含資料的空封包

         (2)有資料傳送,則回應資料封包

         (3)若收到的是 [Data + CF-Poll] 封包,但沒有資料要傳送,則回應 CF 模式下的 ACK 封包(稱為 [CF-Ack] 封包)

         (4)若收到的是 [Data + CF-Poll] 封包,但有資料要傳送,則回應資料以及確認資訊的封包(稱為 [Data + CF-Ack] 封包)

     4.AP 繼續詢問下一個站台,若 AP 收到的是 [Data + CF-Ack] 封包,則 AP 會回應前一站台的 Ack 和詢問下一個站台的 CF-Poll 放在同個封包中送出(稱為 [CF-Poll + CF-Ack] 封包)。若剛好也有資料要送給下一個站台,也會一併送出形成( [Data + CF-Poll + CF-Ack] 封包)。

     5.重複 3、4 步,直到 CF 時間結束。

     6.AP 送出 [CF-End] or [CF-End + CF-Ack] 封包公告結束 CF 模式,接下來各站台又要以 DCF 提供的機制下去競爭了。


備註︰

     1. CF 傳輸模式是由 PCF 所提供,PCF 功能為 AP 的選用功能,因此只能在 Infrastrcuture 模式中使用。

     2. 必須 AP 有提供此功能才行。

     3. 支援 CF 的 AP 會在預設的時間間隔啟動 CF 模式,此模式下,能否傳送資料由 AP 決定。


資料來源︰Tcp/Ip 協定觀念與實做 第二版(書)
 

歡迎對於 NS2 有研究或見解的同學、朋友可以一起討論  by Yo PM 10:55

創作者介紹
創作者 NS2lab 的頭像
NS2lab

『網路節點模擬』 研究日誌

NS2lab 發表在 痞客邦 留言(1) 人氣()


留言列表 (1)

發表留言
  • Aramis
  • 你們好~我有個小疑問~假設我同時傳送UDP與TCP封包到同一個Destination Node,這樣的情況下必然會發生碰撞,想請問一下,NS2是否有預設說如果發生碰撞,這兩類型的Data Packet哪一種的Priority比較高?還是說並沒有這樣的預設~
  • Queue 或許就可以幫你處理碰撞時的這個問題!?

    NS2lab 於 2008/06/11 16:51 回覆