1. 程式人生 > >802.11無線網路權威——(三、MAC基礎)

802.11無線網路權威——(三、MAC基礎)

MAC位於各式物理層之上,控制資料的傳輸。它負責核心成幀操作(core framing operation)以及與有線骨幹網路之間的互動。

  • 802.11採用載波監聽多路訪問 / 衝突避免(carrier sense multiple access with collisions avoided,簡稱CSMA/CA)機制。
  • 802.11採用肯定確認(positive acknowledgment)機制。所有送出去的幀都必須得到響應。(下圖所列步驟是原子操作。)

RTS:請求傳送(Request to Send)

CTS:清除傳送(Clear to Send)

退避(backoff)

閾值(threshold)

無線媒介的訪問是由協調功能(coordination function)控制。

Ethernet 之類的CSMA/CA訪問是由分散式協調功能(distributed coordination function,簡稱DCF)控制。

DCF:分散式協調功能(distributed coordination function)

PCF:點協調功能(point coordination function)

HCF:混合協調功能(hybrid coordination function)


載波監聽(carrier sensing)主要用來判斷媒介是否處於可用狀態。

802.11具備兩種載波監聽功能:物理載波監聽;虛擬載波監聽。只要其中一個監聽功能處於忙碌狀態,MAC就會將此狀況彙報給較高層協議。

物理載波監聽功能是由物理層所提供,取決於所使用的媒介與調製方式。

虛擬載波監聽功能是由網路分配向量(Network Allocation Vector,簡稱NAV)所提供。


四種幀間間隔,三種用來決定媒介的訪問:

短幀間間隔(Short interface space,簡稱SIFS)

PCF幀間間隔(PCF interface space,簡稱PIFS)

DCF幀間間隔(DCF interface space,簡稱DIFS)

擴充套件幀間間隔(Extended interface space,簡稱EIFS):只有在幀傳輸出現錯誤時才用到EIFS。


DCF中基於競爭的訪問
      802.11中大部分傳輸均採用DCF(Distributed Coordination Function,分散式協調功能),DCF提供了類似乙太網的標準競爭式服務。DCF允許多部獨立的工作站彼此互動,無須通過中央管控,因此可以運用於IBSS網路或基礎型網路。

基本規則:


      任何一部工作站試圖傳送任何資料之前,必須檢查介質是否處於閒置狀態。若它處於忙碌狀態,工作站必須延遲訪問並利用指數退避(exponential backoff)演算法來避免發生衝突。在所有使用DCF 的傳輸當中,將會運用到兩項基本原則:

1、如果介質閒置時間長於DIFS,便可立即進行傳輸。載波監聽同時可通過物理與虛擬(NAV)方式進行。
① 如果之前的幀接收無誤,介質至少必須空出一段DIFS時間。
② 如果之前的傳輸出現錯誤,介質至少必須空出一段EIFS時間。
2、如果介質處於忙碌狀態,工作站必須等候至頻道再度閒置。802.11稱之為訪問延期。一旦訪問延期,工作站會 等候介質閒置一段DIFS時間,同時準備指數型退避訪問程式。

在特定情況下,會用到額外的規則,其中有一些規則與之前傳送的結果有關。

1、錯誤恢復(error recovery)屬於傳送端的責任。傳送端預期每個幀均應收到應答資訊,而且必須負責重傳,直到傳送成功為止。
① 只有收到ACK,才表示傳送成功。
② 所有單點傳播(單播)資料必須得到應答,廣播資料不予以確認。(因此,即使無線電波鏈路本質上屬於廣播介質,相較於廣播資料,單播資料還是具備較高的服務質量。)
③ 只要傳送失敗,重傳計數器就會累計,然後重新加以傳送。傳送失敗有可能是因為訪問介質失敗,也可能是因為得不到應答。不論如何,重傳時會等待一段較長時間。

2、涉及多個幀的傳送,可以在傳輸過程的每個步驟更新NAV。當所收到的介質預定時間比目前的NAV 還長時,工作站即會更新NAV。設定NAV 的方式是以個別的幀為基準。

3、以下的幀型別可在SIFS 之後傳輸,因此優先程度較高:確認(acknowledgment)、RTS/CTS 交換程式中的CTS,以及分段序列中(fragment sequence)的幀片段。
① 一旦傳送出第一個幀,工作站就會取得頻道的控制權。以後幀及其迴應均可使用SIFS進行傳送,以鎖定頻道不被其他工作站使用。
② 傳送中,後續幀會將NAV 更新成該介質預計使用的時間。

4、如果較高層的包的大小超過所設定的閾值,則必須使用擴充套件幀序列(extended frame sequence)。

① 包的大小超過RTS閾值,必須使用RTS/CTS交換過程。
② 長度超過分段閾值,必須加以分段。

DCF與錯誤恢復:

      錯誤檢測與更正(error detection and correction)是由起始原子幀交換過程的工作站來決定。一旦檢測到錯誤,該工作站必須負責重傳。錯誤檢測必須由傳送端負責。有時候傳送端可根據ACK的有無,推論幀是否已經漏失。只要幀被重傳,重傳計數器(retry counter)就會累加。

      每個幀或幀片段會分別對應到一個重傳計數器。工作站本身具有兩個重傳計數器:短幀重傳計數器與長幀重傳計數器。長度小於RTS門檻值的幀視為短幀;長度超過該門檻值的資料則為長幀。根據幀的長度,將會分別對應到長短幀重傳計數器。幀重傳計數由0 算起,只要幀傳送失敗即加以累計。

短幀重傳計數器會在下列情況發生時歸零:

  • 之前傳送的RTS得到CTS的應答時
  • 之前傳送的未分段幀得到MAC 層的應答時
  • 收到廣播或組播的幀時
長幀重傳計數器會在下列情況發生時歸零:
  • 之前傳送的幀大於RTS門限值,並且得到MAC層的應答時
  • 收到廣播或組播的幀時
      除了相應的重傳計數器,MAC會賦予每個幀片段最長的存活期(lifetime)。傳送出第一個幀片段之後,生存時間計數器(lifetime counter)隨即啟動。一旦超過存活時間,該幀便會被丟棄,因此不會重傳其餘的幀片段(應該是重頭開始再傳這一系列的幀)。當然,上層協議也可能監聽到資料漏失予以重傳。不過當上層協議(如TCP)重傳資料,實際上傳給802.11MAC 的是新的幀,所有重傳計數器也會歸零重新計算。

      和大部分其他的網路協議一樣,802.11是通過重傳機制來提供可靠性。資料傳送必須是整個原子過程完成才算成功。若傳送失敗,則 與該幀或幀片段相應的重傳計數器累加。如果 達到重傳限制,該幀隨即被丟棄,並將此狀況告知上層協議。

      之所以要有短幀和長幀,其中一個原因是為了讓網路管理人員利用不同長度的幀來調整網路的穩定性。長幀需要較多的快取空間,所以兩種不同重傳限制的一個潛在應用,就是放寬長幀的重傳限制,以減少所需要的快取空間。

DCF的退避演算法

      當前面的幀傳送完成並且經過一段DIFS 時間,工作站便會試圖傳送之前擁塞的資料。DIFS之後所緊接的一段時間,稱為競爭視窗(contention window)或退避視窗(backoff window)。此視窗(window)可進一步分割為時隙(slot)。時隙長度因介質而異。速度較高的物理層會使用較短的時隙。工作站會隨機挑選某個時隙,等候該時隙到來以便訪問介質。所有時隙的選擇機會均等。當多部工作站同時試圖傳送資料,挑到第一個時隙(亦即取得最小隨機號碼)的工作站可以優先傳送。

      如同乙太網,每當傳輸失敗時,便會從一個範圍中挑選出退避時間(backoff time)。每次不成功傳輸,都會使得CW呈指數型增長:通常是2的指數倍數減1(例如31,63,127,255),逐個遞增下去,


上圖以DSSS物理層為列,顯示當傳送次數增加,競爭期間(視窗)隨之增長的情況(因為需要重傳,所以原則上認為會更加擁擠,所以競爭視窗適當調大以適應更多的幀)。不同物理層會使用不同大小的退避時間,不過原則是相同的。競爭期間的大小通常是2 的指數倍數減1(例如31,63,127,255)。每當 重傳計數器累增,競爭期間即以移至下一個2 的指數倍數。競爭期間的大小受到物理層的限制。例如,DS 物理層限制競爭期間最多1023 個傳輸時隙。

      當競爭期間達到最大極限時,就會維持在該數字,直到被重新設定。允許使用較長的競爭期間,可以在多部工作站同時試圖訪問介質時,保持MAC 驗演算法的穩定,即使負載極大。當幀傳送成功,競爭期間即被重設為最小值,如果到達重傳計數器上限,該幀則隨即被丟棄。

幀的分段與重組

幀分段可以提高整體的有效吞吐量。

網路管理人員所設定的分段閾值時,就會進行幀的分段。每個幀分段都有相同的幀序號以及一個遞增幀片段編號以便於重組。

幀控制資訊用來指示是否還有其他幀片段待收。

構成整個幀的所有幀片段通常會在所謂的片段突發期(fragmentation burst)傳送。


幀格式


這裡不做詳細介紹了。

(1)Frame Control 欄位


(2)Duration / ID欄位


(3)Address欄位

(4)Sequence Control 欄位(用來重組幀片段以及丟棄重複幀)


(5)Frame Body 欄位

(6)FCS欄位(幀校驗序列,frame check sequence)(迴圈冗餘校驗碼:cyclic redundancy check,CRC)

802.11對上層協議的封裝


廣播與組播資料或管理幀

廣播與組播幀的交換過程最為簡單,因為這些幀無須應答。這兩種幀也可以視為群組幀,

因為其接收物件不限於單一工作站。幀封裝(framing )與定位(addressing )在 802.11中較為複雜,適用此規則的幀型別如下所示:

  • 廣播資料幀會在 Address1位中填入廣播地址
  • 組播資料幀會在 Address1位中填入組播地址
  • 廣播管理幀會在 Address1位中填入廣播地址(Beacon、Probe Request 以及IBSS ATIM幀)

組播幀無法加以分段,也無須得到應答。整個基本交換過程只牽涉到一個幀,根據競爭式訪問控制規則加以傳遞。傳送結束後,所有工作站必須等待一段 DIFS時間,然後在競爭期間倒數隨機產生的延遲時間。

因為幀的交換過程只牽涉到一個幀,所以將 NAV(網路分配向量)設定為 0。既然此後已無其他幀,也就不必使用虛擬載波監聽鎖住介質,來防止其他工作站的訪問。傳送該幀之後,所有工作站均會等候一段 DIFS時間,然後通過競爭期間開始為任何遭延遲的幀進行倒數。整個交換過程,詳見圖 1-14 。


單播幀

幀的處理與橋接

無線接入點的核心其實就是橋接器,負責在無線與有線媒介之間轉換幀。


無線媒介至有線媒介(802.11 至 Ethernet)

當接入點的無線介面接收到準備傳送至有線網路的幀,接入點就必須在兩種介質間橋送幀。非正式來講,以下是接入點必須進行的一系列工作:

1.  當接入點接收到一個幀,首先會檢測該幀基本上是否完整。接下來,接入點會針對所使用的物理層,檢視物理層標頭,然後驗證802.11幀上的幀檢驗碼。

2.  驗證幀接收無誤後,接入點就會繼續檢視是否應該進一步處理該幀。

    a.  傳送至接入點的幀,會將接入點的 MAC 地址(即 BSSID)擺在 802.11 MAC 標頭的 Address 1 位。不符該接入點 BSSID 的幀應予以丟棄。(有些產品並未實現此步驟。)
    b.  802.11 MAC 接著監測且移出重複的幀。產生重複幀的原因很多,不過最常見的情況是 802.11 應答資訊在傳送過程中丟失或有所損毀。為了簡化上層協議的工作,因此由 802.11 MAC 負責剔除重複的幀。

3.  一旦接入點判定需要進一步處理該幀,就必須予以解密,因為該幀會受到鏈路層安全演算法的保護。

4.  成功解密之後,接入點即檢視該幀是否為幀片段,需要進一步重組。完整性保護(integrity protection)針對重組後完整幀,而不是個別的幀片段。

5.  如果經過步驟2a的BSSID檢驗,判定接入點必須橋送該幀,較複雜的802.11 MAC 標頭就會被轉換為較簡單的乙太網 MAC 標頭。

    a.  記錄在 802.11 MAC 標頭之 Address 3 位裡的目的地址,會被複制到乙太網的目的地址。
    b.  記錄在 802.11 MAC 標頭之 Address 2 位裡的源地址,會被複制到乙太網的源地址。

    c.  從 802.11 Data 位裡的 SNAP 標頭,將(Type)型別程式碼複製到乙太網幀裡的 Type 位。如果該乙太網幀亦使用 SNAP,就複製整個 SNAP 標頭。
    d.  順序資訊主要供幀片段重組之用,不過當幀被橋送之後即予以丟棄。

    e.  如果有標準的服務質量處理程式,即在此進行無線與有線的 Qos 對應。不過到目前為止,用來表示服務質量的形式,通常就是在有線幀中使用 802.1p優先性等級 bit,或者其他的控制形式。

6.  重新計算幀檢驗碼。乙太網與802.11使用相同的演算法來計算FCS ,不過802.11幀多出一些位,同時為FCS 所保護。

7.  所產生的新幀交付乙太網介面傳送。

有線媒介至無線媒介(Ethernet 至 802.11)

將幀從接入點有線端橋接至無線介質的過程剛好相反:

1.  驗證乙太網 FCS 後,接入點首先會檢視是否需要進一步處理所接收到的幀,亦即檢視該幀的目的地址是否屬於目前與接入點連線的工作站。

2.  將SNAP 標頭附加於乙太網幀的資料之前。上層封包是以SNAP 標頭進行封裝,而其Type位是自乙太網幀裡的型別程式碼複製而來。如果該乙太網幀亦使用SNAP ,則複製整個SNAP 標頭。

3.  對幀的傳送進行排程。802.11包含複雜的省電過程,將幀置於傳送序列之前,接入點可能會將幀暫存於快取區。

4.  一旦幀被置於序列待傳,就會被賦予一個順序編號。如有必要,所產生的資料可以用完整性檢驗值加以保護。如果幀需要分段,則會根據事先設定好的分段門限進行分段。分段幀時,將會在Sequence Control 位指定片段編號。

5.  如果幀需要保護,則對幀(或每個幀片段)的本體加密。

6. 802.11 MAC 標頭是根據乙太網 MAC 標頭產生。
      a.  將乙太網 的目的地址複製到 802.11 MAC標頭的 Address 1 位。
      b.  將 BSSID 置於 MAC 標頭的 Address 2,以做為無線介質上之幀的傳送者。
      c.  將幀的源地址複製到 MAC 標頭的 Address 3 位。
      d.  將其他位填入 802.11 MAC 標頭。也就是把預計傳送時間填入 Duration 位,並把適當的旗標填入 Frame Control 位。

7.  重新計算幀檢驗碼。乙太網與802.11使用相同的演算法來計算FCS ,不過802.11幀多出一些位,同時為FCS 所保護。

8.  所產生的新幀交付802.11介面傳送。

服務質量延伸功能

服務質量延伸功能會影響幀的傳輸順序,但並不會改變幀行徑 802.11 MAC 的基本路徑。

802.11e 服務質量延伸功能並非只使用單一傳輸序列,而是在上述有線至無線橋接程式中的第 4、5 、7 步驟採用多組傳輸序列。這些步驟會根據優先次序進行幀處理;而優先次序取決於幀的內容以及配置設定中預先指定的優先性分級規則。

相關推薦

802.11無線網路權威——MAC基礎

MAC位於各式物理層之上,控制資料的傳輸。它負責核心成幀操作(core framing operation)以及與有線骨幹網路之間的互動。 802.11採用載波監聽多路訪問 / 衝突避免(carrier sense multiple access with collis

802.11無線網路學習802.11 MAC基礎

1. 無線媒介控制   同乙太網一樣,802.11使用載波監聽多路訪問(CSMA)機制來控制對傳輸媒介的訪問;但802.11使用衝突避免(CSMA/CA),而乙太網使用衝突檢測(CSMA/CD)。 2. 隱藏節點   為了避免隱藏節點引起的衝突,採用R

802.11無線網路802.11無線網路權威指南讀書筆記

摘自802.11無線網路權威指南 station:工作站,配備無線網絡卡的移動裝置   BSS:Basic Service Set 工作站在邏輯上被劃歸為基本服務集     IBSS:independent BSS  如果沒有接入點參與其中,該網路即是較為鬆散,

802.11無線網路學習802.11 網路概論

1. 縮寫 MAC(Media Access Control) —— 媒介訪問控制 LLC(Logical Link Control) —— 邏輯鏈路控制層 PHY(Physical) —— 物理層 FHSS(Frequency Hopping Spread

EF6 在原有數據庫中使用 CodeFirst 總復習重建遷移

圖片 com 類型 無需 first www 更新失敗 bsp 頁面 本來原來學的時候,挺順利的,沒想到再次使用,還是遇到很多問題,導致更新失敗,所以,只能重建遷移,免得看著亂亂的。 一、刪除遷移,將數據恢復到(一)結束狀態 1、刪除文件夾 2、刪除表

2018秋招面試問題C++基礎問題

注:面試過程中整理的學習資料,如有侵權聯絡我即刻刪除。 目錄 C++中expicit的用法 explicit用來修飾類的建構函式(用在類內部的建構函式的宣告上),被修飾的建構函式的類,不能發生隱式型別轉換,

走遍美國——文化1

前言     第三次看舊美視訊了。從最開始對它的一片茫然,看不明白劇中人物之間到底是什麼關係;到後來逐漸明白,哦,原來他們是一家人,試圖聽清每一個人物對話,理解每一個生活場景;到現在逐漸喜歡,喜歡這一家人的生活狀態。這次看,透過視訊,更多的是讓我看到了他們

C# Winform 窗體美化不規則窗體

三、不規則窗體 概況 之前學習的 LayeredSkin 看到裡面有個異形視窗,比較感興趣,所以就找一下資料研究一下。不規則窗體學習有一個比較好的例子,叫 GoldFishProject,是一條魚金魚在螢幕上游。 現學習了兩種實現方式: 1. U

Chrome開發者工具不完全指南:效能篇

<!DOCTYPE html> <html> <head> <title></title> <style type="text/css"> div{ height: 20px; widows: 20p

Cordova熱更新版本控制

需求:1,由於app稽核的限制,app稽核狀態和釋出上線狀態展示內容有區別2,各大應用市場稽核狀態不一致,有的在稽核,有的稽核失敗了,有的稽核通過了,所以各大應用市場的app版本是不一樣的,如果不同版本的app裡面的內容發生bug又如何解決所以這就需要一個釋出的版本控制了。這

學習linux-0.11核心——搭建環境編譯除錯bootsec

前言 本博文是本專欄博文的起點,通過本文的學習,通過qemu虛擬機器將linux-0.11核心跑起來,有了這個可以跑的核心,在有疑問的地方,我們就可以通過除錯的方式來學習核心。 編譯核心 獲取核心程式碼 git clone https://github.com/

TensorFlow中對訓練後的神經網路引數權重偏置提取

        基於TensorFlow可以輕而易舉搭建一個神經網路,而且很好地支援GPU加速訓練。但基於TensorFlow的預測過程,往往需要在嵌入式裝置上才能得以應用。對於我目前做的工作而言,用TF搭建神經網路以及用GPU加速訓練過程的主要用處就是:獲取訓練後的引數(

機器學習中的那些樹——決策樹CART 樹

前言 距上篇文章已經過了9個月 orz。。趁著期末複習,把部落格補一補。。 在前面的文章中介紹了決策樹的 ID3,C4.5 演算法。我們知道了 ID3 演算法是基於各節點的資訊增益的大小 \(\operatorname{Gain}(D, a)=\operatorname{Ent}(D)-\sum_{v} \f

以太坊原始碼分析之 P2P網路UDP底層通訊

區塊鏈特輯 :https://blog.csdn.net/fusan2004/article/details/80879343,歡迎查閱,原創作品,轉載請標明!這周工作有點小忙,部門區塊鏈基礎平臺的開發開始進入節奏了,和上一篇間隔間隔有點久了,以後還是要堅持,不能剛開始就犯毛

無線資訊傳遞——Generic Netlink初始化

系列說明   上一篇說明了無線資訊的user space至kernel space的大致傳遞流程,這一主要針對以下3點進行一個順序的描述: 1、無線驅動資訊傳遞框架:說明無線資訊傳遞的步驟流程以及各程式塊之間的聯絡; 2、generic Netlink訊號

PostScript語言教程繪圖

true sep lineto 我們 move tor 正方 script div 3.1、畫線 線 newpath 144 72 moveto 144 432 lineto stroke showpage 我們首先調用newpath,初始化當畫筆狀態。 x y m

JavaScriptDOM文檔對象模型

文檔 mod 允許 ima ges 所有 以及 修改 聯盟 一、什麽是DOM DOM 是 Document Object Model(文檔對象模型)的縮寫。 DOM 是 W3C(萬維網聯盟)的標準。 DOM 定義了訪問 HTML 和 XML 文檔的標準: “W3C 文檔對象

JavaScript學習總結函數聲明和表達式this閉包和引用arguments對象函數間傳遞參數

rem [1] incr foo i++ scrip erro ren 推薦 一、函數聲明和表達式 函數聲明: function test() {}; test(); //運行正常 function test() {}; 函數表達式: var test = fun

Java基礎工具1_常用類——用戶和程序交互

size 數據 輸入 方法 main方法 main scanner類 style 輸入數據 2018-05-12 用戶和程序交互 程序接受用戶的輸入數據,有以下三種方式 一、main方法接受參數 二、Console 三、Scanner類 三、Java基

Java基礎工具1_常用類——數學相關類

ref .com 工具 www 小數 spa -- 指數 target 2018-05-13 數學相關類 一、Math類    Java 的 Math 包含了用於執行基本數學運算的屬性和方法,如初等指數、對數、平方根和三角函數。   Math 的方法都被定義為 s