CSMA/CD、非堅(jiān)持、1-堅(jiān)持、P-堅(jiān)持……無(wú)線信道沖突這樣解決
一、什么是載波監(jiān)聽(tīng)多路訪問(wèn)技術(shù)?
載波監(jiān)聽(tīng)多路訪問(wèn)(CSMA) 技術(shù),也稱(chēng)做先聽(tīng)后說(shuō)(LBT,Listen Before Talk)。要傳輸數(shù)據(jù)的站點(diǎn)首先對(duì)媒體上有無(wú)載波進(jìn)行監(jiān)聽(tīng),以確定是否有別的站點(diǎn)在傳輸數(shù)據(jù)。
任何站點(diǎn)要向公共介質(zhì)發(fā)送信息時(shí),首先要偵聽(tīng)介質(zhì)上是否有其他站點(diǎn)正在傳送信息:
? 如果通信介質(zhì)上無(wú)載波(即沒(méi)有被占用),則可以利用通信介質(zhì)進(jìn)行傳送
? 如果已監(jiān)聽(tīng)到介質(zhì)上有載波(即有其它站點(diǎn)正在傳送信息),則必須等待介質(zhì)平靜之后才能進(jìn)行傳送
這樣就會(huì)使信道上的沖突大大減少。
![]()
?? CSMA的局限
在CSMA中,由于通道的傳播延遲,當(dāng)兩個(gè)站點(diǎn)監(jiān)聽(tīng)到總線上沒(méi)有存在信號(hào)而發(fā)送幀時(shí),仍會(huì)發(fā)生沖突。由于CSMA算法沒(méi)有沖突檢測(cè)功能,即使沖突已發(fā)生,仍然要將已破壞的幀發(fā)送完,使總線的利用率降低。
改進(jìn)方案:CSMA/CD
改進(jìn)方案是使站點(diǎn)在傳輸時(shí)間繼續(xù)監(jiān)聽(tīng)媒體,一旦檢測(cè)到?jīng)_突,就立即停止發(fā)送,并向總線上發(fā)一串短的阻塞報(bào)文(Jam),通知總線上各站沖突已發(fā)生,可以提高總線的利用率。
流程如下:
監(jiān)聽(tīng),若空閑則發(fā)送
忙則監(jiān)聽(tīng)直到空閑,立即發(fā)送
檢測(cè)到?jīng)_突,立即停止,發(fā)送阻塞信號(hào)
隨機(jī)等待,重新嘗試發(fā)送
這就需要有一種退避算法來(lái)決定避讓的時(shí)間。常用的退避算法有非堅(jiān)持、1-堅(jiān)持、P-堅(jiān)持三種。
二、三種退避算法詳解 1. 非堅(jiān)持算法(Non-persistent CSMA)
算法規(guī)則:
⑴ 假如媒體是空閑的,則可以立即發(fā)送
⑵ 假如媒體是忙的,則等待一個(gè)由概率分布決定的隨機(jī)重發(fā)延遲后,再重復(fù)前一步驟
特點(diǎn):
? 采用隨機(jī)的重發(fā)延遲時(shí)間可以減少?zèng)_突發(fā)生的可能性
? 缺點(diǎn):即使有幾個(gè)站點(diǎn)都有數(shù)據(jù)要發(fā)送,但由于大家都在延遲等待過(guò)程中,媒體仍可能處于空閑狀態(tài),使用率降低
算法規(guī)則:
⑴ 假如媒體空閑,則可以立即發(fā)送
⑵ 假如媒體是忙的,則繼續(xù)監(jiān)聽(tīng),直至檢測(cè)到媒體空閑,立即發(fā)送
⑶ 假如有沖突(在一段時(shí)間內(nèi)未收到肯定的回復(fù)),則等待一隨機(jī)量的時(shí)間,重復(fù)步驟⑴~⑵
特點(diǎn):
? 優(yōu)點(diǎn):只要媒體空閑,站點(diǎn)就立即可發(fā)送,避免了媒體利用率的損失
? 缺點(diǎn):假若有兩個(gè)或兩個(gè)以上的站點(diǎn)有數(shù)據(jù)要發(fā)送,沖突就不可避免
算法規(guī)則:
⑴ 監(jiān)聽(tīng)總線,假如媒體是空閑的,則以 P的概率 發(fā)送,而以 (1-P)的概率 延遲一個(gè)時(shí)間單位(一個(gè)時(shí)間單位通常等于最大傳播時(shí)延的2倍)
⑵ 延遲一個(gè)時(shí)間單位后,再重復(fù)步驟⑴
⑶ 假如媒體是忙的,繼續(xù)監(jiān)聽(tīng)直至媒體空閑并重復(fù)步驟⑴
特點(diǎn):
通過(guò)概率P平衡沖突概率與信道利用率
適用于時(shí)隙信道
隨著網(wǎng)絡(luò)技術(shù)的發(fā)展,全雙工以太網(wǎng)逐漸取代了半雙工以太網(wǎng)。在全雙工模式下,發(fā)送和接收使用獨(dú)立的信道,不存在沖突問(wèn)題,因此 CSMA/CD 和退避算法已經(jīng)不再需要。
但在 無(wú)線局域網(wǎng)(WLAN) 和 物聯(lián)網(wǎng)(IoT) 中,由于無(wú)線信道的廣播特性和半雙工本質(zhì),退避算法仍然發(fā)揮著至關(guān)重要的作用。
無(wú)論是Wi-Fi的CSMA/CA,還是LoRa、Zigbee等物聯(lián)網(wǎng)協(xié)議的信道競(jìng)爭(zhēng)機(jī)制,背后都離不開(kāi)載波監(jiān)聽(tīng)與退避算法的影子。
小貼士:如果你的無(wú)線模塊在密集環(huán)境中出現(xiàn)頻繁丟包、重傳,不妨檢查一下退避參數(shù)配置是否合理——P值、重試次數(shù)、競(jìng)爭(zhēng)窗口大小,都是影響網(wǎng)絡(luò)吞吐量的關(guān)鍵因素。
特別聲明:以上內(nèi)容(如有圖片或視頻亦包括在內(nèi))為自媒體平臺(tái)“網(wǎng)易號(hào)”用戶上傳并發(fā)布,本平臺(tái)僅提供信息存儲(chǔ)服務(wù)。
Notice: The content above (including the pictures and videos if any) is uploaded and posted by a user of NetEase Hao, which is a social media platform and only provides information storage services.