CSMA/CA 在 WiFi 通訊中的角色

WiFi 標準的世界中,高效的資料傳輸對於維持可靠的無線連線至關重要。其中一項讓這成為可能的關鍵協定,就是載波感測多重存取/避免碰撞(CSMA/CA)讓我們來探討它的運作方式。

首選
  • NetSpot
  • #1 NetSpot
  • Wi-Fi 場勘、規劃、分析、故障排除

  • Wi-Fi 場勘、規劃、分析、故障排除

  • 4.8
  • 969位用戶評論

什麼是 CSMA/CA?

想像一下,你在早晨高峰時分走進一家繁忙的咖啡店。你正試圖點餐,但同時有另外三位顧客也在大聲點餐。櫃檯後面的可憐咖啡師在這樣的混亂中,根本聽不清楚任何一個完整的訂單。如果無線網路沒有一套管理裝置溝通的系統,這正是會發生的情況。

解決方法?這是一種名為 CSMA/CA 的協定,全名為:

  • Carrier Sense (CS): 裝置必須「傾聽」以偵測無線頻道目前是否已被其他裝置使用。
  • Multiple Access (MA): 這代表多個裝置共享同一無線頻道,就像許多車輛共用同一條道路一樣。
  • Collision Avoidance (CA): 這個協定會主動在碰撞發生前防止資料碰撞,就像交通號誌系統確保車輛在路口不會相撞。

從本質上來說,CSMA/CA 的運作方式是要求每個裝置在傳送資料前,必須先檢查無線頻道是否空閒,並透過協調好的請求與許可系統來防止多個裝置同時傳輸資料。當某個裝置要發送資料時,必須先監聽頻道,等待輪到自己,並收到來自存取點的明確許可後,才能繼續傳輸。

這種謹慎的協調可防止無線干擾及其嚴重負面後果,例如必須重新傳送的損毀資料封包、大幅降低的網路吞吐量、對即時應用(如視訊通話與遊戲)造成的延遲增加、因多次嘗試傳送而導致行動裝置電池過度消耗,還有隨著碰撞率提高,所有連線裝置的效能下降。

CSMA 變化型

CSMA 家族包括多種適用於不同網路環境的變體,但其中兩種最重要的是 CSMA/CA 和 CSMA/CD:

面向 CSMA/CD CSMA/CA
網路類型 有線(乙太網路) 無線(WiFi)
碰撞策略 發生後偵測 發生前預防
機制 傳輸期間監控電壓 使用 RTS/CTS 握手
額外負擔 最小(僅在碰撞時) 較高(協調訊息)
效率 適合低碰撞環境 適合高碰撞環境
隱藏節點問題 不適用 透過協調解決

CSMA/CD(碰撞偵測)是較早期的技術,專為傳統有線乙太網路設計。在 CSMA/CD 中,裝置在偵測到通道空閒時會立即傳輸資料,並在傳輸過程中監控是否有碰撞。如果偵測到碰撞(藉由感測線路上的異常電壓)兩個裝置會都停止傳送,等待一段隨機退避時間後,再重試。

CSMA/CA(碰撞避免)則是我們的重點,這種方式是為無線網路專門設計的預防機制。CSMA/CA 不像 CD 那樣在碰撞發生後才偵測,而是透過“請求發送/清除發送”RTS/CTS)機制,在傳送前預先預約通道,從而主動避免碰撞發生。

除了這兩個主要變種外,CSMA 家族還包含幾種不同的持續性策略,這些策略定義裝置嘗試傳輸時的積極程度。這些策略可以與碰撞偵測(CD)或碰撞避免(CA)任意搭配:

  • 1-持續性 CSMA:你可以把 1-持續性 CSMA 想像成一種較為激進的變體,裝置會持續監控忙碌的通道,並在成為空閒時立即傳送,這會在有多台裝置等待時造成較高的碰撞率。
  • 非持續性 CSMA:一種較為保守的做法,裝置會等待一段隨機時間後再檢查通道,這樣可以減少碰撞,但在通道實際上是空閒時會浪費寶貴的時間。非持續性 CSMA 就是這樣運作的。
  • P-持續性 CSMA:這個版本的 CSMA 使用機率來決定何時傳送,當發現通道空閒時,裝置會以某一指定機率 p 進行傳送。因此,這種做法在激進與保守之間取得平衡。

以上每種變體的產生都是為了解決特定的網路挑戰,而 CSMA/CA 則是在無線環境中一枝獨秀,也正是我們 NetSpot 專注的重點。作為無線網路評估、掃描與勘查的易用軟體開發商,我們深刻體會到 CSMA/CA 的碰撞避免機制對於維持 NetSpot 協助你分析與優化的 WiFi 流暢效能來說非常關鍵。

CSMA/CA 如何運作?

我們已經介紹過 CSMA/CA 的高層運作原理,但你也許會想進一步了解它實際上是如何運作的。CSMA/CA 的核心,是讓每一個裝置在傳送資料之前,都必須完成一系列特定步驟:

  1. 先聆聽再發送:裝置會進行載波感測,檢查無線頻道上是否已經有其他的傳輸正在進行。
  2. 等待靜默:如果頻道忙碌,裝置會利用二進位指數退避演算法退後等待,每次重試失敗後等待時間加倍。
  3. 觀察 IFS 期間:即使頻道看似空閒,裝置仍需等待幀間間隔(IFS)時間,以確保前一次傳輸已經完全結束。
  4. 加入隨機退避:裝置還會再等待一個隨機時間,以避免多個裝置同時在頻道變空時同時傳輸。
  5. 傳送資料:最後,裝置傳送資料幀,並等待接收端回覆確認。

這個基本流程非常適合輕度負載下的小量資料傳輸。不過,若是在資料量大或環境壅擠的無線網路,則需要更精密的解決方案:

  • RTS/CTS(發送請求/允許發送) 在忙碌網路或大資料傳輸時,裝置可選擇使用握手協議傳送。傳送端會先傳送一個簡短的 RTS 幀以請求發送許可,接入點則回覆 CTS 幀,同時通知所有範圍內裝置保持靜默。
  • 網絡分配向量(NAV)這種虛擬載波感測機制,比單純的物理信號偵測多了額外的碰撞避免層。每個傳輸幀都會包含通道占用的期間資訊,讓其他裝置精確知道頻道將被佔用多久。收到這些幀的裝置會設定 NAV 計時器,並在這段時間內視頻道為「虛擬忙碌」
  • 智慧時序:現代 CSMA/CA 使用不同的幀間間隔(IFS)來分流流量,並維持繁忙網路的秩序。關鍵的確認幀(ACK)使用最短的等待時間(SIFS)來快速確認傳輸是否成功。一般資料則使用標準間隔(DIFS)而錯誤恢復則使用最長的間隔(EIFS)

這些機制的結合讓 CSMA/CA 能夠處理從安靜的家庭網路到每日服務數千人裝置的繁忙機場 WiFi 網路各式狀況。

當然,單靠 CSMA/CA 無法保證完美的 WiFi 效能,像是 訊號強度干擾以及網路組態等因素也十分重要。這也是 NetSpot 等工具對網路管理員與家庭用戶都很寶貴的原因,因為它們能協助你視覺化並最佳化無線網路的實體層面,無論是找出死角,還是尋找最不壅塞的頻道

結論

CSMA/CA 是一種基本協定,透過要求裝置在傳輸前先檢查頻道是否空閒,以防止 WiFi 網路中的資料碰撞。該協定結合了多種技術,這些技術協同運作,能夠應對從簡單的家庭環境到有數百個裝置競爭的高密度環境等各種網路狀況。

所以,我們推薦
NetSpot

Wi-Fi 現場調查、分析、疑難排解 支援在 MacBook(macOS 11+)或任何安裝標準 802.11be/ax/ac/n/g/a/b 無線網路配接器的筆電(Windows 7/8/10/11)上運行。更多關於 802.11be 支援的資訊可以在這裡查閱。

  • 4.8
  • 969位用戶評論
  • #1
  • Wi-Fi 場勘、規劃、分析、故障排除

  • 500K
  • 用戶
  • 10+
  • 年数
  • 跨平台
  • Mac/Windows/Аndroid

常見問題

CSMA/CA 的作用是什麼?

CSMA/CA 透過讓裝置在傳輸前檢查無線通道是否清空,來防止 WiFi 網路中的資料碰撞。

CSMA/CD 與 CSMA/CA 有什麼差別?

CSMA/CD 和 CSMA/CA 之間有兩個主要差異。首先,CSMA/CD 透過監控線路上的電壓變化,在碰撞發生後偵測出碰撞,而 CSMA/CA 則透過如 RTS/CTS 等協調機制,在碰撞發生前加以預防。其次,CSMA/CD 僅用於所有設備都能彼此聽見的有線乙太網路,而 CSMA/CA 則是專為無線網路設計。

我們還在使用 CSMA/CA 嗎?

是的,CSMA/CA 目前仍然在每一個 WiFi 網路中被積極使用,從最新的 Wi-Fi 7 標準(該標準新增了如 正交分頻多重存取(OFDMA) 等提升效率的改進)到較舊的 802.11 實作皆是如此。

為什麼802.11 MAC使用CSMA/CA而不是CSMA/CD?

802.11 使用 CSMA/CA,因為無線裝置無法在同一頻率下同時傳送與接收,因此在傳送時無法偵測碰撞。此外,無線網路還面臨例如隱藏節點(裝置彼此聽不到,卻會在存取點產生干擾)等特殊挑戰,這些情況讓碰撞偵測變得不切實際,因此需要避免碰撞的機制。

還有其他問題嗎?
提交請求 或寫幾個字。

免費獲取NetSpot

Wi-Fi 現場調查、分析、疑難排解 支援在 MacBook(macOS 11+)或任何安裝標準 802.11be/ax/ac/n/g/a/b 無線網路配接器的筆電(Windows 7/8/10/11)上運行。更多關於 802.11be 支援的資訊可以在這裡查閱。