一、Medium Access Control protocol(媒質訪問控制協議MAC)
1、概念:網絡中的通信介質通常被大量節點共用,傳輸各自的數據包,而MAC協議負責協調網絡中各個節點對共用介質的訪問,在OSI七層模型中屬於數據鏈路的子層。
2、功能:① 決定節點何時可以訪問共享介質
② 解決發生在競爭節點間的潛在訪問衝突
③ 糾正物理層的通信差錯
④ 執行尋址、流量控制等任務
3、 設計考慮的因素:A:傳輸可靠性 B:能量效率
4、分類:① 無競爭介質訪問協議:使用固定分配或動態分配的方式使每個節點互斥地訪問介質。(如FDMA、CDMA)
② 基於競爭的介質訪問協議:節點在傳輸數據前先進行協商,通過競爭訪問介質。(如CSMA、ALOHA)
二、Open Systems Interconnection(開放系統互連模型OSI)
OSI模型在理論上更加清晰,但TCP/IP模型卻是當前的主流,實質上也是現行標準。TCP/IP模型將OSI模型的應用層、表示層和會話層集合成爲一個應用層,將數據鏈路層和物理層集合成爲一個數據鏈路層,使模型變得相對簡單。
作用 | OSI | 相關的網絡協議 |
---|---|---|
爲應用程序提供服務 | 應用層(Application) | HTTP、FTP、 NFS |
數據格式轉換、數據加密 | 表示層(Presentation) | Telnet, Rlogin |
建立、管理、維護會話 | 會話層(Session) | SMTP, DNS |
建立、管理、維護端到端連接 | 傳輸層(Transport) | TCP、UDP |
IP選址和路由選擇 | 網絡層(Network) | IP、ICMP |
提供介質訪問和鏈路管理 | 數據鏈路層(DataLink) | FDDI、Ethernet |
提供可靠的點到點通信 | 物理層(Physical) | IEEE802.1A、IEEE802.11 |
(物理層需要通過介質Medium實現)
TCP/IP | 與OSI模型的區別 |
---|---|
應用層 | 包含OSI中的應用層、表示層和會話層 |
傳輸層 | 對應OSI中的傳輸層 |
網絡層 | 對應OSI中的網絡層 |
數據鏈路層 | 包含OSI中的數據鏈路層和物理層 |
注意:如果想要詳細瞭解請翻閱至底部查看圖片。
三、Carrier Sense Multiple Access(載波監聽多路訪問CSMA)
1、基本思想:節點在傳輸數據前,先監聽信道是否空閒。
2、分類:WSN中的許多基於競爭的MAC協議是基於CSMA協議及其變體版本的。
① 非持續型CSMA:當無線節點在監聽到信道空閒時傳輸數據,信道繁忙時採取退避操作。
② 1-持續型CSMA:傳輸數據的節點一直處於監聽信道的活動狀態,當信道空閒時傳輸數據,如果傳輸過程發生碰撞時該節點採取退避操作,再嘗試傳輸。
③ P-持續型CSMA:傳輸數據的節點一直處於監聽信道的活動狀態,當信道空閒時,節點以概率P傳輸數據,以概率1-P延遲此次傳輸,如果傳輸過程發生碰撞時該節點採取退避操作,再嘗試傳輸。
(退避操作:隨機等待一段時間)
四、退避時間
1、在非時隙的CSMA中,隨機退避的時間是連續的。
2、在按時隙劃分的CSMA中,隨機退避的時間爲時隙的整數倍。
(時隙是電路交換匯總信息傳送的最小單位)
五、CSMA的兩種基本變體
1、基於衝突檢測的CSMA(CSMA/CD)
① 概念:發送者檢測通信介質來確定介質是否空閒來選擇傳輸數據。
② 應用:在有線系統中可以通過檢測有線電纜上的直流信號平均電壓等級來判斷是否有衝突,所以一般用於有線系統。
2、基於衝突避免的CSMA(CSMA/CA)
① 概念:採用主動避免碰撞的方式來解決衝突問題。
② 應用:可以滿足不易檢測是否有衝突發生的系統需求,所以一般用於無線系統,因爲碰撞發生在接收機端,而發送者不知道是否存在衝突。
③ 隱患:產生隱藏終端和暴露終端的問題。
六、CSMA/CA協議的技術原理
Step1: 節點監聽信道,當監聽到信道空閒時並不立即使用信道。
Step2: 節點先等待一個DIFS幀間距的時間,再等待一個隨機退避時間,由於該協議是按時隙劃分的,所以該隨機退避時間是時隙的整數倍。(分佈式幀間間隙DIFS:Distributed Inter-frame Space)
Step3: 爲防止多個節點同時接入信道,退避時間較短的節點會佔用信道。
注意點:
① 計算等待時間需要考慮DIFS幀間距的時間以及可能存在的其他節點的傳輸時間。
② 每個節點的退避時間都需要完全執行,即使在競爭時被其它節點搶先,但在 接下來的競爭中還得繼續完成剩餘的退避時間。
七、隱藏終端問題
節點B在節點A和C的通信範圍內,但節點A和C互不在通信範圍內(因爲環境導致信號衰減),導致二者都無法監聽到對方是否在發送數據,所以當A向B發送數據,C也向B發送數據的時候,節點B無法正確接收來自A和C的任何有效數據。此時,稱A和C互爲隱藏終端。
八、暴露終端問題
節點B正在傳輸數據給節點A,當節點C想要向節點D傳輸數據時,C監聽到B正在不間斷傳輸,因爲C無法判斷B是否是在給D發送數據,所以需要等待節點B傳輸結束。又因爲節點D在B的傳輸影響範圍之外,B的傳輸並不干擾D進行數據的接收,所以C的等待其實並沒有必要,反而導致了信道利用率下降的問題。此時,C稱爲B的暴露終端。(如果C先傳輸數據,那麼B稱爲C的暴露終端)