CSMA/CD 用在有線網路,CSMA/CA 用在無線網路。
協定相似,
差別在於CSMA/CD(Carrier Sense Multiple Access with Collision Detection)是利用碰撞偵測的方式,
但由於碰撞偵測無線訊號有所困難,
因此CSMA/CA(Carrier Sense Multiple Access with Collision Avoidance)改採取避免碰撞的方式。
一個是碰撞偵測處理 Collision Detection,另一個則是避免碰撞 Collision Avoidance,由於不同訊號傳遞媒體的物理限制,進而使用了不同的方式來實作網路封包傳遞的功能。
CSMA/CA 並不是只能用在無線網路,在低成本的 LocalTalk 也是使用 CSMA/CA 傳送封包。
避免碰撞發生的方法是以偵測工作頻帶中的電磁波能量來發現頻道是否空閒,若發現空閒也不立刻送出資料訊框,而是自行產生一隨機亂數來當作延遲的時間,當在延遲期間偵測到頻道忙碌時,則此隨機時間會被凍結,直到再度確認頻道空閒時再啟動隨機時間,一旦延遲時間一到才將訊框送出,如此一來資料的碰撞機率便大幅降低。
詳細運作方式:
CSMA/CD:
- 訊號採用廣播的方式傳送(所以才會發生碰撞)
- 當節點要發送訊號時,會先偵測通道是否有其他節點正在使用(carrier sense)
- 當通道沒有被其他節點使用時,就傳送封包
- 封包傳送之後立即檢查是否發生碰撞(carrier detection),若是發生碰撞則對通道發出高頻訊號高知其他節點已經發生碰撞
- 碰撞後隨機等待一段時間重新發送封包
- 嘗試 15 次都失敗的話則告知上層 Timeout
- 訊號採用廣播的方式傳送(非常容易受到無線電波干擾)
- 當節點要發送訊號時偵測頻道是否空閒
- 若是空閒則等待 IFS, Interval Frame Space 時間後再次偵測頻道是否空閒
- 若是空閒則發送封包,反之重新進入等待頻道空閒(隨機等待時間)
- 發送 RTS 之後必須在限定時間內收到來至目的端的 CTS 訊號
- 當失敗 32 次之後通知上層 Timeout
此外 CSMA/CA 又可分為以下兩種類型
- 分散式協調功能 (Distributed Coordination Function, DCF):競爭式服務 (Contention Service)
- 集中式協調功能 (Point Coordination Function, PCF):無競爭式服務 (Contention-Free Service)
資訊參考來源: