僅當一台路由器中有多個無線電時,Wifi 性能才會變慢
我有這樣的無線網路設置:
Laptop \ | Wifi Router A | Wifi Router B | Wifi Router C | \ | / \ | / \ | / \ | \|wlan0 wlan1----wlan0 wlan1-----wlan0 eth0--| |hostapd managed mode | hostapd managed mode | AP Internet|
所以基本上是筆記型電腦的直線 -> 路由器 A -> 路由器 B -> 路由器 C -> 網際網路。
路由器 A 和 B 有兩個 802.11a 無線電,是具有高功率無線電(Ubiquiti 600mW)的嵌入式 linux 板。路由器 C 是 Linksys E2500,通過乙太網連接到 Internet。沒有使用橋接,只有簡單的 IP 路由。
所有 wifi 連接都有很好的信號(至少 -60dBm)和非常低的噪音(-99dBm)。
對於速度測試,我使用具有大視窗大小 (3MB) 和 10 個並行連接的 iperf,傳輸時間為 100-240 秒。
筆記型電腦在它和路由器 B 之間始終獲得 6-8mbps 的結果(上傳和下載)。我在 wifi 端嘗試了許多不同的設置更改,似乎沒有任何影響性能,我什至檢查了介面上的硬體接收/校驗和解除安裝等內容,這些設置也沒有任何區別。
但是,如果我在筆記型電腦和路由器 A 之間進行測試,我會得到大約 30mbps。路由器 A 和路由器 B 之間的測試也遠遠超過 25mbps。但是當筆記型電腦必須遍歷多個無線電時,性能非常糟糕(6-8mbps)。我通過用乙太網電纜替換路由器 A 和路由器 B 之間的鏈路來測試我的理論,然後從筆記型電腦到路由器 B 的速度測試增加了一倍以上,始終達到 25-28mbps。
當數據包通過路由器中的多個無線電發送時,為什麼性能如此糟糕?
更新:
我想要實現的是在將 AP 與乙太網連接時獲得的最終使用者客戶端網路性能(筆記型電腦)……沒有這樣做。
我意識到 wifi 是半雙工的,鏈中的無線電越多,性能就越差。
是否可以使用單獨的無線電進行發送和接收來解決問題?
我在每塊板上有 4 個 mini-pci 插槽。
當然,經過這麼多次遍歷,性能會下降。無線電是一種共享介質(半雙工),可能會發生衝突,為了避免它們,Wi-Fi 使用 CSMA/CA。你的表現至少會下降一半以上。每個客戶端都會增加延遲
我認為將一個無線電板分開作為 Tx 和一個作為 Rx 是不可行的,因為這會導致通過 PCI 背板的大量流量。
同樣,我懷疑無論出於何種原因,很多問題都是由所述背板的大量流量引起的,導致您認為是延遲。
如果我正在設計一個類似的系統(我以無線網路為生
$$ kinda $$).. 我會將每個建築物的鏈路無線電(即入站和出站對)分開到單獨的物理盒子中,並通過千兆乙太網背靠背連接。 這將產生允許網路適配器和網路硬體處理無線電間、AP 內流量的效果,我懷疑這可能是瓶頸。沒有更多資訊,很難真正做出良好的診斷。也很難詢問任何資訊,因為坦率地說,我不知道。那句古老的格言,你不知道你在尋找什麼,但當你找到它時就會知道。
也就是說,我不知道這些路由器板是否公開了背板流量等統計資訊。
Alex 也有一些要點,雖然我不相信 CSMA/CA(不應該是 /CD 嗎?),但它總是有可能的。無線通信本質上是有損耗的,並且重複這樣的信號與影印複印件或複製 VHS 磁帶沒有什麼不同(還記得嗎?;)。
回顧一下,我通常不喜歡在同一個板上有兩個無線電的想法,並會嘗試將它們分成不同的物理設備,通過乙太網互連。
YMMV。