日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

DCF机制详解

發布時間:2025/4/5 编程问答 39 豆豆
生活随笔 收集整理的這篇文章主要介紹了 DCF机制详解 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

綜述

802.11中規定了兩類媒體訪問控制機制,PCF(點協調功能)和DCF(分布協調功能)。DCF是基于競爭機制,提供分布式接入,多個分布式無線節點搶同一資源,PCF使用無競爭模式,提供有中心控制的輪詢式接入,所有的帶寬分配(傳輸時間片)都由一個全局的Point控制。PCF是以DCF作為基礎擴展的,802.11中PCF與DCF可以兼容工作。在PCF模式中,兩者的兼容實際上是基于一種交替工作的機制,即PCF和DCF各占據一段時間,交替進行工作。該交替周期即是CFP重復周期(CFP repetition interval),在該周期內,包含CFP和CP兩個部分。?

這篇文章主要介紹DCF機制,DCF機制是基于CSMA/CS載波偵聽沖突避免的多址接入協議。利用載波偵聽和沖突避免技術來防止單一共享信道的沖突,同時通過四次握手機制完成分布式數據業務的信道接入,基本解決暴露終端和隱藏終端的問題。?
DCF主要包含四個核心機制:?
1.載波偵聽機制?
2.幀間間隔機制?
3.隨機退避機制?
4.基于 RTS/CTS 的四次握手機制

1.載波偵聽機制

載波偵聽機制分為物理載波偵聽和虛擬載波偵聽,任意一個指標指示信道繁忙,則信道繁忙。

1.1物理載波偵聽機制

物理層相關背景:?

1.1.1 CCA概述

物理載波監聽采用三種信道空閑檢測方式,能量檢測、載波檢測和能量載波混合檢測,統稱為CCA。CCA工作模式由PHY MIB的屬性:dot11CCAModeSupported來指出。

1.?能量檢測(ED):對接收信號的能量大小進行判斷,當接收的功率大于物理層規定的閾值ED_threshold時,就認為信道被占用。?
2.?載波檢測(CS)?: 檢測信道中是否存在高速PHY信號,PMD層將會識別該信號的preamble部分,展開運算得出SQ值衡量信號質量,如果信號質量超過設定閾值,認為信道存在PHY高速信號,信道被占用。其中,802.11中的preamble部分采用特定的序列所構造,該序列對于發送方和接收方都是已知的,其用來做幀同步以及符號同步。在實際監聽過程中,節點會不斷采樣信道信號,用其做自相關或者互相關運算,其中自相關在基于OFDM的802.11技術中常用,比如802.11a,而互相關在基于DSSS技術中常用,比如802.11b。?
在直接序列擴頻DSSS技術的物理層中,PMD層對接收信號與本地的偽隨機碼(PN碼)進行運算比較,如果其值超過某一極限,就認為信道被占用。?
3.?能量和載波混合檢測(ED & CS)?
在802.11中根據具體物理層使用的技術來決定檢測技術的采用。DSSS技術結合了能量檢測和載波檢測,而FHSS則僅采用載波檢測技術?;旌蠙z測中,任意一種被檢測到超限,就認為信道正在被占用。

1.1.2 CCA實現過程

1.802.11能量檢測實現過程?
當物理層接收到信號,它首先對該信號的能量展開歸一化處理,得到RSSI(Received Signal Strength Indicator)是接收信號的強度指示。并在PMD層生成原語PMD_RSSI.indicate將RSSI提供給PLCP層,PLCP再把RSSI傳遞給MAC層。PLCP層通過原語PMD_RSSI.request將閾值ED_THRESHOLD傳遞給PMD層,其中,閾值是從MIB中獲得。若RSSI的值超過閾值,則PMD層將原語PMD_ED.indicate的參數設置為enable通知PLCP層中,則PLCP層原語PHY_CCA.indication(STATE)的中的參數值值則為BUSY,通知MAC層信道繁忙。?
2.802.11載波檢測實現過程?
CCA啟動一個3.65ms長的定時器,在該定時范圍內,如果檢測到高速PHY信號,就認為信道忙。如果定時結束仍未檢測到高速PHY信號,就認為信道空閑。3.65ms是一個5.5Mbps速率的PSDU數據幀可能持續的最長時間。?
簡單的說,當物理層接收到信號,根據preamble部分得出SQ信號質量,在PMD層生成原語PMD_SQ.indicate(SQ)來通知PLCP層,實時更新參數SQ的值。當SQ的值超過了閾值參數CS_THRESHOLD,PMD層向PLCP層發送原語PMD_CS.indicate(enable),通知PLCP層信道檢測到PHY高速信號,正在解析該數據包,信道被占用。?
備注:?
RSSI:RSSI是接收到的射頻能量的測量值(但不是能量的本身值)。RSSI值范圍0~255,RSSI值隨PHY Preamble部分的能量單調遞增。因此RSSI值可以只選取PHY Preamble(前導碼)的測量就行了。?
PMD_RSSI.indicate:該可選的原語可由PMD產生,用于向PLCP提供接收到的信號強度。該原語有一個參數:RSSI,它是高速PHY接收的射頻能量的測量值,長度為0-8bit。RSSI和SQ作為CCA機制的部分一起協同使用。

1.2虛擬載波偵聽機制

虛擬載波偵聽機制由MAC提供, 802.11標準使用網絡分配向量NAV實現虛擬偵聽。MAC幀中的Dur/ID字段中存放著的“持續時間”,對接收到的信息判斷信道將被占用的時間,確定自身的發送需要延遲的時間。?
NAV可以理解為一個Timer定時器用來定義當前鏈路還需要被占用多久,開始值是最后一次接收到的幀的持續時間,倒計時至0結束。每一個監聽的Sta都使用該NAV定時器,數據通信時,占領信道的Sta會通過幀中的duration字段來告知其他Sta我還需要用多久,而未獲取信道資源的Sta通過對比收到包中的duration值來更新自身NAV的值。?
更新條件?
1、只有收到包的duration值大于本身的NAV timer才被更新;?
2、該幀并非發往本工作站,即該更新NAV的站點是偵聽棧。?
*當NAV值為0,且物理載波監聽表明信道空閑時,才認為當前鏈路為空閑狀態。?
?
上圖標出了三類距離范圍:傳輸范圍、載波偵聽范圍、載波監聽帶?
?
針對不同的距離范圍,節點更新自身NAV的值也不同,傳輸范圍內的節點可以接收CTS并且正確解析其中的duration,據此更新NAV;載波監聽帶內的節點可以接收CTS但不能正確解析其中的duration,此時節點采用延時EIFS的策略。

2.幀間間隔機制

提供訪問媒介的不同優先級?
SIFS 短幀間隔 < PIFS PCF幀間隔 < DIFS DCF幀間隔 < EIFS 擴展幀間隔

2.1slot time

時隙是指一個時間片段,在CSMA/CA中,節點競爭接入信道之前需要經過相應的隨機回退(backoff)過程,其中backoff過程就是由很多個時隙所組成的。

A Slot Time= a CCA Time(CCA時間)+a Rx/Tx turnaround Time(發送接收天線轉換時間)+a Air Propagation Time(傳播延遲)+a MAC Processing Delay(MAC層處理延遲)?

2.2 SIFS, Short Interframe Space(SIFS)

在802.11系列無線局域網中SIFS是固定值,SIFS是最小的幀間 間隔,因此采用SIFS的節點具有訪問無線鏈路的最高優先級。它等于節點從發送狀態切換到接收狀態并能正確解碼所需要的時間,或者從接收狀態轉為發送狀態所需要的時間,在SIFS過期后可能發送的數據包包括ACK、CTS幀,不同標準中規定的SIFS值不同。

A SIFS Time= a RXRF Delay(射頻延遲)+a RXPLCP Delay(物理層頭部接收延遲)+a MAC Processing Delay(MAC層處理延遲) + a RxTx Turnaround Time(發送接收天線轉換時間)?

2.3DIFS, DCF Interframe Space(DIFS)

在DCF協議中,節點在開始發送數據之前需要監測信道是否空閑。如果信道已經空閑,則節點仍需等待DIFS段時間才開始發送數據;而如果在DIFS時間段內任一時刻信道被監測為忙,則節點不得不推遲它的數據發送。DIFS和SIFS間的計算關系如下:

DIFS = SIFS + (2 * Slot time)
  • 1
  • 2

2.4PIFS, PCF Interframe Space(PIFS)

PCF使得AP等待PIFS而不是DIFS時間以訪問信道,由于DIFS > PIFS > SIFS,因此AP總比普通節點具有更高的訪問信道的優先級。

PIFS = SIFS + Slot time
  • 1
  • 2

?
####2.5 EIFS, Extended Interframe Space(EIFS)?
在前一幀出錯的情況下,發送節點不得不延遲EIFS而不是DIFS時間段后再發送下一幀。

EIFS = Transmission time of Ack frame at lowest basic rate(1Mb/s) + SIFS + DIFS
  • 1
  • 2

####2.6DSSS 物理層特征?
此處附上DSSS 物理層特征,通過PLME-CHARACTERISTICS原語提供,在初始化的時候,原語生成,為層管理實體提供物理層特性參數。IEEE 802.11中定義的DSSS 物理層的特征見下表:?

隨機退避機制以及基于 RTS/CTS 的四次握手機制寫在下一篇介紹中,文章篇幅太長看得難受。


3.隨機退避機制

802.11中采用二進制指數退避法解決節點發送失敗或者發生沖突時需要退避的時間。?
下圖是基本接入機制:?
?
當MAC層有幀需要發送,在物理載波偵聽虛擬載波偵聽都表示信道空閑之后,若退避窗口的計數值不為0,則繼續一slot time為單位減少計數值,否則隨機生成一個退避窗口進行退避。

此時,節點在競爭窗口中選擇一個隨機數為基準的隨機回退計數值,退避時間選定后,就相當于設置了一個退避計時器(backoff timer)。站點在slot time內持續監聽信道。這可能發生兩種情況:?
若檢測到信道空閑,退避計時器就繼續倒計減一;?
若檢測到信道忙,就凍結退避計時器的剩余時間,重新等待信道變為空閑并再經過時間DIFS后,從剩余時間開始繼續倒計時。退避計時器的時間減小到零時,就開始發送整個數據幀。

Back off Time=Random ( )* a Slot Time
  • 1
  • 2

其中,Random()是均勻分布在[0,CW]范圍內的隨機整數,CW就是contention window競爭窗口?
競爭窗口的值是一個介于物理特征值最小競爭窗口CWmin與最大競爭窗口CWmax之間的參數值,用來讓節點選擇隨機回退計數值(backoff counter)的范圍。

aCWmin <= CW <= aCWmax
  • 1
  • 2

不同的物理層技術有相應的物理特征值,下圖為DSSS物理層的數據標準?

下圖為競爭窗口增長圖

?
a.初始時CW=CWmin,則Backoff time為[0,CWmin]中的隨機值乘上SlotTime,并使用該Backoff Time進行競爭;?
b.若Backoff Time到0時報文仍未發送成功(發送失敗或者發生沖突(另有節點的退避值同樣等于0)),則CW值翻倍,并重新計算Backoff Time.?
c.?以此類推,若發送不成功則CW值繼續指數增長(x2),待CW=CWmax后,一直保持CW=CWmax,只有等到重傳次數到達極限后(分為短包/長包重傳最大次數,分別計數),丟棄此包并復位CW為CWmin;若報文發送成功,則CW初始為CWmin。?
短包/長包重傳最大次數會在下面重傳部分詳講。

下圖是退避實例過程:?
?
從上圖我們可以看出,A在發送成功以后,自行進入退避進程,不論它的后續有無幀需要發送,都要進入退避。當信道空閑DIFS時長后,其余各節點的退避計時器都開始以slot time為單位減少計時器的計數值。C的退避計時器最早到達0,則開始發送幀,而其余節點掛起退避計時器,等待下一次信道空閑。

4.RTS/CTS機制

802.11中可以選擇使用或者不適用RTS/CTS機制來預約信道。在802.11中,并不是每次的數據幀、管理幀的傳輸過程都要借助RTS/CTS來預約信道,多余的RTS/CTS會導致效率降低,該機制并不是總是有效,尤其對于短數據幀(可能是短幀的發送成功率高,沖突可能性低吧)。廣播和多目標傳輸不能使用RTS機制,因為其會引起多個目標地址進行CTS應答。?
只有當定向幀的MPDU或者MMPDU的長度超過了屬性值dot11RTSThreshold后STA才在幀交換前使用RTS/CTS交換。

屬性dot11RTSThreshold是MIB的一個管理項目,它的值被MAC的LME(層管理實體)讀和寫。如果該值為0則表示所有的MPDU在傳送前都使用RTS/CTS,dot11RTSThreshold的默認值是2347比特,默所有的MPDU在傳送前都不需要RTS/CTS。這個值可以通過本地或者外地管理器修改。?
STA設置了不發起RTS/CTS之后,仍然可以接收RTS和CTS,執行虛擬載波監聽機制。同時可以對發送到該節點的RTS進行應答。

以下探討采用RTS/CTS機制的原理及實現:?
由于兩個節點的發送范圍無法互相覆蓋,從而兩者在發送數據時,是無法通過物理監聽的方法,探測對方是否有發送數據。如果沒有更多的措施,STA 1和STA 2一直會誤認為信道空閑,從而不斷倒數,當計時器到0時,則發送數據,如下圖(圖為引用802.11協議精讀2:DCF與CSMA/CA):?
?
隱藏終端的情況下,網絡性能最差時是無法傳遞數據包的,換言之,STA 1與STA 2的吞吐量都趨近于0。?
DCF中,引入了RTS/CTS機制。

  • RTS:單播幀,沒有加密,其duration字段中填充包含后續發送過程中總體所需要時間。
  • CTS:單播幀,沒有加密,節點在收到CTS后,確認信道是空閑的,可以發送。其duration字段包含除去RTS以及一個SIFS后,發送過程總體所需要時間。?
    ?
    下圖結合退避過程理解,橫軸單位為slot time?
  • 4.分段、重組

    把一個長度較大的MSDU或MMPDU進行分成較小的MPDU的過程叫做分段,信道特性使得傳輸短幀的可靠性比長幀更高,目的STA接收分段后重新組裝成MPDU。?
    MAC的屬性值dot11FragmentationThreshold 定義了物理層能接收的最長幀長度,當發送的幀長度超過該參數,必須分段。其默認值依賴于物理層的信息管理庫中的屬性aMPDUMaxLength。若aMPDUMaxLength>=2347,則默認值設置為2347,aMPDUMaxLength<2347,則默認值設置為aMPDUMaxLength。該設置值可以通過外部管理器修改,但是要小于aMPDUMaxLength。?

    5.分段|MAC幀的傳輸規則

    當MSDU或者MMPDU不是作為整體,當其分成幾個片段,每個片段都是完整的幀需要傳送時,信道控制過程為:?
    當源節點爭取到信道的使用權,這個使用權有停駐時間邊界。STA開啟突發傳送模式,持續發送片段幀,直至把MSDU或者MMPDU發送完成。期間可能出現的情況有:?
    1、 MSDU或者MMPDU發送完成,不論STA有無剩余的MSDU或者MMPDU需要發送,在接收到ACK之后進入退避模式,等待下一次使用權;?
    2、 一個需要ACK的分段,在傳輸之后沒有收到應答,源STA將在Ack定時器過后,進入退避程序(在ACK定時器后仍未接收到ACK,則認為傳輸失敗)。之后重新競爭信道,爭取到信道使用權后,重新傳輸。?
    3、 在超出傳送次數限制之后,MAC層丟棄該包,進入退避程序。

    傳送次數限制:MAC層會為每個MSDU或者MMPUD(按照幀長度)分配一個長幀計數器LRC或短幀計數器SRC,MIB中設置了屬性dot11ShortRetryLimit(默認值為7)和dot11LongRetryLimit(默認值為4),是SRC和LRC的上限。?
    當傳送失敗時,相應LRC或SRC加1,當超出設置的上限時,丟包,計數器置零;傳送成功時,計數器置零。?
    4、 當剩下的停駐時間已經不足以支持發送一個分組和一個應答,源節點將會在這個停駐時間段結束后進入退避模式,參與信道使用權競爭。?
    5、 接收節點會將重復的分段幀過濾丟掉

    ?
    a.判斷幀發送的失敗與否規則?
    發送RTS之后,物理層發送原語PHY-TXEND.confirm表示發送結束,STA進入CTS規程。在等待了一個CTSTimeout間隔之后,如果沒有收到PHY-RXSTART.indication原語,即沒有表明物理層收到CTS幀,則表示發送失敗。在CTSTimeout間隔之后調用退避規程。?
    發送數據幀或者管理幀之后,確認本次傳輸失敗前,應該等待一個ACKTimeout。?
    b.過濾重復幀方法?
    通過內置在數據幀和管理幀中的順序控制域


    總結

    以上是生活随笔為你收集整理的DCF机制详解的全部內容,希望文章能夠幫你解決所遇到的問題。

    如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。