主頁 / 什麼是隱藏節點問題?
什麼是隱藏節點問題?
隱藏節點問題(Hidden Node Problem)是無線網絡中一種常見卻容易被忽略的效能瓶頸:兩個客戶端各自能與同一接入點(AP)正常通訊,但彼此之間卻收不到對方的訊號,導致雙方誤判頻道空閒而同時發送,結果在AP端發生碰撞。本頁講解成因、CSMA/CA與RTS/CTS機制的運作原理,以及香港常見場景下的解決方案。
隱藏節點問題是什麼
在有線乙太網絡中,交換機以獨立埠口區隔每個裝置,碰撞的機會相對低;但無線網絡共用同一段無線頻道,所有客戶端必須輪流「發言」才能避免互相干擾。Wi-Fi透過一套稱為CSMA/CA(Carrier Sense Multiple Access with Collision Avoidance,載波偵聽多路訪問/碰撞避免)的機制實現這種輪流:客戶端在發送前先偵聽頻道,確認沒有其他裝置正在傳輸,才會發出自己的封包。
問題在於,這種偵聽是以客戶端自身的收訊範圍為準 ,而不是以AP的收訊範圍為準。假設有兩個客戶端A與C,兩者都在AP的訊號覆蓋範圍之內、都能與AP正常通訊,但A與C之間相距太遠、或中間有牆壁及貨架阻隔,彼此收不到對方的訊號。這種情況下,A偵聽頻道時「聽不到」C正在發送,於是誤判頻道空閒而同時發送;C亦然。兩者的封包在AP端同時到達,發生碰撞,AP無法正確解讀任何一方的數據,雙方都要重新發送。A與C對彼此而言就是所謂的「隱藏節點」——存在卻不可見。
CSMA/CA機制與碰撞成因
CSMA/CA是Wi-Fi用來共享無線頻道的核心機制,運作原理可以拆分為幾個步驟:客戶端先偵聽頻道是否空閒;若空閒則等待一段隨機的退避時間(backoff),確認期間頻道仍然空閒才發送;若偵測到頻道忙碌,則暫緩發送並延後重試。這套機制在所有裝置都能互相偵聽到的環境下運作良好,能有效把碰撞機率壓到很低。
然而隱藏節點的存在直接破壞了這套機制的前提假設。由於A與C互相偵聽不到,CSMA/CA的「先聽後講」原則對兩者之間的相對關係完全失效,兩者各自認為自己是唯一在發送的一方。距離愈遠、障礙物愈多、AP覆蓋範圍愈大,這種盲區出現的機會就愈高,碰撞亦愈頻密。碰撞一旦發生,涉及的封包都會損毀,雙方須各自等待隨機退避時間後重傳,造成頻寬浪費與延遲上升。
RTS/CTS機制如何緩解
RTS/CTS(Request to Send / Clear to Send,發送請求/清除發送)是IEEE 802.11標準中用來緩解隱藏節點問題的擴充機制。運作方式如下:
步驟 動作 作用
1 客戶端向AP發送RTS(發送請求) 宣告即將傳輸數據,申請頻道使用權
2 AP以CTS(清除發送)廣播回應 覆蓋範圍內所有客戶端都能收到CTS
3 其他客戶端收到CTS後暫緩發送 即使聽不到RTS,仍能透過CTS得知頻道已被佔用
4 發起客戶端開始傳輸數據 期間其他客戶端維持靜默,避免碰撞
關鍵在於CTS由AP發出,而AP的訊號覆蓋範圍通常比個別客戶端之間的相互覆蓋範圍更廣,因此原本互相「看不見」的隱藏節點,都能收到AP發出的CTS並得知頻道正在使用,從而避免同時發送。代價是RTS/CTS每次傳輸前都多了一輪額外的握手開銷,因此一般建議只在確認存在隱藏節點問題、或封包較大、碰撞率明顯偏高的環境下才啟用,部分裝置亦支援設定RTS門檻值,只針對超過特定大小的封包才觸發此機制。關於隱藏節點問題的定義與背景,可參考英文維基百科的Hidden node problem條目 ;CSMA/CA機制的完整運作原理,則可參考英文維基百科CSMA/CA條目 。
對吞吐量與延遲的影響
碰撞發生後,涉事的封包會全部損毀,發送端須各自等待隨機退避時間才能重傳,而重傳期間頻道仍可能被其他裝置佔用,形成連鎖延誤。碰撞愈頻密,整段網絡的有效吞吐量下降愈明顯,嚴重時可下降三成以上。延遲與抖動同時上升,對視像會議、VoIP通話或即時監控串流等時延敏感的應用影響尤其顯著,用戶感受到的往往是「畫面卡頓」「通話斷續」而非明確的網速下降。人流愈密集、同時連線裝置愈多的場所,隱藏節點造成的重傳問題就愈頻密出現。
香港場景應用
香港的大型商場、貨倉與大型屋苑會所,都是隱藏節點問題的高發環境。大型商場樓層開闊、間隔多變,加上大量結構柱、玻璃幕牆與金屬裝潢,容易令商場兩端的顧客裝置互相聽不到對方訊號;貨倉環境的貨架排列密集、堆疊高度可觀,掃描器與手持終端之間經常被貨物阻隔,若倉庫Wi-Fi只以少數高功率AP覆蓋全場,隱藏節點問題會直接影響盤點與出入庫作業的數據傳輸穩定性。大型屋苑會所空間廣闊,泳池、健身室、宴會廳等分區之間往往有牆身或樓層間隔,住戶裝置分散在不同角落,同樣容易出現互相偵聽不到的情況。
針對這類廣闊或多障礙物的場地,工程上一般不建議單純提高單一AP的發射功率去換取更大覆蓋,而是透過站點勘察(site survey)決定AP的實際佈局密度,並視乎測試結果考慮啟用RTS/CTS,在頻寬效率與傳輸穩定性之間取得平衡,讓不同角落的客戶端都能穩定接入而不互相碰撞。