有線和無線網絡在數據鏈路層的特性存在差異,具體為:
- CSMA/CD 用于有線網絡,通過檢測和處理沖突來維持網絡的穩定性。
- CSMA/CA 用于無線網絡,強調沖突的預防,以應對無線信道共享的挑戰
1 有線網 CSMA/CD
有線網 CSMA/CD (Carrier Sense Multiple Access with Collision Detection,載波偵聽多路訪問與沖突檢測)
在有線網絡中,設備間通過網線相互連接,它的工作原理是
- 載波偵聽CS:設備在發送數據之前會先監聽網絡,以檢測是否有其他設備在傳輸數據。如果檢測到網絡空閑,則開始發送數據。
- 多路復用MA:總線型網絡,許多計算機以多點接入的方式連接在一根總線上
- 沖突檢測CD: 在數據發送過程中,設備持續監聽網絡。如果檢測到沖突 (即兩個或多個設備同時發送數據導致信號混合) ,發送數據的設備會停止傳輸,并發送一個“沖突信號”以通知網絡上的其他設備。
- 重傳數據: 發生沖突后,設備會等待一段隨機的時間后再次嘗試發送數據。這個隨機等待時間稱為“退避算法”,可以有效減少后續沖突的可能性。
有線網的CSMA/CD依賴于網線共享介質,設備在數據發送的過程中,還可以檢測網線狀態
2 無線網 CSMA/CA
CSMA/CA(Carrier Sense Multiple Access with Collision Avoidance,載波偵聽多路訪問/沖突避免)
與有線網不同的是,無線網通過電磁波進行數據交互。無線是半雙工工作模式,無線客戶端沒有同時進行接收和發送的能力,無法檢測到沖突。
因此無線網使用的機制是沖突避免。
- 載波偵聽CS:設備在發送數據之前也會監聽無線信道,檢查是否有其他設備在使用。只有信道空閑,設備才會繼續執行發送操作。
- 多路復用MA:多個計算機可以同時接入
- 沖突避免CA:
- 發送請求:為了盡量避免沖突,在發送數據之前,設備可能會先發送一個“準備發送”信號 (如RTS,即請求發送) ,并等待接收設備返回“允許發送”信號 (如CTS,即清除發送) 。
- 數據發送:收到 CTS 信號后,設備才會發送數據。
- ACK確認:數據發送成功后,接收設備會發送一個確認信號 (ACK) 。如果發送設備在規定時間內沒有收到 ACK,它會認為數據丟失并重新發送。
ACK機制
- 數據幀成功發送并被接收設備接收到后,接收設備會發送一個 ACK (Acknowledgment)幀 給發送設備,表示數據成功到達。
- 如果發送設備在指定時間內未收到 ACK,它會認為數據丟失并重新發送
- 保證了數據傳輸的可靠性,避免了數據丟失后無反饋導致的傳輸失敗
RTS/CTS 機制 (Request to Send / Clear to Send)
引入“準備發送”請求 (RTS) 和“允許發送”確認 (CTS) 這兩個控制幀,在發送數據之前確保信道空閑,減少隱蔽節點問題
- RTS(Request to Send):發送設備首先向接收設備發送一個 RTS 幀,表明自己想要發送數據
- CTS (Clear to Send):接收設備在確認信道空閑后,會回復一個 CTS 幀,允許發送設備進行數據傳輸
隱藏節點與暴露節點
- 隱藏節點:在接收者AP的通信范圍內而在發送者STA1通信范圍外的節點STA2
- 暴露節點:在發送者STA1的通信范圍之內而在接收者AP通信范圍之外的節點STA2
- 問題:STA1發送時,STA2錯誤地認為不能向STA1范圍之外的接受者AP2發送
- 解決:只有當收到AP1的CTS幀時才保持安靜;若沒有收到,則說明AP1不再STA2的范圍內,此時STA2發送數據不會發到AP1,也就不會影響SAT1向AP1發送
即:收到CTS幀則靜默,沒收到則認為信道空
隨機退避算法(Random Backoff Algorithm)
當信道忙碌時,設備不會立即重新嘗試發送數據,而是會等待一個隨機的時間段后再嘗試。
- 隨機等待時間由 退避算法 (Backoff Algorithm) 決定,以減少多個設備同時再次嘗試發送數據的可能性,從而避免沖突
- 具體做法:
- 每次檢測到信道忙碌后,設備會生成一個隨機退避時間。
- 退避時間越長,設備等待的時間越久,從而分散重試時間點,降低沖突概率
- 退避時間最短的站優先發送數據幀,該最短時間稱為退避窗口
- 其他設備再次檢測到信道忙碌生成退避時間時,則新的退避時間 = 上次退避時間 - 退避窗口
幀間間隔 (Interframe Space, IFS)
用于控制設備在發送數據幀之間的等待時間,以確保無線信道的公平性和有效性。
EEE 802.11 標準定義了幾種不同類型的 IFS
- 短幀間間隔 (Short Interframe Space,SIFS)
- 用于高優先級的操作,如 ACK 確認幀、CTS 幀、以及從站的響應幀
- 確保重要數據能夠迅速傳輸而不受其他幀的干擾
- 點協調功能幀間間隔 (Point Coordination Function Interframe Space, PIFS)
- 用于集中控制模式下,接入點 (AP) 在無競爭的情況下使用,如在 PCF (點協調功能) 模式下的優先級操作
- 用于在競爭前啟動通信,以便接入點在競爭階段之前獲得信道控制權
- 分布式協調功能幀間間隔 (Distributed Coordination Function Interframe Space, DIFS)
- 用于普通數據幀的傳輸,通常在競爭環境中使用
- 正常數據幀在競爭信道時使用的間隔,確保優先級較低的設備在優先級較高的操作完成后再嘗試發送數據
- 擴展幀間間隔 (Extended Interframe Space, EIFS)
- 當一個設備接收到一個有錯誤的數據幀時,它會等待 EIFS 時間后再試圖發送數據
- 最長,避免網絡中更多的沖突或干擾發生。
- 當設備認為信道狀況不佳時,會使用更長的等待時間以減少進一步的沖突。
- NAV 是其它設備的一個時間記時器,當設備的 NAV 計時器大于零時,設備會認為信道正在被其他設備占用,因此不會嘗試進行傳輸,被禁止訪問介質。
- ACK 之后有個 DIFS (分布式協調功能幀間間隔),這是個競爭窗口,容許優先級低的設備再嘗試發送數據
載波偵聽 (Carrier Sensing)
物理載波偵聽與虛擬載波偵聽
- 物理載波偵聽:在設備發送數據之前,它會先偵聽無線信道,檢查是否有其他設備在使用該信道。如果信道空閑,設備才會繼續后續的發送操作。
- 虛擬載波偵聽:是通過網絡分配器 (如無線接入點) 來管理信道的占用情況,利用控制幀 (如 RTS/CTS)來減少沖突
網絡分配向量(Network Allocation Vector,NAV)
- 無線設備在信道上聽到某些控制幀 (如 RTS/CTS 或數據幀) 時設置的一個計時器,表示該設備預計信道會被占用的時間,設備會在 NAV 計時器歸零之前避免傳輸數據
- 一種虛擬載波偵聽機制,與物理載波偵聽相結合有助于更準確地判斷信道狀態,減少沖突
- 工作原理:
- NAV 設置: 當一個設備在無線信道上接收到某個幀 (如 RTS 或 CTS) 時,它會讀取該幀中的持續時間字段 (Duration Field) 。這個字段表示該幀預期的占用時間,包括發送數據幀和接收 ACK 所需的時間。接收設備會根據這個持續時間設置自己的 NAV 計時器
- 信道占用判斷: 當設備的 NAV 計時器大于零時,設備會認為信道正在被其他設備占用,因此不會嘗試進行傳輸。NAV 計時器歸零后,設備會再次檢查信道是否空閑,如果空閑,則可以開始自己的傳輸。
參考
- WiFi基礎(四):WiFi工作原理及WiFi接入過程