MAC位于各式實體層之上,控制資料的傳輸。它負責核心成幀操作(core framing operation)以及與有線骨幹網絡之間的互動。
- 802.11采用載波監聽多路通路 / 沖突避免(carrier sense multiple access with collisions avoided,簡稱CSMA/CA)機制。
- 802.11采用肯定确認(positive acknowledgment)機制。所有送出去的幀都必須得到響應。(下圖所列步驟是原子操作。)
802.11無線網絡權威——(三、MAC基礎)
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 步驟采用多組傳輸序列。這些步驟會根據優先次序進行幀處理;而優先次序取決于幀的内容以及配置設定中預先指定的優先性分級規則。