當(dāng)802.11 WLAN網(wǎng)絡(luò)上的數(shù)個(gè)裝置同時(shí)傳送數(shù)據(jù)時(shí),由于頻寬的限制,會(huì)發(fā)生“封包碰撞”(collision)的情況。一般以太網(wǎng)絡(luò)是使用“指數(shù)回歸算法”(exponential backoff algorithm)來(lái)解決這種問(wèn)題,而802.11標(biāo)準(zhǔn)也不例外。802.11的MAC標(biāo)準(zhǔn)稱作“分布式基礎(chǔ)無(wú)線媒體擷取控制”(distributed foundation wireless MAC;DFWMAC)。
如果真要自行設(shè)計(jì)“專(zhuān)屬的WLAN”,必須先行克服從射頻實(shí)體層至MAC層的通信協(xié)議問(wèn)題。假設(shè)他們已經(jīng)具有很純熟的27MHz無(wú)線電傳收機(jī)技術(shù),則剩下的就是要解決MAC層的通信協(xié)議問(wèn)題,這主要包含兩個(gè)重要的問(wèn)題:CSMA/CA和回歸(backoff)。當(dāng)然,除此之外,RTS/CTS流量控制和“分布式協(xié)調(diào)功能(distributed coordination function;DCF)”,以及更上層的驅(qū)動(dòng)程序、應(yīng)用軟件、各通信層之間的接口….等,都要嚴(yán)格考慮在內(nèi)。不過(guò),本文將專(zhuān)注于回歸技術(shù)的探討。
碰撞的問(wèn)題
當(dāng)兩臺(tái)裝置同時(shí)開(kāi)始傳送數(shù)據(jù)時(shí),它們將會(huì)先檢查纜線中是否有載波存在,若載波有存在,而且纜線是處于閑置狀態(tài),它們就會(huì)馬上傳送封包。因?yàn)樗鼈兯l(fā)射的電子信號(hào)會(huì)彼此干擾,這種干擾會(huì)造成“封包碰撞”的結(jié)果。碰撞會(huì)使封包內(nèi)的數(shù)據(jù)混淆不清,致使接收到的封包無(wú)法還原成正確的數(shù)據(jù)。
雖然,CSMA/CA和回歸都能解決碰撞的問(wèn)題,不過(guò),在功能上,它們是有差別的。CSMA/CA是一種“競(jìng)爭(zhēng)”(contention)通信協(xié)議,它傾聽(tīng)WLAN網(wǎng)絡(luò),避免碰撞發(fā)生。它和傳統(tǒng)的CSMA/CD(被以太網(wǎng)絡(luò)使用)不同,CSMA/CD是在碰撞發(fā)生之后,才起來(lái)處理后續(xù)的傳送作業(yè)。CSMA/CA則是防患未然,所以比較有助于網(wǎng)絡(luò)通信。因?yàn)樗谌魏握嬲臄?shù)據(jù)被傳送之前,會(huì)先在網(wǎng)絡(luò)上廣播(broadcast)一個(gè)信號(hào),傾聽(tīng)是否有碰撞發(fā)生,同時(shí)告訴其它裝置不要廣播。
當(dāng)發(fā)生碰撞時(shí),裝置必須等待一段時(shí)間,等纜線恢復(fù)閑置時(shí),才能再傳送。不過(guò),若兩個(gè)裝置
同時(shí)再次發(fā)射信號(hào),則另一個(gè)碰撞又將再次發(fā)生。為了避免這個(gè)情況發(fā)生,就必須采用“二進(jìn)制指數(shù)回歸算法”來(lái)解決。
回歸的概念
在碰撞之后,再次嘗試發(fā)射信號(hào)之前,每一個(gè)傳送裝置必須等待一段時(shí)間。不過(guò),如果它們的等待或延遲時(shí)間都一樣,則下次還是會(huì)有碰撞發(fā)生。因此,每個(gè)裝置必須選擇一個(gè)0到D的隨機(jī)數(shù),當(dāng)成必須等待的時(shí)間長(zhǎng)度。D是標(biāo)準(zhǔn)的延遲時(shí)間值。若又發(fā)生碰撞,則每個(gè)裝置會(huì)將之前所選擇的隨機(jī)數(shù)大小加倍,這表示現(xiàn)在的隨機(jī)延遲時(shí)間是在0到2D之間。如果又有另一個(gè)碰撞發(fā)生,則延遲范圍將在0到4D之間。以此類(lèi)推。每碰撞一次,隨機(jī)延遲時(shí)間會(huì)以指數(shù)增加,所以下次會(huì)發(fā)生碰撞的機(jī)率將會(huì)大幅降低,而且重復(fù)回歸所花費(fèi)的時(shí)間很短,可以忽略不計(jì)。
802.11的回歸機(jī)制
802.11/DFWMAC的回歸機(jī)制和以太網(wǎng)絡(luò)的不完全一樣,因?yàn)榍罢哌牽涉到DCF。DCF是以CSMA/CA為基礎(chǔ)的通信協(xié)議。DFWMAC整合了兩個(gè)協(xié)調(diào)功能—PCF和DCF。PCF支持同步數(shù)據(jù)傳輸,DCF支持異步數(shù)據(jù)傳輸。這兩個(gè)模式共享媒體頻寬,以多時(shí)分工(time-multiplex)的方式,將彼此的數(shù)據(jù)組合成一個(gè)“超大訊框(superframe)”的結(jié)構(gòu)。
利用訊框之間不同的間距(interframe space;IFS),DCF和PCF可以并存。由于具有PCF的橋接器(AP)的IFS比較小,因此它的通信優(yōu)先級(jí)會(huì)比處于DCF模式中的工作站高。所以,AP可以在CSMA/CA網(wǎng)絡(luò)上建立一個(gè)超大訊框。
在沒(méi)有AP裝置的WLAN網(wǎng)絡(luò)環(huán)境之中,存取數(shù)據(jù)要靠DCF。一旦媒體閑置了一段特定的時(shí)間(DIFS),并且可以在“競(jìng)爭(zhēng)窗口”(contention window;CW)的大小范圍內(nèi),選擇一個(gè)隨機(jī)的回歸值當(dāng)成延遲時(shí)間。競(jìng)爭(zhēng)窗口或回歸時(shí)間都是被分割成數(shù)個(gè)時(shí)槽(slot),每個(gè)時(shí)槽至少要包含:發(fā)射機(jī)開(kāi)啟所需的時(shí)間+媒體傳播所需的時(shí)間+偵測(cè)忙碌的媒體所需的時(shí)間。每個(gè)時(shí)槽的大小和實(shí)體層非常有關(guān)。
選擇最小延遲時(shí)間的工作站,將是最早存取媒體的;其它工作站則暫停它們的回歸定時(shí)器,等待別人傳送完畢;而且,在下一個(gè)周期內(nèi),繼續(xù)等待所剩余的延遲時(shí)間。通常,已經(jīng)等待很久的工作站,會(huì)比剛加入的工作站,能更早存取媒體。等待的時(shí)間愈久,獲得存取權(quán)的機(jī)率就愈高。碰撞只發(fā)生在兩個(gè)或更多個(gè)工作站選擇了相同的時(shí)槽的時(shí)候。若持續(xù)發(fā)生碰撞,它們必須重新競(jìng)爭(zhēng),并使用以指數(shù)增加的CW值,亦即,2倍的CW、4倍的CW、……,直到最大的CW限制值。
碰撞機(jī)率的分布
下面我們來(lái)探討一下DFWMAC的碰撞機(jī)率。不過(guò),不對(duì)碰撞問(wèn)題做完整的數(shù)學(xué)分析,只針對(duì)它的性質(zhì),做判定和說(shuō)明。仔細(xì)檢視CW,和從CW選出的一個(gè)時(shí)槽的機(jī)率:假設(shè)有許多個(gè)工作站一起競(jìng)奪媒體的存取權(quán),剛開(kāi)始時(shí),這種設(shè)計(jì)會(huì)使回歸時(shí)間的機(jī)率函數(shù)呈現(xiàn)平均分布,每一個(gè)時(shí)槽的被選中機(jī)率是相同的。
在第二個(gè)周期之內(nèi),假設(shè)有一個(gè)工作站A獲得存取權(quán),其工作站在工作站A開(kāi)始發(fā)射信號(hào)之前都會(huì)等待或延遲,假設(shè)這個(gè)延遲時(shí)間是CWselected—這就是前面所介紹的“隨機(jī)延遲時(shí)間”,F(xiàn)在,剩下的“競(jìng)爭(zhēng)窗口”是從0到CW-CWselected,剩余的工作站(除了工作站A以外的其它工作站)在0到CW-CWselected的范圍內(nèi)競(jìng)爭(zhēng)。這范圍內(nèi)的時(shí)槽的被選中機(jī)率也是相同的,因?yàn)樗鼈兪侵匦逻M(jìn)行競(jìng)爭(zhēng)之故。
如果這時(shí)有一個(gè)新工作站加入競(jìng)爭(zhēng);或者在前一個(gè)周期內(nèi),有兩個(gè)或以上的工作站發(fā)生碰撞,它們將會(huì)在CW或2倍的CW或數(shù)倍的CW中選擇時(shí)槽,它們選擇時(shí)槽的機(jī)率應(yīng)該是較小的。直覺(jué)上,新進(jìn)者本來(lái)就要等久一點(diǎn)才能獲得存取權(quán);至于發(fā)生碰撞的工作站的獲得存取權(quán)之機(jī)率,應(yīng)該比新進(jìn)的工作站的獲得存取權(quán)之機(jī)率少一半才對(duì)。不過(guò)為了便于說(shuō)明,這里將新進(jìn)的工作站和發(fā)生碰撞的工作站視為同類(lèi);此時(shí),它們的機(jī)率都遠(yuǎn)小于其它剩余工作站的機(jī)率;而它們的機(jī)率的些微差異是可以省略不計(jì)的,其中,時(shí)槽超過(guò)CW-CWselected范圍的被選中機(jī)率,遠(yuǎn)低于從0到CW-CWselected范圍內(nèi)的時(shí)槽被選中機(jī)率。請(qǐng)注意,實(shí)際上,新進(jìn)的和碰撞重來(lái)的工作站之時(shí)槽被選中機(jī)率,占有0到CW-CWselected和CW-CWselected的完整CW范圍。
假設(shè)WLAN處于高負(fù)載的情況(一直有工作站離開(kāi),也一直有工作站加入競(jìng)爭(zhēng),且離開(kāi)和加入的數(shù)量是均衡的),這時(shí),可以發(fā)現(xiàn)位于CW前面的時(shí)槽(即較早生成的時(shí)槽),具有比較高的被選中機(jī)率。因此,時(shí)槽的被選中機(jī)率是一個(gè)遞減的階梯函數(shù)(staircase function)。
不過(guò),這會(huì)導(dǎo)致一種我們很不想看到的現(xiàn)象:愈可能被選中的時(shí)槽,也愈可能被選中兩次或更多次,所以它發(fā)生碰撞的機(jī)會(huì)也愈高。為了盡量避免碰撞的發(fā)生,應(yīng)該使每一個(gè)時(shí)槽的分布機(jī)率維持相等。
改良的回歸機(jī)制
為了解決上述的問(wèn)題,有許多方法可以采用。其中一種方法是,令剩余的工作站于每個(gè)周期,在完整的CW內(nèi),選擇一個(gè)新的隨機(jī)回歸時(shí)間。不過(guò),這可能會(huì)造成某一個(gè)工作站都一直在等待存取的機(jī)會(huì),因?yàn)榇朔椒ú](méi)有限制最大的等待時(shí)間。底下分別以兩種方法來(lái)解決這個(gè)問(wèn)題,它們都企圖將新進(jìn)的工作站和前一次競(jìng)爭(zhēng)失敗的(剩余的)工作站之機(jī)率區(qū)分開(kāi)來(lái)。這兩種方法是:加權(quán)的選擇機(jī)率、負(fù)載自適性(load adaptive)選擇。為了追求精確和精致,必須使用簡(jiǎn)要的數(shù)學(xué)觀念和方程式來(lái)說(shuō)明它們。
作者:Spring 來(lái)源:電子發(fā)燒友