專利名稱:IPv6微型傳感路由器協議棧體系結構及實現方法
技術領域:
本發明主要提出一種適用于無線傳感器網絡的IPv6微型傳感路由器協議棧體系結構及實現方法,屬于無線傳感器網絡技術領域。
背景技術:
現有的隨著微電子技術、計算機網絡技術和通信技術的發展,無線傳感器網絡日漸成為互聯網領域研究的熱點之一。無線傳感器網絡是由監視區內數量眾多的低速率、低功耗、低成本、低復雜度的微型傳感器節點構成的自組織系統,是一種采用無線通信方式、動態組網的多跳移動性對等網絡。傳感器網絡以微型傳感器節點為中心,傳感器節點一般具備數據處理和通信能力,并利用節點附帶的傳感電路對周圍有關地環境條件進行測量并將它們轉化為電信號,由傳感器根據所在目標和它周圍發生事件的特性對于這些信號進行處理。傳感器網絡可以實現數據的采集融合、傳輸和遠程控制訪問,它廣泛應用于軍事、智能家居、環境監測和預報、醫療護理、建筑物狀態監控、工業控制等領域,利用各種傳感器感測溫度、聲音、脈搏、壓力等狀態參數,提供用戶所需信息,從而提高人們的生活質量和工作效率。
無線傳感器網絡是一種自組織的網絡系統,其目的是協作地感知、采集和處理網絡覆蓋區域中感知對象的信息,并發送給觀察者,極大地擴展現有網絡地功能和人類認識世界的能力。無線傳感器網絡被稱為全球未來的三大高新科技產業之一。對于傳感器網絡的研究,加州伯克利大學的PrcoRadio以及麻省理工的μAMPS都有成型的體系結構。
圖1顯示細化的無線傳感器網絡體系結構。物理層提供傳感、載波偵聽以及簡單的發送和接收模塊;數據鏈路層提供介質訪問、差錯控制和幀檢測功能;傳感應用協議棧主要包括傳輸控制和數據采集,其中路由協議是傳輸控制的一部分,另外能量管理、系統管理、安全和計時需要應用協議棧以及數據鏈路層的支持。
無線傳感器網絡路由協議重點考慮能量消耗,只基于局部的拓撲信息進行選擇合適的路徑,并且傳感器網絡的路由協議與應用程序具有很強的相關性,不同的應用中路由協議差別很大。
傳統的傳感器網絡的體系結構存在以下的缺陷
對于傳統的傳感器網絡而言,無線傳感器網絡被認為是一種以數據為中心的網絡,不利于將傳感器網絡無處不在、靈活、高效等優點與下一代互聯網相融合,這樣使得傳感器網絡只能進行局部的應用,不利于形成泛在的傳感器網絡
傳統的傳感器網絡不利于發揮分層體系結構的優勢,很難完成真正端到端通信。對于重要的數據通信缺乏通信機制保障
路由協議基于局部的拓撲信息進行選路,需要維護大量的具備拓撲信息,增加了通信量和能量消耗
與應用程序相關的路由協議,實際應用的擴展性不高。例如,在傳感區域內重新布置新的應用節點,無法充分利用原有應用的路由。傳統IPv6路由器協議棧體系結構
近幾年來,全球信息化的步伐明顯加快,Internet發展與應用更是日新月異。IPv6作為下一代互聯網的基本協議,能夠在更廣泛地意義上使連接到Internet上的所有網絡設備實現相互通信。Internet發展如此之快,其核心部件——路由器功不可沒。路由器是一個帶有多個接口的可以轉發數據包的特殊計算機。它是一種典型的網絡層設備,主要功能是進行路由計算和數據包的轉發。其中,路由的計算是指為數據包選擇一條從源地址到目的地址的最佳路徑。因此,如何選擇簡單、高效的路由將成為IPv6網絡是否能夠高效運行的決定因素之一。對于協議棧體系結構而言,傳統IPv6無線路由器采用硬件平臺的抽象與實現IPv6協議棧軟件相結合的方法實現。協議棧軟件又分為與硬件相關部分、與硬件無關部分和管理配置單元三個方面與硬件無關部分包括轉發引擎、報文處理、轉發處理、其他處理、數據發送等模塊;與硬件相關部分則包括數據接收、消息處理、任務管理、實時處理部分,此外還應包含維持系統運行的文件系統和內存管理模塊;管理配置主要用于修改硬件相關部分抽象的參數,使我們的協議棧軟件在不同的硬件平臺上運行。圖2顯示了IPv6路由器整個協議棧的體系結構。IPv6路由器協議棧軟件實現RIPng、OSPFv3、BGP4+等動態路由協議等。
對于路由協議,無線自組織網絡Ad-Hoc廣泛使用一種按需驅動的路由協議AODV(Ad-hoc On Demand Distance Vector),它定義了RREQ、RREP、RERR和RREP-ACK四種報文類型,每種報文類型具有復雜報文字段,對應四種報文類型的大小為24字節、20字節、12+8n(n為不可達目的地址的個數)字節和2字節。并且AODV在RREP報文中定義了Hello消息格式,用來判斷鄰居節點是否可靠。如果在一定時間內沒有收到鄰居節點的Hello報文則認為鄰居節點不可靠,則進行路由維護。
傳統IPv6路由器的協議棧的體系結構以及設計與實現不適用于IPv6泛在傳感器網絡,主要體現在如下幾個方面
IPv6路由器協議棧的體系結構主要為路由器的路由計算和轉發功能設計的,而在無線傳感器網絡中,每種具有路由功能的傳感器節點還需具備數據采集和處理等傳感功能,傳統IPv6路由器協議棧不具有主動數據處理和發送所需要的傳輸層與應用層框架和接口;
IPv6路由器協議棧設計過程主要考慮路由器的處理速度、轉發延遲、數據吞吐量,而傳感器網絡節點具有低速率、低功耗、低成本、低復雜度的特點,協議的設計必須兼顧功耗低、成本廉價和簡單。傳統上的IPv6路由器協議棧無法滿足傳感器網絡這一重要特性。
IPv6路由器的路由設計主要考慮路由的穩定性,因此路由協議的選路策略相當復雜,并采取定時更新的策略保證路由的穩定和數據轉發的效率,以及路由通告策略保證路由表一致性。但是這些路由機制增加無線傳感器網絡的通信負載,造成能量的損耗。
IPv6路由器協議棧的體系結構中路由協議需要在IPv6的支持,從而實現路由通告和數據包轉發,但是傳感器網絡的路由建立過程是在傳感器網絡內部實現的,與Internet互連由傳感器網絡匯聚點完成,因此由IPv6實現的路由協議報文格式復雜,增加傳感器節點接收和發送比特數,造成能量的損耗。
AODV路由協議報文格式復雜,根據傳感器節點能量消耗情況來看,傳送1比特信息100m距離需要的能量大約相當于執行3000條指令消耗的能量,不利于減少傳感器節點的能耗;AODV路由協議維護過程復雜,增加了節點處理報文的復雜度;另外采用Hello報文判斷鄰居節點的可靠性,既增加了能量的消耗,又導致傳感器網絡內廣播風暴,造成數據的阻塞。
發明內容
為了克服現有技術結構的不足,實現傳感器網絡與IPv6相結合,使傳感器網絡真正成為下一代互聯網的一部分,本發明提出一種IPv6微型傳感路由器協議棧體系結構及實現方法,設計并實現該體系結構關鍵部分——微型傳感路由器協議棧的工作機制。本發明方案可以部署在低硬件資源且無操作系統支持的嵌入式平臺中,全面支持IEEE802.15.4標準規范,既可以實現傳感器網絡的數據采集、動態路由、數據融合、網絡管理、安全認證、自動定位等功能,又可以使傳感器節點設備接入互聯網,與用戶終端實現端對端的通信。
一種適用于傳感器網絡環境的微型傳感路由器的體系結構
微型傳感路由器體系結構自下而上包括IEEE802.15.4物理層、IEEE802.15.4介質訪問控制層、適配層、微型傳感路由器協議棧和應用層。
IEEE802.15.4物理層和IEEE802.15.4介質訪問層符合IEEE802.15.4工作組針對低速無線個人區域網絡制定的標準,為低速率、低能耗、低成本的設備之間提供統一的物理層和介質訪問控制接口。
適配層符合因特網工程任務組(IETF)的6Lowpan工作組針對無線個人區域網絡架構IPv6協議提出的工作組草案,它提供IPv6微型協議棧和IPv6微型傳感路由協議的處理接口,并且負責將兩種協議的數據遞交到IEEE802.15.4介質訪問層和IEEE802.15.4物理層進行封裝、調制和發送。
微型傳感路由器協議棧是微型傳感路由器體系結構的核心和關鍵部分。它包含兩部分IPv6微型協議棧和IPv6微型傳感路由協議,IPv6微型協議棧提供應用層數據的IPv6封裝和解析,實現與現有TCP/IPv6協議體系的網絡進行通信;IPv6微型傳感路由協議是本發明提出的一種適用于傳感器網絡環境的路由協議,用于傳感器網絡內數據傳輸時建立和維護路由。
應用層應用層是傳感器網絡節點提供各種傳感應用程序服務的集合,主要包括數據采集與融合、定位、跟蹤、網絡管理等。
一種IPv6微型傳感路由器協議棧體系結構實現方法
技術領域:
本發明在提出的微型傳感路由器體系結構的基礎上,設計與實現該體系結構的關鍵部分——微型傳感路由器協議棧。主要包括一種IPv6微型協議棧和一種IPv6微型傳感路由協議;
一種IPv6微型協議棧,本發明的IPv6微型協議棧主要包括
(1)精簡TCP/IPv6協議棧,設計IPv6、ICMPv6、ND、TCP和UDP協議處理流程并且滿足嵌入式系統低存儲、低復雜特性;
(2)獨立于操作系統的調度方案,完成協議棧之間調度處理傳感應用數據;
(3)最大容限控制的內存分配方式,保存協議棧發送、接收的報文和應用程序生成的數據。
步驟(1)精簡TCP/IPv6協議棧,實現傳感器節點與現有TCP/IPv6終端進行端對端通信,主要包括以下方面
(a)精簡IPv6協議IPv6基本報頭簡化流量類別和流標簽字段處理,同時由于適應層具有跳數限制字段,忽略對跳數字段檢查;
(b)精簡ICMPv6協議ICMPv6負責診斷網絡狀態,包括兩種ICMPv6錯誤消息和ICMPv6信息消息類型。為了減少協議棧的大小,ICMPv6只處理ICMPv6信息消息,對于ICMPv6錯誤消息不進行處理;
(c)精簡ND協議ND協議由ICMPv6協議進行封裝,處理路由器請求、路由器通告、鄰居請求、鄰居通告和ICMP重定向五種選項類型報文格式。由于路由器請求、路由器通告和重定向消息功能由微型傳感路由協議完成,精簡的ND協議只處理鄰居請求和鄰居通告兩種報文格式;
(d)精簡UDP協議協議棧簡化UDP協議調度過程,維護UDP偵聽端口和UDP連接表,用來填充UDP報文中源端口和目的端口字段;
(e)精簡TCP協議根據TCP協議11種基本狀態變化進行TCP流程處理,并且維護TCP偵聽端口列表和TCP連接表,用來填充源端口、目的端口、序列號和確認號字段,取消軟件錯誤報告機制和報文統計機制;不使用滑動窗口機制而使用固定窗口大小32768來接收和發送數據;去掉了對TCP服務類型TOS和安全選項的支持。
步驟(2)在傳感器節點上配置操作系統對硬件的要求很高,為了節約硬件的存儲空間和處理能耗,本發明的協議棧獨立于操作系統的調度數據幀由硬件中斷進行接收,由IEEE802.15.4物理層和介質訪問控制層解析出協議棧數據的負載,在適配層調度IPv6接收函數,解析IPv6基本報頭之后,判斷下一個報頭字段,主動調度下一個協議處理函數。協議棧報頭處理完畢后,由面向數據類型的應用程序接口對不同類型的傳感數據進行處理。
步驟(3)基于上述的調度方式,需要一種存儲機制來保存發送和接收處理的數據包。為了減少嵌入式系統動態分配內存產生的內存碎片,本發明設定兩個全局變量數組inBUF和outBUF分別保存接收和發送處理的數據包,根據IEEE802.15.4數據幀大小規定,分配inBUF和outBUF102個字節,進行封裝和解析不同協議數據。
一種IPv6微型傳感路由協議。本發明設計的適用于傳感器網絡環境的IPv6微型傳感路由協議主要包括
(1)定義傳感路由協議的三種報文格式,用于發送請求和維護路由消息;
(2)一種以入口表和路由表相結合的雙表項傳感路由機制,用于處理和存儲路由消息;
(3)一種傳感路由的選路與決策過程,用于路由建立時對路由報文的處理;
(4)一種路由維護與容錯處理過程,用于及時宣告失效路由和減少維護開銷。
步驟(1)按照路由建立的需求,定義了傳感器網絡路由請求報文RREQSN(Router Request for Sensor Network)和傳感網絡路由響應報文RREPSN(Router Reply for Sensor Network),按照路由維護的需求,定義了傳感網絡路由錯誤報文RERRSN(Router Error for Sensor Network)格式,RREQSN報文和RREP報文的大小分別為21個字節、19個字節,RERRSN報文基本長度9個字節,既攜帶必要的路由信息,又極大減少發送和接收路由信息的能量消耗;
步驟(2)入口表和路由表維護機制。入口表記錄路由請求報文的源地址和發送信息的ID號,當重復的路由請求報文經過節點時進行丟棄,減小路由環路的生成和發送冗余消息的能量損耗和處理負擔;路由表記錄路由目的地址、下一跳地址和跳數限制等基本路由信息,同時包括鏈路質量的度量和前驅路由表項。鏈路質量和跳數信息作為路由比較的基本信息,前驅路由表項記錄路由的前驅節點地址,用于宣告失效路由;
步驟(3)傳感路由的選路與決策過程,主要包括以下的方面
(a)傳感器網絡存在兩種類型設備——全功能節點設備FFD和部分功能節點設備RFD,構成兩種拓撲結構星形和網狀結構,針對不同的設備和拓撲結構,運行不同的選路策略RFD設備不進行路由請求和響應,只維護一條到父節點FFD設備的默認路由,父節點FFD設備代替RFD設備進行路由請求和響應,來節約RFD設備能量;
(b)中間節點接收到源節點發送的RREQSN報文,設置入口表報文標志,同時更新RREQSN報文的跳數和最小鏈路質量值;
(c)目的節點接收到RREQSN報文,進行等待有效時間,同時按照本發明提出的以跳數和鏈路質量值作為參數的最優路由判斷函數,進行判斷最優路由。等待時間結束,向最優路由單播RREPSN報文。
步驟(4)路由維護和容錯處理。為了減少傳感器網絡節點交互的信息量,微型傳感路由協議并不是周期發送路由維護消息,而是在數據發送過程中,檢測鄰居節點不可達的同時,向前驅節點通告路由不可達消息,刪除不可達路由,減少數據包的丟失。
本發明的有益效果本發明提出了一種基于IPv6泛在傳感器網絡的核心設備——IPv6微型無線傳感路由器的體系結構的設計和實現方法。通過該設備,可以把傳感器網絡與IPv6相結合,使之真正成為下一代互聯網的一部分。既能單獨組網,也能接入Internet,支持遠程、串口等多種人性化配置方式,具有體積小、能耗低、自適應性強、成本低、簡單靈活等優點,在工農業生產、軍事國防、醫療護理、環境監測、智能家居等領域有著廣泛的應用前景。
下面結合附圖和實施例對發明進一步說明。
圖1 現有的無線傳感器體系結構;
圖2 傳統IPv6路由器的協議棧體系結構;
圖3 本發明提出的IPv6微型傳感路由器協議棧體系結構;
圖4 IPv6協議發送和接收數據包處理流程;
圖5 ICMPv6和ND協議處理流程;
圖6 UDP協議處理流程;
圖7 TCP協議狀態轉換;
圖8 TCP/IP協議棧調度流程;
圖9 星形結構和網狀結構組成的混和結構;
圖10 路由請求報文RREQ接收流程;
圖11 路由相應報文RREP處理流程圖12 微型傳感路由器應用實例。
具體實施例方式
實施例1微型傳感路由器協議棧的體系結構
本發明提出了一種適用于傳感器網絡環境的微型傳感路由器的體系結構。該體系結構自下而上包括IEEE802.15.4物理層、IEEE802.15.4介質訪問控制層、適配層、協議棧和應用層。圖3給出了IPv6微型傳感路由器體系結構的框架。
IEEE802.15.4物理層根據IEEE802.15.4協議標準,物理層由射頻收發器以及底層的控制模塊構成,它定義了物理無線信道和介質訪問控制層的接口,提供了物理層的數據服務和物理層的管理服務,物理層的數據服務從無線信道上收發數據,物理層的管理服務維護一個由物理層相關數據組成的數據庫。物理層完成的功能包括數據幀的調制和解調、系統能量的檢測、信道空閑監測評估、發送和接收器的激活和休眠等。
IEEE802.15.4介質訪問控制層(MAC)根據IEEE802.15.4協議標準,介質訪問控制層使用物理層提供的服務實現設備之間的數據幀傳輸,它提供兩種服務MAC層數據服務和MAC層管理服務。MAC層數據服務保證MAC協議數據單元在物理層數據服務中正確收發,MAC層管理服務維護一個狀態相關信息的數據庫。介質訪問控制層完成的功能包括信道接入方式、設備關聯和同步。
適配層IPv6支持的數據包大小(1280字節~1500字節)遠遠大于IEEE802.15.4幀大小(128字節),為了在IEEE802.15.4網絡中支持IPv6數據包,因特網工程任務組(IETF)的6Lowpan工作組提出適配層的概念,用于對IPv6數據包進行分片和壓縮。本發明提出的微型協議棧就是使用適配層的接口進行數據的傳輸
微型傳感路由器協議棧微型傳感路由器協議棧包含兩部分IPv6微型協議棧和IPv6傳感路由協議。IPv6微型協議棧提供應用層數據的IPv6封裝和解析,實現與現有TCP/IPv6協議體系的網絡進行通信;IPv6傳感路由協議是本發明提出的一種適用于傳感器網絡環境的路由協議,用于傳感器網絡內數據傳輸時建立和維護路由。
應用層應用層是傳感器網絡節點提供各種傳感應用程序服務的集合,主要包括數據采集與融合、定位、跟蹤、網絡管理等。
實施例2IPv6微型傳感路由器協議棧體系結構實現方法;
本發明設計并實現了微型傳感路由器的核心部分——微型傳感路由器協議棧,它由IPv6微型協議棧和IPv6微型傳感路由協議組成。
1.IPv6微型協議棧;
隨著Internet的成功,TCP/IP協議棧已經成為網絡通信的全球標準。TCP/IP協議棧作為Internet底層協議用于數據傳輸以及點對點組網等。但是傳統的TCP/IP協議棧需要太多的資源,無論是幾千字節的代碼量還是幾千字節的數據存儲區大小都無法達到傳感器網絡節點低成本、低能耗的要求。本發明設計一種精簡的微型TCP/IPv6協議棧,代碼量小、簡易輕型并且可以與使用完整的TCP/IPv6協議棧的對等節點進行通信。
1.1 TCP/IPv6微型協議棧的實現步驟
根據傳感器網絡特定的應用,本發明TCP/IPv6協議棧包含IPv6協議、TCP協議、UDP協議、ICMPv6協議、ND協議五個主要協議,并且在協議棧的實現流程中預留其它協議內容的接口,其它協議可以作為擴展頭進行調用。精簡的IPv6協議、ICMPv6協議、ND協議和UDP協議、TCP協議實現如下
IPv6協議實現和簡化過程圖4給出了IPv6協議基本報頭的處理流程。IPv6處理函數接收到IPv6數據后,判斷IP數據包的版本號,判斷數據包的長度與凈載荷的長度是否匹配,檢查目的地址字段,設置地址類型字段,然后解析下一個報頭類型,遞交到相應的協議處理函數;在進行IPv6封裝時,對IPv6流量類別、流標簽填充0,由于適配層包含“跳數”字段,并且適配層具有簡單轉發功能,當中間節點接收到發給目的節點的IPv6數據包,可以不進行數據包IPv6解析而直接進行轉發,因此在進行IPv6數據包封裝時,忽略“跳數”字段。
ICMPv6協議和ND協議實現和簡化過程ICMPv6協議的作用是診斷網絡的狀態,有兩種類型ICMP錯誤信息和ICMP信息消息。為了簡化協議棧大小,只使用ICMPv6信息消息,而對ICMPv6錯誤消息不進行處理。圖5給出ICMPv6處理回應請求消息和回應響應報文流程。ICMPv6協議接收到IPv6協議遞交的數據包,判斷校驗和是否正確,然后獲取ICMPv6源和目的地址,判斷ICMPv6協議封裝類型,分別處理回應請求和回應響應報文。ND協議由ICMPv6封裝,處理路由器請求、路由器通告、鄰居請求、鄰居通告和ICMP重定向五種選項類型報文格式。由于路由器請求、路由器通告和重定向消息功能由微型傳感路由協議完成,精簡的ND協議只處理鄰居請求和鄰居通告兩種報文格式。圖5給出了鄰居請求和鄰居通告處理流程。在ICMPv6協議處理函數中,判斷類型字段為鄰居解析和鄰居通告報文格式,轉入鄰居解析和通告處理。
UDP協議簡化過程圖6給出UDP協議處理流程。UDP協議接收到IPv6協議遞交的報文,判斷校驗和是否正確,然后查詢本地UDP連接表,如果不存在則保存UDP連接的源、目的端口和目的IP地址,然后解析數據遞交到應用層進行處理
TCP協議實現和簡化過程TCP協議建立連接和釋放連接所需的步驟用11種狀態表示CLOSED、LISTENING、SYNRCVD、SYNSEND、ESTABLISHED、FINWAIT1、FINWAIT2、TIMEDWAIT、CLOSING、CLOSEWAIT、LASTACK。
圖7給出了TCP協議的11種狀態的轉換流程。每個連接均開始于CLOSED狀態,當一方執行了主動的連接或被動的連接時,便會脫離CLOSED狀態。如果此時另一方執行了相應的連接,連接便會建立,并且狀態轉變為ESTABLISHED狀態,此時數據可以傳輸。任何一方均可以首先請求釋放連接。當連接釋放后又回到CLOSED狀態。本發明設計TCP協議處理過程按照11種狀態進行轉換首先檢查TCP檢驗和是否正確,然后查找本地TCP連接表,保存源、目的端口和目的IP地址,更新接收序列號和發送確認號,然后根據保存的TCP標志,轉入響應的狀態處理。其它處理過程進行相應的簡化取消軟件錯誤報告機制和報文統計機制;不使用滑動窗口機制而使用固定窗口大小32768來接收和發送數據;到達的TCP報文并不進行緩沖而是直接遞交給應用程序處理;去掉了對TCP服務類型TOS和安全選項的支持,忽略接收的TCP選項等。
1.2獨立于操作系統的協議棧調度步驟
傳統的TCP/IP協議棧由操作系統的接口核心部分進行調用,然而在傳感器節點上配置操作系統對節點硬件的要求很高,為了節約節點設備存儲空間和處理能耗,本發明設計的TCP/IPv6協議棧獨立于操作系統,底層接收的數據通過中斷的方式通知接收中斷函數,再由接收中斷函數直接提交到適配層進行調度TCP/IPv6協議棧。圖8顯示的調度過程如下當節點接收到數據包后,接收中斷函數解析數據包的IEEE802.15.4幀頭后,由適配層來判斷數據包的類型,調用IPv6接收函數進行解析IPv6報頭;然后判斷下一報頭類型,進行調度相應的TCP/IPv6協議棧程序進行處理。解析后應用程序報文根據本發明提出的應用程序接口,進行應用程序數據處理。為了防止接收多個數據包時,發生處理沖突,本發明設置接收隊列,對多個接收的數據包進行緩存。
1.3最大容限控制的內存分配步驟
本發明設計的微型TCP/IPv6協議棧并不采用動態分配內存的方式,而是采用兩個全局變量inBuffer和outBuffer保存整個IPv6數據包,分別對TCP/IPv6協議棧各個字節進行處理。兩個全局變量大小都為102個字節,滿足IEEE802.15.4規定(最大包長度127字節一最小數據幀頭15字節)。當數據包接收后,進行解析IEEE802.15.4數據幀頭部和適配層頭部,然后將適配層數據幀的載荷存儲在inBuffer中,全局變量buflen表示載荷長度,根據本發明提出的協議棧調度機制,將協議棧處理指針指向inBuffer各個協議字段,調用TCP/IPv6協議處理函數進行解析,最后由應用程序接口進行應用數據的處理。具體實現方法如下首先IPv6處理函數接收到數據包,將IPv6結構類型的指針指向inBuffer的首部,按照本發明提出的精簡IPv6協議過程,取出結構指針的域值進行IPv6數據處理并保存,然后根據IPv6結構指針的下一個報頭域值,將數據包遞交到下一報頭處理函數,下一個報頭處理函數將下一個報頭結構指針指向inBuffer的IPv6協議長度的位置,按照下一報頭精簡過程進行處理,buflen標識應用數據的長度;最后調用應用處理函數,進行inBuffer數據處理。為了防止在數據包發送過程中,對存儲在inBuffer的下一個數據包進行覆蓋,應用層根據調用的協議,將產生的數據封裝到outBuffer的調用協議首部長度和IPv6基本報頭長度的位置處,遞交到調用的協議處理函數和IPv6協議進行協議封裝,buflen標識整個協議棧數據的長度。最后,將outBuffer作為適配層載荷,進入到IEEE802.15.4介質接入控制層(MAC)和物理層(PHY)完成數據幀封裝進行發送。
2.IPv6傳感路由協議;
本發明提出一種適用于傳感器網絡的路由協議MSRP(Micro Sensor RouterProtocol)。MSRP的提出基于AODV的設計思想,可以在無線傳感器網絡中IEEE802.15.4節點之間建立和維護多跳路由。MSRP路由協議工作在適配層之上,為了減少存儲表項以及發送和接收報文的大小,MSRP使用IEEE802.15.4定義的64比特接口標識符,而不是IPv6地址進行路由過程,IPv6地址根據地址映射規則,由唯一的IEEE802.15.4定義的64比特接口標識符進行確定。因此IPv6微型協議棧可以根據MSRP建立的路由進行數據傳輸。傳感器網絡路由協議主要包括一下
發明內容
2.1傳感路由協議報文格式;
為了減少傳感器節點能量的消耗,設計精簡有效的路由協議報文格式是十分重要的。本發明結合傳感器網絡的特點,設計的MSRP路由協議的報文類型包括RREQSN、RREPSN和RERRSN三種,報文類型的大小分別為8字節、7字節和1+2n字節(n為“不可達地址數目”的數值),從而減少建立路由時發送的數據包大小,減少發送數據包時傳感器節點的能量損耗。報文類型分別為
RREQSN路由查詢消息;
表1 RREQSN報文格式
類型000,表示RREQ報文類型;
跳數RREQSN報文攜帶的從源節點到當前節點的跳數;
路由請求ID唯一標識RREQSN消息;
源地址發起RREQSN節點或者該節點的某個RFD節點的IEEE802.15.4定義的64比特接口標識符;
目的節點RREQSN請求路由的目的IEEE802.15.4定義的64比特接口標識符;
最小LQI報文攜帶從RREQSN源節點到當前節點的鏈路質量度量值最小值;
RREPSN路由回復消息;
表2 RREPSN報文格式
類型001,表示RREPSN報文類型;
跳數RREPSN報文攜帶的從源節點到當前節點的跳數;
源地址發起RREPSN節點或者該節點的某個RFD節點的IEEE802.15.4定義的64比特接口標識符;
目的節點對應于RREQSN發起節點的IEEE802.15.4定義的64比特接口標識符;
最小LQI報文攜帶從RREPSN源節點到當前節點的鏈路質量度量值的最小值;
RERRSN路由錯誤消息;
表3 RERRSN報文格式
類型010,表示RERR報文類型;
不可達地址的數目某節點檢測的失效鄰居節點的個數;
不可達目的地址某節點檢測的失效鄰居節點的IEEE802.15.4定義的64比特接口標識符(不可達地址的數目決定不可達目的地址的個數,為了符合IEEE802.15.4標準,一個IEEE802.15.4數據包的大小不超過128個字節,RERRSN最多攜帶的不可達目的地址數目不能超過4個);
2.2雙表項傳感路由機制;
在傳感器網絡特定環境下,路由協議要避免環路的產生,減少無效數據包的發送,以及有效記錄路由,適應網絡拓撲結構的動態變化,提高消息傳輸的效率,因此MSRP需要維護一種入口表,并且將維護的路由表格式進行相應的更改——;
入口表
表4 入口表項格式
RREQSN源地址發起RREQSN節點或者該節點的某個RFD節點的IEEE802.15.4定義的64比特接口標識符;
RREQSN ID該RREQSN報文類型的標識;
生存時間該入口表表項的生存時間;
路由表
表5 路由表項格式
類型用于區分IEEE802.15.4標準定義的兩種設備類型全功能節點設備(FFD)和部分功能節點設備(RFD)。FFD為0,RFD為1。
PAN IDPAN(個域網)標識符;
跳數限制該路由的跳數;
生存時間該路由表表項的生存時間;
路由LQI值該路由的最小的LQI值;
目的地址的接口標識符該路由最終地址的IEEE802.15.4定義的64比特接口標識符;
下一跳地址接口標識符該路由所在當前節點的下一跳地址的IEEE802.15.4定義的64比特接口標識符;
前驅節點地址標識符該路由所在當前節點的上一跳地址的IEEE802.15.4定義的64比特接口標識符(可能不止一個,用于發送RERR路由通告);
2.3傳感路由的選路與決策過程;
MSRP路由協議是真正意義上的按需驅動路由協議,是一種當需要發送數據時才進行查找路由的路由算法。在這種路由協議中,節點不需要維護及時準確的路由信息,當向目的節點發送報文時,源節點才在網絡中發起路由查找過程,找到相應的路由。這樣按需驅動路由協議開銷小,符合傳感器網絡節點節能要求。
IEEE802.15.4定義兩種設備類型,RFD和FFD,RFD只能和它加入網絡的FFD進行通信,FFD可以和鄰居的FFD進行通信,這樣就夠成了兩種拓撲結構星形結構和網狀拓撲結構,如圖7。
為了適用于這種混和的拓撲結構和設備特點,本發明設計一種路由區分機制,即對RFD設備而言,只維持一條單跳到RFD加入網絡的FFD的默認路由,當RFD發送數據時,直接把數據發送給它的默認路由FFD,由該FFD進行路由查找和數據傳輸,從而.大可能保存RFD設備的能量。因此RFD不進行MSRP路由協議的配置,減少RFD存儲要求。對于FFD設備而言,執行下面的路由建立過程。
(1)發送RREQSN
在傳感器網絡中,當一個FFD節點設備發送數據或者接收到RFD轉發到其它目的節點的數據時,首先查找本地路由表,如果發現到目的地址的路由不存在,則緩存當前數據包進行MSRP路由建立過程——封裝RREQSN報文,進行廣播發送RREQSN消息。
(2)中間節點接收到RREQSN
如圖8所示,首先接收RREQSN報文的節點判斷RREQSN報文目的地址是否是自己或者是自己的RFD鄰居,如果不是,那么查詢自己的入口表,如果已經存在入口表項,這表明已經接收到該RREQSN源地址發送的相同ID號的RREQSN報文,為了減少傳感器網絡節點的能量損耗以及廣播包的泛洪阻塞,該節點拋棄該RREQSN報文;如果沒有存在該入口項,則進行查詢路由表中到RREQSN源地址的路由,如果已經存在該路由,那么比較這兩條路由,選擇最好的路由進行存儲,同時修改RREQSN報文信息,如果不存在該路由,則建立一條到RREQSN源地址的逆向路由;然后查詢路由表中到RREQSN報文中目的地址的路由,如果已經存在該路由,那么向該路由單播RREQSN消息,否則繼續廣播RREQSN報文。
(3)目的節點接收RREQSN和發送RREPSN
如果節點判斷RREQSN報文目的地址是否是自己或者自己的RFD鄰居,那么該節點進入發送RREPSN報文過程
首先節點緩存RREQSN報文消息,由于廣播RREQSN尋路過程,節點接收到多條路由發送的報文消息,所以需要等待合理時間T,進行判斷多路由的優劣,本發明構造了一個最優路由判斷函數f(X,Y)
其中X為源節點到目的節點的跳數,Y為從源節點到目的節點的路由每一跳的LQI中,最小的LQI值。n為不同網絡環境下的待定參數,取值范圍為2~4。在開闊地帶室外網絡環境下,取n值為2。
目的節點為每個到達的RREQSN以及當前節點到達RREQSN源節點的路由(如果路由表中存在的話)計算其f值,跳數x值越小并且鏈路質量值越大,則f值越高,選擇f值最大的路由進行回復。
本發明基于目的節點判斷最優路由策略,選擇一條最優路由進行單播RREPSN報文,而不是對每條RREQSN路由請求進行響應,比由中間節點以及RREQSN源節點進行判斷最優路由,更加減少傳感器網絡中的數據流量,減少發送數據的能量消耗。
(4)接收RREPSN
如圖9所示,當節點接收到RREPSN報文,首先判斷RREPSN目的地址是自己或者RFD鄰居,如果是則建立到RREPSN源地址的路由表項,發送緩存隊列中的緩存數據,否則建立或者更新到RREPSN源地址的路由表項,查找到RREPSN目的地址路由,并把下一跳地址寫入路由表前驅節點地址選項。然后繼續單播RREPSN報文。
2.4傳感路由維護與容錯處理過程;
本發明提出的MSRP路由協議并沒有采用傳統AODV協議Hello報文進行維護,而是根據IEEE802.15.4標準規定的ACK數據幀來判斷鄰居節點可靠性,如果向鄰居節點發送數據在一定的時間內并沒有收到鄰居節點確認的ACK幀,重傳該數據后若仍然沒有收到該鄰居節點確認的ACK幀,表明該鄰居節點已經失效,則緩存當前的數據,重新進行路由請求,同時向該路由的前驅節點發送RERRSN報文。這樣做的好處是一方面節約發送和接收Hello消息的能量消耗,另一方面傳感器節點對時延要求并不是很高,作為按需驅動路由協議在數據發送時對路由維護更加有效。
當傳感器節點檢測到某鄰居節點失效,首先查找路由表以該鄰居節點為下一跳的路由表項,取出前驅節點地址,封裝RERRSN報文,向這些前驅節點單播RERRSN報文,然后刪除路由表中以該鄰居節點為下一跳和最終地址的路由表項。前驅節點接收到RERRSN報文,同樣在路由表中處理該不可達地址,同時繼續查找前驅節點發送RERRSN報文,直到這條路由中所有的前驅節點都被通知該節點地址已經失效。
實施例3下面為本發明技術方案在具體應用中的舉例,如圖10所示。
傳感器網絡部署在大規模室內植物園內,由大量的溫度傳感器、濕度傳感器、光強傳感器以及加熱設備、光強設備和噴水設備組成。每一類傳感器都配置本發明的微型傳感路由器協議棧體系結構,每一類設備控制部分與傳感器的紅外模塊相連。傳感器網絡設置一個匯聚點作為網關設備,與用戶主機進行交換信息。匯聚點可以通過無線鏈路,傳輸送到衛星設備,經衛星信號接收器轉交到用戶主機的服務器上,或者匯聚點通過有線鏈路,經過Internet到達用戶主機的服務器。用戶主機從服務器上獲取數據,或者進行發送命令的操作。
服務器包含數據庫、命令程序、管理站程序等必要功能模塊。其中數據庫包含傳感器網絡內部所有信息,例如傳感器節點數、節點類型、工作狀態以及周期獲取的數據信息等;命令程序包含對傳感器節點和設備控制命令集合;管理站程序為SNMP管理者模塊。具有權限的用戶在本地計算機通過訪問WEB服務器,運行相關的程序,間接地訪問控制傳感器網絡內部。操作步驟如下
(一)節點初始狀態
傳感器節點部署后,啟動,處于命令等待狀態,傳感模塊和處理模塊進入休眠,無線收發模塊信道監測部分等待;
(二)傳感器網絡初始化
1、用戶通過服務器發送啟動命令,喚醒匯聚點;
2、用戶調用服務器管理站程序,配置無線信道參數、PANID以及匯聚點的短地址信息;
3、匯聚點接收命令,將參數存入MIB庫中,啟動允許加入網絡參數,擔任協調者角色;
4、傳感器信道監測部分掃描到允許加入的傳感器節點,加入PAN網絡,獲取短地址信息,配置本地鏈路地址,并且根據自身節點類型,以FFD或者RFD進行工作;
5、傳感器節點加入網絡后,啟動定位模塊進行定位。
6、傳感器節點向協調者申請全局單播地址網絡前綴,由協調者進行廣播全局單播地址的網絡前綴,節點接收后配置全局單播IPv6地址。
7、傳感器節點將節點配置參數和定位信息以UDP數據包的形式發送到服務器,服務器將信息存入數據庫;
(三)傳感器網絡工作過程
1、用戶發送傳感器采集命令,同時設置采集周期。服務器封裝UDP/IPV6數據包,經過匯聚點,發送給傳感器節點;
2、傳感器接收到采集命令后進行周期采集數據,建立路由,并且將數據信息以UDP/IPv6數據包形式傳送到服務器;
3、用戶在終端實時觀測數據動態變化;
4、用戶配置環境參數的浮動范圍,如果采集的數據值超過該范圍,在用戶終端示警,用戶根據數據的位置信息則相應啟動設備裝置進行調節。例如設定環境溫度正常變化范圍,如果傳送的區域1實時環境溫度值過低,則根據區域1位置信息,用戶手動/服務器主動通告該區域的傳感器節點,由節點啟動加熱設備進行動態調節;
5、由于能耗以及意外原因造成傳感器節點失效,鄰居節點監測到傳感器節點失效,啟動路由RERRSN報文,通知該失效節點地址;
6、傳感器數據源節點緩存當前的應用數據,重新發起路由請求報文RREQSN,在傳感器網絡范圍內傳播RREQSN報文消息;
7、傳感器數據目的節點接收到RREQSN報文,根據最優路徑判斷函數,選擇最佳路徑回復路由響應報文RREPSN;
8、傳感器數據源節點接收到RREPSN報文,更新路由表,發送緩存隊列的數據。
權利要求
1.一種IPv6微型傳感路由器協議棧體系結構,其特征是該體系結構自下而上包括IEEE802.15.4物理層、IEEE802.15.4介質訪問控制層、適配層、微型傳感路由器協議棧和應用層。
2.根據權利要求1所述的IPv6微型傳感路由器協議棧體系結構,其特征是IEEE 802.15.4物理層物理層對應于硬件射頻收發器以及傳輸數據、檢測能量、監測信道的控制模塊,完成的功能包括數據幀的調制和解調、系統能量的檢測、信道空閑監測評估、發送和接收器的激活和休眠;
IEEE802.15.4介質訪問控制層(MAC)介質訪問控制層使用物理層提供的服務實現設備之間的關聯和數據幀傳輸,完成的功能包括信道接入方式、設備關聯和同步;
適配層適配層使用IEEE802.15.4介質服務接口提供數據處理和傳輸控制服務,適配層提供上層協議不同的處理接口和壓縮分片的標識;
微型傳感路由器協議棧微型傳感路由器協議棧包含兩部分IPv6微型協議棧和IPv6微型傳感路由協議,IPv6微型協議棧提供應用層數據的IPv6封裝和解析,實現與現有TCP/IPv6協議體系的網絡進行通信;IPv6微型傳感路由協議是本發明提出的一種適用于傳感器網絡環境的路由協議,用于傳感器網絡內數據傳輸時建立和維護路由;
應用層應用層是傳感器網絡節點提供各種傳感應用程序服務的集合,主要包括數據采集與融合、定位、跟蹤、網絡管理等。
3.一種IPv6微型傳感路由器協議棧體系結構實現方法,其特征是包括一種IPv6微型協議棧和一種IPv6微型傳感路由協議,一種IPv6微型協議棧包括以下步驟;
步驟(1)、精簡TCP/IPv6協議棧,傳感器節點與現有TCP/IPv6終端進行端對端通信;
步驟(2)、數據幀由硬件中斷進行接收,由IEEE802.15.4物理層和介質訪問控制層解析出協議棧數據的負載,在適配層調度IPv6接收函數,解析IPv6基本報頭之后,判斷下一個報頭字段,主動調度下一個協議處理函數,協議棧報頭處理完畢后,由面向數據類型的應用程序接口對不同類型的傳感數據進行處理;
步驟(3)、設定兩個全局變量數組inBUF和outBUF分別保存接收和發送處理的數據包,根據IEEE802.15.4數據幀大小規定,分配inBUF和outBUF102個字節,進行封裝和解析不同協議數據;
一種IPv6微型傳感路由協議包括;
步驟(1)、按照路由建立的需求,定義傳感器網絡路由請求報文RREQSN,傳感網絡路由響應報文RREPSN和傳感網絡路由錯誤報文RERRSN,按照路由維護的需求,定義RERRSN格式,RREQSN報文和RREP報文的大小分別為21個字節、19個字節,RERRSN報文基本長度9個字節;
步驟(2)、入口表和路由表維護機制;入口表記錄路由請求報文的源地址和發送信息的ID號,當重復的路由請求報文經過節點時進行丟棄;路由表記錄路由目的地址、下一跳地址和跳數限制等基本路由信息,同時包括鏈路質量的度量和前驅路由表項,鏈路質量和跳數信息作為路由比較的基本信息,前驅路由表項記錄路由的前驅節點地址,用于宣告失效路由;
步驟(3)、進行傳感路由的選路與決策;
步驟(4)、路由維護和容錯處理,檢測鄰居節點不可達的同時,向前驅節點通告路由不可達消息,刪除不可達路由。
4.根據權利要求3所述的IPv6微型傳感路由器協議棧體系結構實現方法,其特征是所述的一種IPv6微型協議棧步驟(1)中包括以下步驟
1)、精簡IPv6協議IPv6基本報頭簡化流量類別和流標簽字段處理,同時由于適應層具有跳數限制字段,忽略對跳數字段檢查;
2)、精簡ICMPv6協議ICMPv6負責診斷網絡狀態,包括兩種ICMPv6錯誤消息和ICMPv6信息消息類型,為了減少協議棧的大小,ICMPv6只處理ICMPv6信息消息,對于ICMPv6錯誤消息不進行處理;
3)、精簡ND協議ND協議由ICMPv6協議進行封裝,處理路由器請求、路由器通告、鄰居請求、鄰居通告和ICMP重定向五種選項類型報文格式,由于路由器請求、路由器通告和重定向消息功能由微型傳感路由協議完成,精簡的ND協議只處理鄰居請求和鄰居通告兩種報文格式;
4)、精簡UDP協議協議棧簡化UDP協議調度過程,維護UDP偵聽端口和UDP連接表,用來填充UDP報文中源端口和目的端口字段;
5)、精簡TCP協議根據TCP協議11種基本狀態變化進行TCP流程處理,并且維護TCP偵聽端口列表和TCP連接表,用來填充源端口、目的端口、序列號和確認號字段,取消軟件錯誤報告機制和報文統計機制;不使用滑動窗口機制而使用固定窗口大小32768來接收和發送數據;去掉了對TCP服務類型TOS和安全選項的支持。
5.根據權利要求3所述的IPv6微型傳感路由器協議棧體系結構實現方法,其特征是所述的一種IPv6微型傳感路由協議步驟(3)中包括以下的步驟
1)、RFD設備不進行路由請求和響應,只維護一條到父節點FFD設備的默認路由,父節點FFD設備代替RFD設備進行路由請求和響應;
2)、中間節點接收到源節點發送的RREQSN報文,設置入口表報文標志,同時更新RREQSN報文和本地路由表的跳數和最小鏈路質量值;
3)、目的節點接收到RREQSN報文,進行等待有效時間,同時按照以跳數和鏈路質量值作為參數的最優路由判斷函數,進行判斷最優路由,等待時間結束,向最優路由單播RREPSN報文。
6.根據權利要求3所述的IPv6微型傳感路由器協議棧體系結構實現方法,其特征是所述的一種IPv6微型協議棧步驟(3)實現過程
首先IPv6處理函數接收到數據包,將IPv6結構類型的指針指向inBuffer的首部,按照精簡IPv6協議過程,取出結構指針的域值進行IPv6數據處理并保存,然后根據IPv6結構指針的下一個報頭域值,將數據包遞交到下一報頭處理函數,buflen標識IPv6載荷長度;下一個報頭處理函數將下一個報頭結構指針指向inBuffer的IPv6協議長度的位置,按照下一報頭精簡過程進行數據處理,buflen標識應用數據的長度;最后調用應用處理函數,進行inBuffer數據處理。
7.根據權利要求3或4所述的IPv6微型傳感路由器協議棧體系結構實現方法,其特征是目的節點接收到RREQSN報文,按照最優路由判斷函數,進行判斷最優路由,該路由判斷函數為
其中X為源節點到目的節點的跳數,Y為從源節點到目的節點的路由每一跳的LQI中,最小的LQI值,n為不同網絡環境下的待定參數,取值范圍為2~4,在開闊地帶室外網絡環境下,取n值為2。
全文摘要
本發明提出了一種基于IPv6泛在傳感器網絡的核心設備——IPv6微型無線傳感路由器的體系結構的設計和實現方法。IPv6微型傳感路由器協議棧體系結構,該體系結構自下而上包括IEEE802.15.4物理層、IEEE802.15.4介質訪問控制層、適配層、微型傳感路由器協議棧和應用層。通過該設備,可以把傳感器網絡與IPv6相結合,使之真正成為下一代互聯網的一部分。既能單獨組網,也能接入Internet,支持遠程、串口等多種人性化配置方式,具有體積小、能耗低、自適應性強、成本低、簡單靈活等優點,在工農業生產、軍事國防、醫療護理、環境監測、智能家居等領域有著廣泛的應用前景。
文檔編號H04L29/06GK1794732SQ20051013277
公開日2006年6月28日 申請日期2005年12月26日 優先權日2005年12月26日
發明者張宏科, 郜帥, 張思東, 牛延超, 霍宏偉, 李昭樺, 任彥 申請人:北京交通大學