# 802.11 - DCF (Access Procedure) [TOC] ## 課程影片 ### 第 3H 講 IEEE 802.11 無線區域網路 (Wireless LAN) L03 8 {%youtube scX_e-cKT-Q %} ### 第 3I 講 IEEE 802.11 無線區域網路 (Wireless LAN) L03 9 {%youtube gsTrXZo5ZJs %} ## DCF Access Procedure DCF 是使用 CSMA/CA 的方式傳輸。他的步驟如下: 1. **Carrier Sense**:傳輸之前,要確認有沒有人正在往這個目的地傳輸。接下來依照「接收端是否 *busy*」作為傳輸依據。在後面會更詳細地介紹如何去做 *carrier sense*,這邊暫時先省略。 2. **Collision Avoidance**:接下依照「接收端是否 *busy*」,分兩種狀況處理: 1. 若接收端「沒有」*busy*:這時候雖然沒聽到傳輸,但有可能是對方正在等待其他封包。所以這時要「繼續監聽一個 *DIFS*」時間。若這 *DIFS* 的時間內,仍然都沒有節點朝目的地傳輸,那麼就傳輸。 2. 若接收端「正在」 *busy*:這時候就只能先等待目的地收完。但等待目的地傳輸結束之後,除了持續監聽「一個 *DIFS*」還要再加上「一段 *random-backoff*」的時間。 這是因為:如果有其他人同時也在等,而且大家都同時目的地收完之後 *DIFS* 的時刻同時傳輸,那麼所有傳輸還是會撞在一起。因此還需要各自等待一段隨機時間。如果這段 *random back-off* 內都沒有聽到有人往目的地傳輸,那麼就可以往目的地傳輸。 若上述 2, 3 當中等待的過程中,突然監聽到有其他節點往該目的地傳輸,那麼這個等待時間只會暫停。等該傳輸結束之後,再繼續倒數。 ### 例子:目的地閒置的狀況 這個例子對應的狀況是上述的 1.,也就是 1. **Carrier Sense**:發送方確認當下是否有節點向進行傳輸。發現當下沒有,於是繼續監聽 *DIFS* 的時間,確認這個閒置不是回覆其他節點前的等待時間。 2. **Collision Avoidance**:確認在這一個 *DIFS* 的時間內,都沒有其他節點正在往目的地傳輸的話,就開始傳輸自己的封包。 ![](https://i.imgur.com/4PT1d9X.gif) ## DIFS + Random Back-off = 賽跑 ![](https://i.imgur.com/hZfHtti.png) 這個 *DIFS* 加上 *random back-off* 的模式有點像是賽跑,只是每個人要跑的距離是隨機的。*DIFS* 就像是比賽開始前的倒數計時。 1. 前一個節點傳輸完成後,比賽就準備開始。 2. ==*DIFS* 像是比賽開始前的倒數計時==。當這個 *DIFS* 倒數到 $0$ 的時候,所有人要開始「跑」。跑的方法就是「倒數自己的 *random back-off*」。 3. 每一場比賽中的 ==「冠軍」==,也就是最先跑完自己 *random back-off* 的那個節點,==可以得到向目的地傳輸封包的權限== 。 4. 而那些跑輸的,就只能繼續把剩下沒跑完的 *random back-off* 在下一輪比賽中跑完。 ### 第一個封包 1. $A$ 正在傳輸中。在 $A$ 傳輸的過程中,$D$、$B$、$C$ 也希望往相同的目的地傳輸。 2. 因為 $A$ 正在往目的地傳輸中,所以 $D$、$B$、$C$ 必須等待 $A$ 傳輸完。 ### 第二個封包 1. $A$ 傳輸結束之後,比賽準備開始。在比賽開始前的 *DIFS* 倒數計時一到,$D$、$B$、$C$ 就各自開始自己的 *random back-off*。誰最先把自己的 *random back-off* 等完,誰就可以贏得傳輸的權力。 2. 在 $D$、$B$、$C$ 三者的 *random back-off* 時間中,$C$ 的 *random back-off* 最先結束,因此 $C$ 可以往目的地傳輸。而 $B$、$D$ 的 *random back-off* 時間則各自剩下 9 與 5 微秒。等待完 $C$ 傳輸之後,他們要繼續恢復倒數這個 *random back-off*。 3. 這時 $E$ 也準備往相同的目的地傳輸,所以競爭者又多了 $E$。 ### 第三個封包 1. $C$ 傳輸完之後,剩下的競爭者 $B$、$D$、$E$ 等待一個 *DIFS* 。這個 *DIFS* 時間一到,$B$、$D$、$E$ 就繼續開始下一輪的 *random back-off* 競爭。這時,$B$ 的 *random back-off* 只剩下 9 微秒,而 $D$ 的則只剩下 5 微秒。新加入的 $E$ 也領到了自己的 *random back-off*,是 7 微秒。 2. *DIFS* 倒數計時一結束,所有人開始倒數自己的 *random back-off*。這時因為 $D$ 的 *random back-off* 只剩下 5 微秒,是所有競爭者中最短的,所以 $D$ 的 *random back-off* 結束之後,換成 $D$ 搶到往目的地傳輸的權力。 3. 這時競爭者剩下 $B$ 與 $E$。其中,$B$ 的 *random back-off* 剩下 4 微秒,而 $E$ 則只剩下 2 微秒。 ### 第四個封包 1. $D$ 傳輸結束之後,$B$、$E$ 在倒數一個 *DIFS* 時,準備開始下一輪比賽,比誰先把自己的 *random back-off* 數完。 2. 這時,因為 $E$ 則只剩下 2 微秒,而 $B$ 還有 4 微秒,所以 $E$ 會先把自己的 *random back-off* 數完。搶到