--- title: 802.11 協議(續)|第九週 tags: 無線與行動網路導論 --- :::info 無線網路的效能評估 下禮拜會講題目 或者可以改成做更複雜的作業 ::: # Coordinated Functions:DCF 跟 PCF ![](https://drive.google.com/uc?id=1meSCRgGjh6BczWB4MJUTTX6ezf8NHj12&export=download) - PCF:Point Coordinated Function - point 就是指 Access point,很常使用的另一個 AP 的名詞 - 是在 DCF 之上擴充的功能,他是疊在 DCF 上面的 - 之前也有提到他是選用的,所以不一定會有 - 性質類似 Centralized coordination - 也就是之前學過的細胞網路 - DCF:Distributed Coordinated Function - 就是上周提到的 CSMA/CA ## PCF 基本上沒要做什麼特定的事情就是跑 DCF,如果要開始做 PCF 就會特別給個區間。 PCF 又叫 Contention-free period,代表那個時段都由 AP 來控制,其他人先等等。 ![](https://drive.google.com/uc?id=1rYQVqs5dmce9RAL_Ds3hTZ6uSlvUqxqJ&export=download) 橫軸是時間 ### 週期性 PCF 是有週期性的,AP 會固定時間區段執行 PCF 這件事情。 但也不是說死死的週期性,要開始 PCF 的時候一樣要監聽一段 IFS,而這個 IFS 就是上週提到的 PIFS。 所以可以知道 PCF 還是以 DCF 為主,如果遇到傳到一半的 DCF 是要等他傳完的,也因此可以在上圖看到後面的週期有延後;但是其他週期就不會,會照著原來的時間,如下圖: ![](https://drive.google.com/uc?id=1KD0J2USGlVKKEw-K79yZTqmv-Er3qyHn&export=download) >老師有說 PCF 延後不會超過傳輸一個 data 的長度。 --- # 資源調控 / Scheduling AP 控制了那個時段,他會在那個時段調配頻段這項資源,方法就是之前提到的 Polling,也就是 AP 會去 Poll device。 那 AP 要怎麼知道要 Poll 哪些裝置?答案是 AP 會持有一個 Pollable Station 的 list。 ## Pollable station 所謂的 Pollable station 是能夠在 PCF 時段,「回應 CF-Poll」的裝置;或者說他是在 PCF 時段需要傳輸 MSDU(MAC SDU) 的裝置。 要成為這種裝置,他會設標頭的 more data 為 1,就好像跟 ap 說我是要傳資料的。 MSDU 是 mac layer 的一個 packets。 這裡 CF 前綴的代表是 PCF 裡頭的動作,下面會有例子。 ## Piggyback 其實有 CF 前綴的封包還有很多種,這些標頭是可以互相組合的: ![](https://drive.google.com/uc?id=1mXOUxPaxupdwJMw4S_e8VGpn1pgUCah5&export=download) 可以看出行為就只有兩大類:手機上傳,跟 AP 下傳。 - AP DL: - DATA、CF-ACK、CF-POLL,這三種 - 所以總共組合就有 7 種 - MS UL: - DATA、CF-ACK,這兩種 - 所以總共組合就有 3 種 上面個別的五個是基本的動作,然後前面有提到 Piggy 這件事,也就是標頭會有混合的可能。 要注意只有 AP DL 的動作可以互相搭配,MS 的 UL 動作可以互相搭配,畢竟是不同的人傳輸的。 所以雙方會持有對應表,去判別那些可能: - MS 端就要能夠判別 7 種標頭 - 因為從 AP 來的內容有 Data、CF-ACK、CF-Poll 三種 - AP 端就要能夠判別 3 種標頭 - 因為從 MS 來的內容有 Data、CF-ACK 兩種 下面是一些例子: - Data + CF-Poll - Data + CF-ACK - Data + CF-ACK + CF-Poll # 內部架構 接下來介紹 PCF 內發生了甚麼事。 ## Control frames / Beacon 和 CF-End 封包 ### Beacon 告訴大家這裡有個 AP ,以及跟大家說在接下來會是 PCF 時段,由我來分配資源。 也就是說 Beacon 是在 PCF 開頭會傳的封包,並且它的功能是讓其他人知道 PCF 要發生了,還有發生多久;這樣聽到的設備就會去設置 NAV。 而這個 NAV 是一個最大的等待時間,但是可以被提早結束,這就是 CF-End 的功能。 ### CF-End 告訴大家 PCF 結束了,如果有提早結束的話,大家就不會傻傻等完整個 NAV。 ### PIFS 長度會小於 DIFS 的原因,是避免 AP 搶不到時段執行 PCF。 ![](https://drive.google.com/uc?id=1BdFb70hLPBOf0KcqB-pqSs8Wlr2TC9aL&export=download) 1. 首先可以看到 Piggyback ,AP 傳了資料給 1 號手機,還同時進行 Polling - 也就是說標頭同時含有 Data 跟 CF-Poll 2. 然後 1 號手機因為被 Poll 所以傳了資料,還有剛剛收到資料後確認用的 Ack - 也就是說標頭同時含有 Data 跟 CF-ACK 3. 接下來換 AP 除了回傳剛剛 1 號手機的 ACK,還傳資料給 2 號手機,又 Poll 了 2 號手機 - 也就是說標頭同時含有 Data 、 CF-ACK 跟 CF-Poll - 然後 2 號也傳了 CF-ACK 跟 DATA - 接下來 AP 也對 3 號做一樣的事情 4. 但是 3 號手機似乎沒有聽到 Poll - 所以當 AP 監聽超過 PIFS ,他就會換下一個裝置 5. 然後最後 4 號也傳完了,AP 也發現沒有要做的事了,所以除了傳 ACK 回去,還傳了 CF-End - 這樣其他裝置聽到後,就會解除 NAV --- # 802.11 的其他功能 接下來介紹 802.11 的其他功能 # Registration 前面有提到 AP 會週期性的執行 PCF,或著說週期性的傳 Beacon 封包,有一個作用是「保持時間的同步」,還有「保持跟裝置間的「連接 / associations」」。 這樣子裝置連過一次後,之後要連就會自動連上這個 AP。 - AP 跟裝置之間建立「association」,裝置「registers/註冊」到 AP - 裝置會發送「Request」,而 AP 會回傳「Response」 - 只有註冊後的裝置才能傳輸資料 ![](https://drive.google.com/uc?id=1ZY2VaYpj6RgQj1pjEgKt8XfontAbMkBu&export=download) 第一次的要建立聯繫,術語叫做 association,之後重複連的時候就是屬於 re-association ![](https://drive.google.com/uc?id=1utKkRR6Gcg6ltInBX7cgjsnBmuvdj1RN&export=download) 下面是張大圖 ![](https://drive.google.com/uc?id=1Z-ZlREz2xTjf5Dejm7d_ncVMtt0iz__H&export=download) 裡面的 Probe 就是代表一個探測的用意,請見下方。 可以看到除了 association,還有 authentication。 ## Probe Request 跟 IAPP/Roaming - IAPP: Inter Access-Point Protocol - 這是各個 AP 之間的 protocol - 目的是讓你可以很快的換到另一個 AP,也就是 handoff 的部分 - 但是是指 L2 的換手,L3的換手是 IP 的部分 要加快 L2 的換手,就是要減少延遲,而延遲的來源有下面情況: - 再次的做 authentication: - 上面提到過的認證步驟,如果沒有 IAPP,換了一個 AP 就要重新認證 - 而且有可能認證是由資料庫認證的,不是由 AP 認證的,速度更慢 - 聽到 beacon 的時間: - 像是你聽到的是快結束的 Beacon - 那麼會因為無法完整辨識這是個 Beacon,你就要等到下一次的beacon - 聽不同 channel 的延遲: - 就是去搜尋不同頻段的 AP - 當你要連線的時候,會去檢查周圍的 AP,但他們有可能在不同的頻段 - 同時還要順便檢查能量大小,然後挑能量大的 - 還有時候可能找了很多頻段都沒找到 AP Probe request 就是用來探測周圍的 AP,也就是上面第三點搜尋 AP 的導致延遲的部分。 而有了 IAPP,你就可以在屬於同個群組的 AP 間移動,或者說「漫遊/Roaming」。 ![](https://drive.google.com/uc?id=1KSQQlInGe5adUa-8AHN73xU75mNR2xcJ&export=download) 可以看到筆電移動到中間點的時候,發現原先連線的 AP 強度變弱了,所以他廣播了一個 Probe request ,看看哪個信號比較強的 AP 會回他,然後他就會在這些當中選信號強的人。 - 可以看到右邊的第 3 號 AP 回應了他 然後因為這三個 AP 之間是有支援 IAPP 的,所以可以看到筆電做的是 re-association,而不是重新建立認證、連結。 :::warning 前面雖然看到 PCF 時段 AP 時間都被塞滿滿似乎很忙,都一直在傳,那這樣有時間處理 Probe 嗎? 答案是其實不是所有時間都會像上面那麼忙,而不忙的時候就可以處理;或是在 DCF 的時候也可以處理。 ::: ## Beacon 這個封包裡面同時載有很多重要的東西,像是 BSS-ID、traffic indication map(TIM) 等等。TIM 下面會提到 --- # 能源管理 Power Management 雖然電子產品各方面進步速度都很快,也就是俗稱的摩爾定律,但是電池的速度卻很慢。 而且由於大部分時間,手機都是接收「突發的訊號」,其他時間都是待機,如果待機時間都持續開著,那麼會很耗電。 因此,省電很重要;而目前已知最有效的省電方法,就是關掉他,或者說進入休眠模式。 >休眠只有下行 ## 架構 - STA 有兩種狀態 - Active mode (AM) - 就是平常的接收時的狀態 - Power-save (PS) mode - 就是上面提到的休眠狀態 - PS Mode - 要休眠的時候會傳一個封包,在 FC 有個地方可以設成 1,告知 AP 進入了 PS - AP 知道 STA 進入 PS Mode 之後,如果有資料要給他,會先幫他暫存起來 - 也就是當作 STA 的 Buffer - 但是總不能一直擱著,所以他收到之後就會叫醒該 STA,叫他起來收資料 - 因此前面提到的周期性 Beacon,又發揮了作用 - STA 雖然在 PS Mode,但是他會跟隨 Beacon 的週期,去聽 Beacon 的內容 - 又叫 Timing Synchronization Function (TSF) - 當然為了要聽清楚所以會早一些些時間起來 - Power Save Poll 封包 - STA 起來後,會傳輸這個封包告知 AP,他準備好了 - 這樣 AP 就可以把資料交給他了 - 有點像是對 Beacon 的 ACK;當然 AP 收到 PS Poll 也會傳一個 ACK ## Traffic Indication Map / TIM 這就是用來叫醒 STA 的東西,會存在 Beacon 裏頭。記錄了目前哪些 STA 有暫存的資料。 所以如果 STA 發現他在名單裡面,他就會開始回到 Active。 回到 Active 後會傳輸 PS Poll。但是這個 Poll 跟之前的性質不太一樣,之前是 AP 去 Poll 裝置,這裡的則是告訴 AP,我準備好接收資料了。 ## Paging 這個概念出現在很多地方,像 802.11 就是 TIM 的部分;是個 L2 的機制。 就是會有個休眠模式 Sleep mode / dormant mode。 搭配有人幫你暫存資料,然後叫你起來的機制。 像是在 Cellular Network 當中有個 Paging area: - 手機 Active 時候會精準知道自己在哪個 Cell - 跨過 Cell 邊界時就會切換所在的 Cell,這在醒著的時候是必要的 - 但是到了休眠的時候,如果還這樣做就會很耗電 - 休眠模式:依靠 Paging area - 會是多個 Cell 為一個 Cluster,而手機在定位時,就會換成要跨過 Cluster 邊界才會進行定位 - 如果要叫醒手機,此時由於 BS 只能知道該 MS 在某個 Cluster,但是並不知道在哪個 Cell - 所以會進行廣播來叫醒他 因此這是個取捨,看是要大的 Paging area,但是花很大力氣叫醒他,或是要較小的 Paging area,雖然花小力氣叫醒他,但是他要更頻繁的進行位置更新。 :::info 之後在 GSM 的時候會提到這件事,敬請期待 ::: --- # TIM 和 DTIM ## TIM / Traffic Indication Map 就是上面提到的那個用來叫醒 STA 的 MAP。 ## DTIM / delivery traffic indication map 是用於 Multicast 跟 Broadcast。 - Multicast 是傳給一群人 - Broadcast 是傳給所有人 - 原本 TIM 是只對一人 ![](https://drive.google.com/uc?id=1i-63MobOws_2khz10cBUsXRMJ3zuwFfD&export=download) 可以看到上面有前面講的「提早一點點」的部分。 聽 TIM 的地方,如果等了太久沒有聽到,各家廠商會制定某些演算法,決定看到底發生了什麼事,像可能會醒來看看還在不在 AP 的範圍內。 ## Ad hoc Traffic Indication Map / ATIM 這是裝置之間的傳輸,如果兩人都休眠,他們會互相規定何時要一起起來 但是現在很少用了,現在很少裝置間連線 --- # QoS Enhancement 和 Security 這是在兩個版本中做出的改善 - IEEE 802.11e:QoS - IEEE 802.11i:Enhanced security ## Security ### Open System authentication 開放系統認證 在 request/response 這兩個過程中,會分享一個 Key,這個 Key 是個 40-bit 的密碼 request/response 前面的 Probe、Authentication、Association 三大步驟都有 >但怎麼跟維基說的不太一樣 ### Wired Equivalent Privacy (WEP) 這是較舊版本的 WIFI 採用的安全協議。 會有個 40-bit 的 Key 會跟原本要傳的訊息信行 XOR,產生 key sequence。 但容易受攻擊 Attack 影響 [WIKI](https://zh.wikipedia.org/zh-tw/%E6%9C%89%E7%B7%9A%E7%AD%89%E6%95%88%E5%8A%A0%E5%AF%86) 所以被之後出現的 WPA 給取代掉了 ### Wi-Fi Protected Access (WPA) [可惡沒聽到](https://zh.wikipedia.org/zh-tw/WPA#WPA%E5%92%8CWPA-2%E4%BC%81%E6%A5%AD%E7%89%88%E4%B8%AD%E7%9A%84EAP%E7%A8%AE%E9%A1%9E) ## QoS:EDCA / Enhanced distributed channel access :::warning Qos / Quality of Service。 QoS 是一種控制機制,它提供了針對不同使用者或者不同資料流採用相應不同的優先級,或者是根據應用程式的要求,保證資料流的效能達到一定的水準。 [By Wiki](https://zh.wikipedia.org/zh-tw/%E6%9C%8D%E5%8A%A1%E8%B4%A8%E9%87%8F) ::: 一般來說 Qos 也分兩大種,一種是有保證會送到的。 另一種是不確定你收不收的到的,而這種會去做差異化 differentiation ,就是有分優先程度。 差異化就是會根據傳輸的資料分成不同類別 Traffic Classes,各自有不同的優先程度。 然後在各個類別內,資料又可以各自分優先程度;所以就長的像 Multiple Priority Queue。 ![](https://drive.google.com/uc?id=1KRXAPKvKr0_4e53Uw8XlB_9z_TK7Djzt&export=download) >Access Category 簡寫為 AC 方法像是: - 分配不同的 CW min 跟 max - 以 AIFS/Arbitration IFS 取代 DIFS - 讓優先度較高的有較小的 AIFS,較低的則有較大的 AIFS ![](https://drive.google.com/uc?id=1SjrKJCuRn4KQx-lXLaY8nqT_EEHOUiMR&export=download) - Transmit Opportunity (TXOP) - 老師說很像前面提到的 PCF - 如果一個裝置搶到了 TXOP ,那麼在那個時段都只可以他傳 - 但是問題是發生在速度很慢的 MS 上 - 當初 RBO 確保的是公平的機率去使用頻段,但是速度慢的人,會傳很久 - **也就是在使用時間上是不公平的** - 所以會限制速度慢的人傳的時間,然後讓快的人就可以多傳一些時間 Hybrid coordination function (HCF) 取代 PCF。 ### Access Categories 就是上面在 EDCA 提到的區分不同優先程度用的。 在 EDCA 架構下有四種 AC,其中對應四種不同的 CW 和 AIFS 組合 ![](https://drive.google.com/uc?id=1HUE-EYZF2H445qVfD-T_zDipOn2FhTSr&export=download) --- # 其他有趣的 Enhancement ## 802.11s - Mesh 網路 通常是家裡很大才會用到。有個名詞叫 Multihop relay ,一個 hop 就是從一個 Mesh 跳到另一個裝置,所以三個裝置間如果是一條線連接,那麼就有可能有 3 個 hop。 - Mesh Portal - 接向 ADSL 線的主機台 - Mesh Point / MP - relay 中繼 用的 Mesh - Mesh AP - 在 STA 眼裡他扮演著 AP 的角色 ![](https://drive.google.com/uc?id=1Dd9LpCiTLzbnZ3Y4jAD6zW_6iDN8UeQI&export=download) ### routing 由 aodv 改來的,總之就是找出mesh之間的最短路徑。 總之以後會講更多,這裡先知道 802.11 有支援這回事。 :::info 沒錯,後面有一週就在講 Multihop relay ::: ## 802.11p - WAVE 車用網路 Wireless Access for the Vehicular Environment 最一開始是美國開始的,車跟車之間要通訊,減少車禍。 但現在還沒普及,因為大家都在等他普及後才要買這種車。 要用於車子,首先建 association 的速度要快,然後要處理都卜勒效應,像是比較長的 preamble 之類的物理層的改進。 有 9 成內容是跟現在是很像的,只不過多了車子相關的部分。 ### 常見的情景 - V2V - 車跟車之間,像是告訴我現在煞車了 - 或是車隊會使用 - V2I 或 I2V - I 是 infrastructure,另一個名字是 Network (V2N/N2V) - 就是網際網路跟車子間有連線,像是告訴你哪裡塞車,周圍有什麼等等 802.11p 的對手是現在 4G 跟 5G。 --- 接下來算額外的資訊 - 802.11aa - 處理 BSS 的 overlap - Reliable multicast - 802.11af - TV white space ,電視頻段的空白處 - 電視也是用無線的頻譜在傳輸,這種古老的技術,都佔用了很好的頻譜 - 所以 WiFi 就想也用用這個頻段 - 因為電視有很多情境都有空白片段 - 像是晚上,根本沒有節目 - 然後現在數位電視壓縮率變好,空間變大 - 802.11ah - 有個低頻的頻段 Low frequency band 可以用 - 但是他頻寬沒有很大,所以只能傳低能耗、低資料率的東西 - 用於物聯網 - 802.11ac - 其中有個重要的技術是 MIMO - 現在速度的大要進就是因為這個多個天線的技術 MIMO - 因為背後的某些數學,會讓多個天線,就看起來好像通道變成了那麼多倍 - 想知道細節要修數位通信,或研究所的課 - Multi user MIMO - 因為要達到 MIMO 就是兩端都要相同數目的天線,但手機可能天線比較少,所以會拉多隻手機一起湊數 - 802.11ad - 家用環境,近距離,快速傳輸的用途 :::info 可以修的課:數位通信 :::