資料連結層

載波偵測多重存取(CSMA)

/ see-ess-em-AY /

ALOHA 的弱點是節點盲目地傳送,即使顯然已經有人在說話。CSMA 加上一個我們在對話中都會用的、有禮貌的常識步驟:先聽再說。載波偵測多重存取的意思是,節點先感測通道——它檢查是否有載波訊號存在,也就是是否已經有人在傳送——只有在通道聽起來空閒時才送。若通道忙碌,它就先按兵不動。光是這一點,相較於 ALOHA 就大幅減少了碰撞。

但「聽」並不是萬靈丹,因為有個頑固的事實:傳播延遲。訊號沿著連結傳送需要非零的時間。如果節點 A 開始傳送,在 A 的訊號抵達節點 B 之前有一小段窗口;在那段窗口裡,B 感測到的是空閒的通道,以為安全,便也開始送。現在兩者都在傳送,它們的訊框在線路途中某處相撞。連結越長(傳播延遲相對於訊框時間越大),這段脆弱窗口就越寬,越多碰撞溜過載波偵測。所以 CSMA 減少碰撞,卻無法消除碰撞。

設計者還會選擇等待中的節點要多「執著」。在 1-堅持 CSMA 中,發現通道忙碌的節點會持續聽,並在它一空下來的瞬間就傳送——快,但這樣兩個等待中的節點就一定會撞。非堅持 CSMA 在再次感測前先等一段隨機時間,以一些閒置時間為代價減少這類碰撞。p-堅持則折衷兩者。誠實的關鍵點:由於碰撞仍會發生,純 CSMA 通常會搭配一個處理碰撞的辦法——偵測它(有線乙太網路上的 CSMA/CD)或主動避免它(Wi-Fi 上的 CSMA/CA)。

節點 A 開始傳送。距離 1 微秒傳播時間的節點 B,在 A 的訊號抵達它之前那 1 微秒裡感測通道,什麼也沒聽到,便也開始傳送。它們的訊框在線路上相撞——「聽」有幫助,但傳播的時間差還是讓一次碰撞溜了過去。

先聽後送能減少碰撞,卻贏不過傳播延遲所造成的脆弱窗口。

載波偵測能減少碰撞,卻無法消除:傳播延遲製造出一個窗口,讓兩個節點都感測到空閒而傳送。這份殘餘風險,正是 CSMA 要搭配碰撞偵測(CSMA/CD)或碰撞避免(CSMA/CA)的原因。

又称
carrier-sense multiple accesslisten before talk載波感測多重存取先聽後送