CSMA/CD
英文Carrier Sense Multiple Access with Collision Detection,意思是載波偵聽多路訪問/衝突檢測。
採用該協議要求設備在發送幀的同時要對信道進行偵聽,以確定是否會發生信道衝突,若在發送數據過程中檢測到衝突,則需要進行衝突處理。整個協議的處理規程如下:
1 監聽當前信道上是否有數據再發送,如果信道空閒,直接發送數據,如果信道忙,則按照一定的退避算法進行延時監聽。
2 當信道允許發送數據時,發送數據。
3 數據發送過程中,邊發送邊監聽,如果發送過程中檢測到衝突,則停止發送數據,併發送阻塞信息,強化衝突,並轉入1。
CSMA/CA
英文Carrier Sense Multiple Access with Collision Avoidance,意思是載波偵聽多路訪問/衝突避免。
採用該協議要求設備要主動避免衝突而非被動偵測的方式來解決衝突問題。避免衝突的方法主要有兩個:
一是監聽到信道空閒時,並不是立即發送,而是等待一段時間再發送數據。
二是先發送一個很小的信道偵測幀RTS,如果收到最近的接入點返回的CTS,就認爲信道是空閒的,然後再發送數據。
協議的主要流程如下:
1 首先檢測信道是否有使用,如果檢測出信道空閒,則等待一段隨機時間後,才送出數據。
2 接收端如果正確收到此幀,則經過一段時間間隔後,向發送端發送確認幀ACK。
3 發送端收到ACK幀,確定數據正確傳輸,在經歷一段時間間隔後,再發送數據。
區別
對設備硬件特性要求不同
CSMA/CD主要着眼點在衝突的偵測,當偵測到衝突時,進行相應的處理,要求設備能一邊偵測一邊發送數據。
CSMA/CA主要着眼點在衝突的避免,協議裏也看到經常是等待一段時間再做動作,通過退避儘量去避免衝突,還有就是先發送一些特別小的信道偵測幀來測試信道是否有衝突。
適用場景不同
CSMA/CD主要適用以太網。
CSMA/CA主要適用無線局域網