MAC(媒介訪問控制層)位于各式物理層之上,控制資料的傳輸,它負責核心成幀操作以及與有線骨干網路之間的互動,
802.11采用載波監聽多路訪問/沖突避免(CSMA/CA)機制來控制對傳輸媒介的訪問,
802.11與Ethernet之間的主要差異在于所使用的底層媒介不同,無線網路環境與傳統有線網路環境的差異性為網路協議設計人員帶來了種種挑戰,
MAC所面臨的挑戰
- 射頻鏈路品質
無線信號的傳輸會受到微波爐及其他射頻(RF)來源的影響,多徑衰落(multipath fading)所造成的布線死區(dead spot)也可能導致幀無法傳送,
802.11采用肯定確認(positive acknowledgment)機制,所有傳送出去的幀都必須得到相應,如下圖所示,

無線鏈路的質量也會影響網路操作的速度,信號質量較佳,就可以用較高的速度來傳送資料,作業站必須具備某種機制,可以判斷何時該變更資料傳輸速率以適應環境的改變,
- 隱藏節點的問題
無線網路的界限比較模糊,有時候并不是每個節點都可以跟其他節點通信,如下圖所示,

節點1和節點3互為隱藏節點,如果使用簡單的傳輸祈求(transmit-and-pray)協議,節點1和節點3可能在同一時間傳送資料,這會造成節點2無從相應資料,而且,節點1和節點3無從得知發生了錯誤,因為只有節點2才知道有沖突發生,
為了防止沖突發生,802.11允許作業站使用Request to Send(請求發送,簡稱RTS)及Clear to Send(清除發送,簡稱CTS)信號來清空傳送區域,如下圖所示,

RTS幀本身帶有兩個目的:預約無線鏈路的使用權與要求接收到這一幀的其他作業站保持沉默,一旦受到RTS幀,接收端會以CTS幀應答,CTS幀也會令附近的作業站保持沉默,RTS/CTS通常用在高用量的環境下以及傳輸競爭比較顯著的場合,
MAC訪問模式與時機
無線媒介的訪問是由協調(coordination function)功能控制,
-
DCF(distributed coordination function,分布式協調功能)
在傳送資料之前,先檢查無線鏈路是否處于清空狀態,為了避免沖突的發生,當某個傳送者占據信道時,,作業站會隨機為每個幀選定一段退避(backoff)時間,在某些情況下,DCF可利用CTS/RTS清空技術進一步減少發生沖突的可能性, -
PCF(point coordination function,點協調功能)
點協調者位于接入點,可以確保作業站不必通過競爭即可使用媒介,PCF在實作上并不常見, -
HCF(hybrid coordination function,混合協調功能)
HCF允許作業站維護多組服務佇列,針對需要更高服務質量的應用提供更多的無線媒介訪問機會,
載波監聽功能與網路分配矢量
載波監聽(carrier sensing)主要用來判斷媒介是否處于可用狀態,802.11具備兩種載波監聽功能:物理載波監聽(physical carrier-sensing)與虛擬載波監聽(virtual carrier-sensing),只要其中有一個監聽功能顯示媒介處于忙碌狀態,MAC就會將此狀況匯報給較高層的協議,物理載波監聽功能是由物理層所提供,取決于所使用的媒介與調制方式;虛擬載波監聽是由網路分配矢量(Network Allocation Vector, NAV)提供,802.11的幀通常會包含一個Durition欄位,用來預定一段媒介時間,NAV是一個定時器,用來指定要占用媒介多少時間,以微秒為單位,下圖說明了NAV如何保障整個程序不受干擾,

幀間間隔
802.11會用到四種不同的幀間間隔,其中三種用來決定媒介的訪問,
- 短幀間間隔(Short interframe space, SIFS)
SIFS用于高優先級的傳輸場合 - PCF幀間間隔(PCF interframe space,PIFS)
PIFS主要被PCF使用在無競爭操作中 - DCF幀間間隔(DCF interframe space,DIFS)
DIFS是競爭式服務中最短的媒介空閑時間,如果媒介空閑時間長于DIFS,則作業站可以立即對媒介進行訪問 - 擴張幀間間隔(Extended interframe space,EIFS)
只有在幀傳輸出現錯誤時才會用到EIFS,EIFS并非固定的時間間隔

幀的分段與重組
來自較上層的封包以及某些較大型的管理幀可能必須經過分段,無線信道才有辦法加以傳送,當干擾存在時,利用幀的分段,無線局域網作業站可讓干擾只影響較小的幀片段,每個幀片段都有相同的幀序號以及一個遞增的幀片段編號以便于重組,

上圖RTS與CTS會將NAV設定成從預定時間到第一個幀片段結束,每個幀片段都會設定NAV,繼續掌握媒介的控制全,直到下一個幀的確認結束,
幀格式
為迎接無線資料鏈路所帶來的挑戰,802.11 MAC幀格式的制定經過了深思熟慮的考量,下圖展示了一般的802.11 MAC幀,欄位的傳輸順序從左至右,最高有效位將在最后出現,

Frame Control欄位
所有幀的開頭均是長為兩個位元組的Frame Control欄位,如下圖所示,

- Protocol欄位
顯示幀所使用的MAC版本,目前802.11 MAC只有一個版本,它的協議編號為0 - Type與Subtype欄位
Type與Subtype欄位用來指定使用的幀型別 - To DS與From DS位
指示幀的目的地是否為分布式系統 - More fragments位
若較上層的封包經過MAC分段處理,除了最后一個片段,其他片段均會將此位設定為1 - Retry位
任何重傳的幀都會將此位設定為1以協助接收端剔除重復的幀 - Power management位
此位用來支持發送端在完成當前的原子幀交換之后是否進入省電模式 - More data位
接入點如果設定此位,即代表至少有一個幀待傳給休眠中的作業站 - Protected Frame位
如果幀受到鏈路層安全協議的保護,則此位會被設定為1 - Order位
若幀按照嚴格依次傳送,則此位會被設定為1
Duration/ID欄位
Duration/ID欄位有三種可能的形式,如下圖所示,

- 設定NAV
當第15位被設定為0時,Durition/ID欄位就會被用來設定NAV - 無競爭周期所傳送的幀
在無競爭周期,該欄位只有第15位為1,其余位為0,Duration/ID欄位的值為32768,這個數值被解讀位NAV,所以其他作業站就將自己的NAV定時器設定為32768,當前作業站就可以實作無競爭傳輸?我是這么理解的 - PS-Poll幀
在PS-Poll(省電-輪詢)幀中,第14位和15位會被同時設定為1,其余位表示關聯識別符號(association ID,AID),以顯示作業站隸屬的BSS,為確保不遺漏任何幀,從休眠狀態醒來的作業站必須送出一個PS-Poll幀,以便從接入點取得之前快取的任何幀,
Address欄位
隨著幀型別的不同,地址欄位的作用也不同,大部分資料幀會用到3個欄位,Address 1代表接收端、Address 2代表發送端、Address 3代表接入點的BSSID,
順序控制(Sequence Control)欄位
該欄位長度為16位,由4位的片段編號(fragment number)欄位以及12位的順序編號(sequence number)欄位組成,用來重組幀片段以及丟棄重復幀,

幀主體
幀校驗序列(FCS)
802.11對上層協議的封裝

多種速率支持
802.11支持收發端協商出一種彼此均可接受的資料傳送速率,作業站可以經常變換速度,以適應無線電波環境的變化,
幀的處理與橋接

轉載請註明出處,本文鏈接:https://www.uj5u.com/houduan/49373.html
標籤:C
上一篇:回爐重造之重讀Windows核心編程-001-錯誤處理
下一篇:一套很有意思的C語言測驗題目
