1. 程式人生 > >無線感測網MAC協議(上)

無線感測網MAC協議(上)

無線頻譜是無線行動通訊的通訊介質,是一種廣播介質,屬於稀缺資源。在無線感測器網路中,可能會有多個節點裝置同時接入通道,導致分組之間相互衝突,使接收方無法分辨出接收到的資料,浪費通道資源,吞吐量顯著下降。為了解決這些問題,就需要MAC(介質接入控制)協議。所謂MAC協議,就是通過一組規則和過程來更有效、有序和公平地使用共享介質。

在無線感測器網路中,為了實現多點通訊,由MAC(Medium Access Control)介質訪問控制層協議決定了區域性範圍無線通道的使用方式,以及多跳自組織無線感測器網路節點之間的通訊資源分配,也就是說必須實現兩大基本功能目標:在密集散佈的感測器現場能夠有助於建立起一個基本網路基礎設施所需的資料通訊鏈路;協調共享介質的訪問,以便感測器網路節點能夠公平有效地分享通訊資源。由於感測器網路獨特的資源限制和應用需求,傳統的MAC協議不再適合於無線感測器網路應用範例,如對於一個基於基礎設施的蜂窩系統,其MAC協議的設計基本目標是提供高質量的服務質量(QoS)和頻寬效率,且主要致力於資源分配策略。而無線感測器網路沒有像基站一樣的中央控制機構,況且網路節點的有效節能直接影響無線感測器網路的使用壽命,因此在設計無線感測器網路的MAC協議時,有幾個方面問題值得重點關注:能量感知和節省;網路效率(包括公平性、實時性、網路吞吐率和頻寬利用率等);可擴充套件性。儘管藍芽(Bluetooth)、移動自組織網路(MANET)和無線感測器網路在通訊基礎設施上有相似的地方,但由於網路壽命的制約,沒有哪個現存的藍芽或移動自組織網路MAC協議可以直接用在無線感測器網路。相比之下,除了節能和有效節能外,移動性管理和故障恢復策略也是無線感測器網路MAC協議首要關注的問題之一。儘管移動蜂窩網路、Ad-hoc和藍芽技術是當前主流的無線網路技術,但它們各自的MAC協議不適合無線感測器網路。GSM和CDMA中的介質訪問控制主要關心如何滿足使用者的QoS要求和節省頻寬資源,能耗是第二位的;Ad-Hoc網路則考慮如何在節點具有高度移動性的環境中建立彼此間的連結,同時兼顧一定的QoS要求,能耗也不是其首要關心的;而藍芽採用了主從式的星型拓撲結構,這本身就不適合感測器網路自組織的特點。

目前,由於研究人員針對不同的無線感測器網路應用,沒有采用統一的MAC協議分類方式,但是大體依據標準分為三種,如根據網路拓撲結構方式(分散式和集中式控制);使用單一或多通道方式;採用固定分配通道還是隨機訪問通道方式。已有參考文獻也將無線感測器網路MAC協議分為三類:確定性分配、競爭佔用和隨機訪問。前兩者不是感測器網路的理想選擇。因為TDMA固定時隙的傳送模式功耗過大,為了節省功耗,空閒狀態應關閉發射機。競爭佔用方案需要實時監測通道狀態也不是一種合理的選擇。隨機介質訪問模式比較適合於無線感測網路的節能要求。本書採用的是根據通道分配使用方式將無線感測器網路MAC協議分為基於無線通道隨機競爭方式和時分複用方式及基於時分和頻分複用等其他混合方式三種。

1) 無線通道隨機競爭接入方式(CSMA)

節點需要傳送資料時採用隨機方式使用無線通道,典型的如採用載波監聽多路訪問(CSMA)的MAC協議,需要注意隱藏終端和暴露終端問題,儘量減少節點間的干擾。

2) 無線通道時分複用無競爭接入方式(TDMA)

採用時分複用(TDMA)方式給每個節點分配了一個固定的無線通道使用時段,可以有效避免節點間的干擾。

3) 無線通道時分/頻分/碼分等混合複用接入方式(TDMA/FDMA/CDMA)

通過混合採用時分和頻分或碼分等複用方式,實現節點間的無衝突通道分配策略。

1 基於競爭的MAC協議

基於無線通道隨機競爭方式的MAC協議採用按需使用通道的方式,主要思想就是當節點有資料傳送請求時,通過競爭方式佔用無線通道,當傳送資料發生衝突時,按照某種策略(如IEEE802.11 MAC協議的分散式協調工作模式DCF採用的是二進位制退避重傳機制)重發資料,直到資料傳送成功或徹底放棄傳送資料。由於在IEEE802.11 MAC協議基礎上,研究者們提出了多個適合無線感測器網路的基於競爭的MAC協議,故本小節重點介紹IEEE802.11 MAC協議及近期提出改進的無線感測器網路MAC協議。

1.IEEE802.11 MAC協議

IEEE 802.11 MAC協議是IEEE 802.11無線區域網(WLAN)標準的一部分(另一部分是物理層規範)。其主要功能是通道分配、協議資料單元(PDU)定址、組幀、糾檢錯、分組分片和重組等。IEEE 802.11 MAC協議有兩種工作方式:一種是分散式協調功能(Distributed Coordination ,DCF);另一種是中心點協調功能(Point Coordination,PCF)。由於DCF是採用競爭接入通道的方式,而且目前IEEE 802.11 WLAN有比較成熟的標準和產品,所以目前在無線感測器網路研究領域,很多的測試和模擬分析都基於這種方式。由於在無線通道中難以檢測到訊號的衝突,故只能採用隨機退避機制來減小資料衝突的概率。在DCF方式下,節點採用CSMA/CA機制和隨機退避等待時間演算法實現無線通道共享。對於單向通訊都採用立即主動確認機制(ACK幀),即當沒有收到ACK幀,則傳送方會繼續重傳資料。而PCF方式是基於優先順序的無競爭訪問,通過訪問接入點協調節點的資料收發,通過輪詢方式查詢當前哪些節點有傳送資料請求,並在適當時候給予節點資料傳送權。

DCF是用於支援非同步資料傳輸的基本接入方式,它以“盡力而為”(Best Effort)方式工作。DCF實際上就是CSMA/CA(帶衝突避免的載波偵聽多址接入)協議。為什麼不用CSMA/CD協議呢?因為衝突發生在接收節點,一個移動節點在傳輸的同時不能聽到通道發生了衝突,自己發出的訊號淹沒了其他的訊號,所以衝突檢測無法工作。DCF的載波偵聽有兩種實現方法:第一種實現是在空中介面,稱為物理載波偵聽;第二種實現是在MAC層,稱為虛擬載波偵聽。物理載波偵聽通過檢測來自其他節點的訊號強度,判別通道的忙閒狀況。

節點通過將MAC層協議資料單元(MPDU)的持續時間放到RTS、CTS和DATA幀頭部來實現虛擬載波偵聽。MPDU是指從MAC層傳到物理層的一個完整的資料單元,它包含頭部、淨荷和32bit的CRC(迴圈冗餘校驗)碼。持續期欄位表示目前的幀結束以後,通道用來成功完成資料傳送的時間。移動節點通過這個欄位調節網路分配向量(NetworkAllocation Vector,NAV)。NAV表示目前傳送完成需要的時間。無論是物理載波偵聽還是虛擬載波偵聽,只要其中一種方式表明通道忙,就將通道標註為“忙”。

接入無線通道優先順序用幀之間的間隔表示,稱做IFS(Inter Space),它是傳輸通道強制的空閒時段。DCF方式中的IFS有兩種:其一為SIFS(Short IFS);另一個為DIFS(DCF-IFS),DIFS大於SIFS。一個移動節點如果只需要等待SIFS時間,就會比等待DIFS時間的節點優先接入通道,因為前者等待的時間更短。對於DCF基本接入方式(沒有使用RTS/CTS互動),如果移動節點偵聽到通道空閒,它還需要等待DIFS時間,然後繼續偵聽通道。如果此時通道繼續空閒,那麼移動節點就可以開始MPDU的傳送。接收節點計算校驗和確定收到的分組是否正確無誤。一旦接收節點正確地接收到了分組,將等待SIFS時間後回覆一個確認幀(ACK)給傳送節點,以此表明已經成功接收到資料幀。如圖3-1所示表明在DCF基本接入方式中,成功傳送一個數據幀的時序圖。當一個數據幀傳送出去的時候,其持續期欄位讓聽到這個幀的節點(目的節點除外)知道通道的忙時間,然後調整各自的網路分配向量NAV。這個NAV裡也包含了一個SIFS時間和後續的ACK持續期。
一個節點無法知道自己的傳送產生了衝突,所以即使衝突產生,也會將MPDU傳送完。假如MPDU很大,就會浪費寶貴的通道頻寬資源。解決的辦法是在MPDU傳送之前,採用RTS/CTS控制幀實現通道頻寬的預留,減少衝突造成的頻寬浪費。因為RTS為20位元組,CTS為14位元組,而資料幀的最大為2346位元組,所以RTS/CTS相對較小。如果源節點要競爭通道,則首先發送RTS幀,周圍聽到RTS的節點從中解讀出等待的持續時間欄位,相應地設定這些節點的網路分配向量NAV。經過SIFS時間以後,目的節點發送CTS幀。周圍聽到CTS的節點從中解讀出等待的持續時間欄位,相應地更新它們的網路分配向量NAV。一旦成功地收到CTS,經過SIFS時間,源節點就會發送MPDU。周圍節點通過RTS和CTS頭部中的持續期欄位更新自己的NAV,可以緩解“隱藏終端”問題。如圖3-2所示表示了 RTS/CTS互動,然後傳送MPDU的時序圖。移動節點可以選擇不使用RTS/CTS,也可以要求只有在MPDU超過一定的大小時才使用RTS/CTS,或者不管什麼情況下均使用RTS/CTS。一旦衝突發生在RTS或者CTS,頻寬的損失也是很小的。然而,對於低負荷的通道,RTS/CTS的開銷會增加時延。
在大的MPDU從邏輯鏈路層傳到MAC層以後,為了增加傳輸的可靠性,會將其分片(Fragment)傳送。那麼怎樣確定是否進行分片呢?使用者可以設定一個分片閾值(Fragment_Threshold),一旦MPDU超過這個閾值就將其分成多個片段,片段的大小和分片閾值相等,其中最後一個片段是變長的,一般小於分片閾值。當一個MPDU被分片以後,所有的片段按順序傳送,如圖3-3所示。通道只有在所有的片段傳送完畢或者目的節點沒有收到其中一個片段的確認(ACK)的時候才被釋放。目的節點每接收到一個片段都向源節點回送一個ACK。源節點每收到一個ACK,經過SIFS時間,再發送另外一個數據幀片段。所以,在整個資料幀的傳輸過程中,源節點一直通過間隔SIFS時間產生的優先順序來維持通道的控制。如果已經發送的資料幀片段沒有得到確認,源節點就停止傳送過程,重新開始競爭接入通道。一旦接入通道,源節點就從最後未得到確認的資料片段開始傳送。如果分片傳送資料的時候使用RTS/CTS互動,那麼只有在第一個資料片段傳送的時候才進行。RTS/CTS頭部中的持續期只到第一個片段的ACK被接收到為止。此後其他周圍的節點從後續的片段中提取持續期,來更新自己的網路分配向量NAV。
CSMA/CA的衝突避免的功能由隨機指數退避過程實現。如果一個移動節點準備傳送一個數據幀,並且偵聽到通道忙,節點就一直等待,直到通道空閒了DIFS時間為止,接著計算隨機退避時間。在IEEE 802.11標準中,時間用劃分的時隙表示。在時隙ALOHA中,時隙和一個完整分組的傳輸時間相同。但是在IEEE 802.11中,時隙遠比MPDU要小得多,與SIF時間相同,被用來定義退避時間。需要注意的是,時隙的大小和具體的硬體實現有關,通常包括髮射啟動時間、介質傳播時間及檢測通道的響應時間等。這裡將隨機退避時間定義為時隙的整數倍。開始時,在[0,7]範圍內選擇一個整數,當通道空閒了DIFS時間以後,節點用定時器記錄消耗的退避時間,一直到通道重新忙或者退避時間定時器超時為止。如果通道重新忙,並且退避時間定時器沒有超時,節點就將凍結定時器。當定時器時間減到零時,節點就開始傳送資料資訊幀。假如兩個鄰近或者更多個鄰近節點的定時器時間同時減到零,就會發生衝突。每個節點必須在[O,15]範圍裡面,隨機選擇一個整數作為退避時間。對於每一次重傳,退避時間按22+irandom()增長,其中i是節點連續嘗試傳送一個MPDU的次數。經過DIFS空閒時間以後的退避時間稱為競爭視窗(ContentionWindows,CW),CW是處於標準規定的aCWmin和aCWmax之間的整數隨機數。這種競爭通道的方式的優點是提高了節點之間的公平性。一個節點每當傳送MPDU的時候,都需要重新競爭通道。經過DIFS時間之後,每個節點都有同樣的概率接入通道。當多個節點推遲且進入隨機退避時,利用隨機函式選擇最小退避時間的節點作為競爭優勝者,從而佔用共享通道資源傳送資料。

相關推薦

無線感測MAC協議

無線頻譜是無線行動通訊的通訊介質,是一種廣播介質,屬於稀缺資源。在無線感測器網路中,可能會有多個節點裝置同時接入通道,導致分組之間相互衝突,使接收方無法分辨出接收到的資料,浪費通道資源,吞吐量顯著下降。為了解決這些問題,就需要MAC(介質接入控制)協議。所謂MA

無線感測網路由協議

(一)概述 一、無線感測器路由協議的特點與要求 1、特點 無線感測網路由協議負責將分組從源節點通過網路節點轉發到目的節點,它主要包括兩個方面的功能:①尋找源節點和目的節點間的優化路徑 ②將資料分組沿著優化路徑正確轉發 無線感測路由協議具有以下特點: (1)能量優先。傳統路由

python3+django2 開發易語言絡驗證

程序 技術 paths client 默認值 格式 width django https 創作背景:   在某論壇中下載到一套php開發易語言網絡驗證的教程,照著看下來,花了兩天的時間,結果發現教程裏開發的網絡驗證,以及隨著教程一起給學員的源碼,都存在著根本用不了的bug!

趣談網路協議TCP協議

TCP包頭格式 (1)目標埠號和源埠號。如果沒有這兩個埠號,資料就不知道該發給哪個應用 (2)序號。為了解決亂序的問題 (3)確認序號。解決不丟包的問題 (4)掌握TCP協議,重點關注以下幾個問題 順序問題,穩重不亂 丟包問題,承諾靠譜 連線維護

構造ARP協議

       拿TCP幀來說,構造一幀網路資料的時候,應用層的原始資料,被不同的層封裝,最後發到網路上。        從層的角度來看,TCP和UDP都是工作在運輸層的,而ARP是工作在資料鏈路層的。即ARP在

網路協議 8 - TCP協議:性惡就要套路深

系列文章: 網路協議 1 - 概述 網路協議 2 - IP 是怎麼來,又是怎麼沒的? 網路協議 3 - 從物理層到 MAC 層 網路協議 4 - 交換機與 VLAN:辦公室太複雜,我要回學校 網路協議 5 - ICMP 與 ping:投石問路的偵察兵 網路協議 6 - 路由協議:敢

從0到1,教你快速掌握“KOL紅營銷”

隨著社交平臺的廣泛普及,KOL(網紅)身上隱藏的巨大流量潛力逐漸被髮掘,與明星相比更具親和力,產品的推廣更自然,號召力也絲毫不遜色,那麼如何通過社交媒體“網紅”打造爆款成為眾多賣家的一大痛點。 網紅營銷在亞馬遜賣家當中一直都是熱門引流渠道,許多賣家在決定做站外引流的時候,第一時間就會想到

用雙十一的故事串起碎片的網路協議

作者:劉超在經濟學領域,有個倫納德·裡德(Leonard E. Read)創作的《鉛筆的故事》。這個故事通過一個鉛筆的誕生過程,來講述複雜的經濟學理論。這裡,我也用一個下單的過程,看看網際網路世界的執行過程中,都使用了哪些網路協議。我把這個過程分為十個階段,從雲平臺中搭建一個

自建內郵箱伺服器

自建郵箱伺服器 工具:隨便一個虛擬機器,能聯網即可。這裡使用的域名tg.zyy,也是為了紀念我高中的女神zyy而創的O(∩_∩)O~ 1、概述 沒人喜歡廢話,安裝centos跳過,這裡使用

刨根問底 HTTP 和 WebSocket 協議

HTTP vs WebSocket 那天和boss聊天,不經意間提到了Meteor,然後聊到了WebSocket,然後就有了以下對話,不得不說,看問題的方式不同,看到的東西也會大不相同。 A:Meteor是一個很新的開發框架,我覺得它設計得十分巧妙。 B:怎麼個巧

TCP協議:性惡就要套路深

系列文章:     上次說了“性本善”的 UDP 協議,這哥們秉承“網之初,性本善,不丟包,不亂序”的原則,徜徉在網路世界中。     與之相對應的,TCP 就像是老大哥一樣,瞭解了社會的殘酷,變得複雜而成熟,秉承“性惡論”。它認為網路環境是惡劣的,丟包、亂序、重傳、擁塞都是常有的事兒,一言不合可能就會丟

zigbee無線感測實訓---zigbee顯示溫溼度以及連線LCD開發板顯示溫溼度The Eighth day

一、實驗準備器材如圖:              二:步驟 ===============================一、裸機開發-IO控制=========================== 1.1 控制流程     (1)檢視原理圖           

zigbee無線感測實訓---實現LCD開發板連線攝像頭實時顯示The Fifth day

攝像頭:         常見的攝像頭:針孔攝像頭(有線和無線)、紅外攝像頭(有線),usb攝像頭;         攝像頭採集影象的格式:yuyv 、jpeg(v4l2) api_v4l2.h /*********************************

X210移植MTK7601無線絡卡驅動

1、MTK7601 聯發科的低成本wifi解決方案。 2、無線網絡卡的配置和使用 (1)常用無線網絡卡工具介紹:iwconfig、iwlist、iwpriv、wpa_supplicant (2)常見WIFI加密格式介紹和路由器端檢視:WEP、WPA (3)wpa_s

使用絡監視器IRSI捕捉和分析協議數據包

命令 net 開頭 下載 類型 封裝 源地址 記錄 .net 轉載請註明原地址。 實驗名稱: 理解子網掩碼、網關和ARP協議的作用 一、實驗目的和要求 (1) 熟悉IRIS的使用 (2) 驗證各種協議數據包格式 (

TCP/IP協議2絡設備

數據包 服務器 網絡設備 風暴 二層交換機 不同的 中繼器 tcp/ip 解決 1、中繼器(Repeater) 中繼器工作在OSI的一層,我們知道,超5類線的傳輸距離最大為100米,超過這個距離信號就會衰減,中繼器就是為了防止信號變差,將網絡信號進行再生和重定時。 2、

HTTP協議——了解Web及絡基礎

協議 http web 一、使用HTTP協議訪問Web Web頁面不會憑空顯示出來,根據Web瀏覽器地址欄中指定的URL,Web瀏覽器從Web服務器獲取文件資源等信息,從而顯示出Web頁面。 像這種通過發送請求獲取服務器資源的Web瀏覽器等,都可稱為客戶端。本文出自 “IT菜鳥” 博客

慕課 星級評分原理和實現

方法 click down cti 原理 als row rep ava 源碼下載 <!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8">

如何利用Python絡爬蟲抓取微信朋友圈的動態

Python 網絡爬蟲 微信 朋友圈 Python開發 今天小編給大家分享一下如何利用Python網絡爬蟲抓取微信朋友圈的動態信息,實際上如果單獨的去爬取朋友圈的話,難度會非常大,因為微信沒有提供向網易雲音樂這樣的API接口,所以很容易找不到門。不過不要慌,小編在網上找到了第三方工具,它可

vue慕課音樂項目手記:5-手寫滾動輪播圖

flow overflow box cor 慕課 efs PE osi 通過 在這一節,會封裝一些公用的函數來添加classname,改變image的寬度。 具體如下: 首先:封裝一個slider的組件 <template> <div cl