為什麼有線網卡可以一邊發送一邊監聽,無線網卡卻很難實現?
01-02
普通100M有線網卡是怎麼實現一邊發送一邊監聽的?為什麼802.11n的無線網卡難以實現?
有線網的情況下是採用CSMA/CD-衝突檢測的MAC層協議,當Tx發送信號的時候,同時監聽其自己的信號,其實現方案簡單可以理解成,發送方Tx單獨拉了一條線並聯到其發送端,通過這樣的方法可以邊發送邊檢測是否發送傳輸錯誤,所以叫做衝突檢測機制。實際上這裡也是由於其物理層支持全雙工機制導致可以進行衝突檢測。無線網的情況下,若AP只有一根天線,這一根天線同一個時刻只能做發送或者接收一個動作,所以無法同時發送與監聽,其發送和接收是分時操作的,通過一個小開關進行切換,在802.11協議中,一般切換時間是4us(具體時間可以查SLOT內部的結構,SLOT由三個部分組成,1.CCA,做信道檢測,一般4us,2.無線傳播延遲,電磁波的傳播延遲,好像是2us,3.天線的發送和接收轉換,4us。)。那麼一個簡單的想法就是,若AP有兩根天線,這樣的情況下,一根天線就發送,一根天線做監聽即可。但是實際上這個也是不可行的,其原因在於當發送天線發送的時候,由於無線信道是廣播的形式,且具有信道具有衰落特性,這樣的情況下,本地的監聽實際上無法得知對方接受信號時候是否存在錯誤,即無法監聽,同時也沒有辦法監聽到對方的反饋信號(這裡反饋信號具體可對照查CSMA/CD中的Jamming信號,在無線的情況下,即是反饋這個Jamming信號也無法被發送者收到,其信號由於衰落,會淹沒於自身發送天線的強信號之下)。所以即使採用兩根天線的形式,也是無法做到邊發送邊監聽的。
同時這裡監聽與發送同時是一個無線網路的通用問題,不僅僅是在802.11n的情況下才出現的,當然學術上也提供了一些設計,可以做到邊發送邊監聽,或者全雙工之類的技術。然後其成本之類的還是比較高,且使用場景有限,所以實際情況下,邊發送邊監聽還是做不到的。故802.11無線協議中採用CSMA/CA的接入協議,而不是CSMA/CD,詳細內容可以具體查閱這兩個協議的區別。
因為一台無線設備只能在一個頻率上進行發送和接受,更具體的原因是因為無線區域網環境中採用的隨機多址接入協議會導致不同終端間的碰撞,碰撞後需要重新進行傳輸數據。而有線網卡每個終端有固定信道,無線信道是開放共用多個終端的。具體就不展開了,樓主想要了解更深入可搜索 終端暴露 終端隱藏問題。
有線連接相對於無線連接,有線信號衰減是個相對小的比例關係,1/2或者更小一點可以認為無法檢測到無用信號,一般百米網線帶來的衰減也是比較小的,而無線接收的信號範圍使一個比較寬的範圍,接收動態範圍往往有100dB,這個相當於10^10的信號強度比例,當無線網卡發射時,其發射功率強大於接收信號非常高的比例,使得小信號疊加在大信號上妙無蹤跡,因而無法進行監聽。
同時有線接入使得接入設備形成了一個明確的界限,而無線設備因為信號的衰減受環境影響,使一個不明確的界限,無法用地理距離(空間)確定,甚至在時間上不同時間的界限也會不用。因而存在一些隱藏節點(對於發射節點處於信號干擾範圍外,對於接收節點處於信號干擾範圍內),所以單純由發射節點判斷信道忙閑並不代表接收節點的信道忙閑。
因而在IEEE802.11中採用CSMA/CA的方式來避免衝突。
推薦閱讀: