新聞中心

        EEPW首頁 > 手機與無線通信 > 設計應用 > 基于IPv6的無線傳感器網絡邊界路由器的設計方案

        基于IPv6的無線傳感器網絡邊界路由器的設計方案

        作者: 時間:2014-12-30 來源:網絡 收藏

          2.2適配層設計

        本文引用地址:http://www.104case.com/article/267504.htm

          組建網絡是邊界適配層需要完成的基本任務,系統啟動后,自組網任務負責在選定信道和網絡16位PAN_ID后建立網絡。網絡維護任務在網絡建立后維持父節點與子節點之間的鏈路穩定,并在鏈路出現異常時進行上報并嘗試修復鏈路。IEEE 802.15.4物理層數據單元最大為127 B,而要求鏈路支持的最小MTU(Maximum Transmission Unit,MTU)長度為1 280 B,明顯不支持此長度MTU.適配層介于IEEE 802.15.4 MAC層和IP層之間,因此適配層主任務除了負責管理MAC層協議事件之外,主要完成節點自動地址配置、IP數據包的分片與重組和IP數據包頭壓縮與解壓等功能以實現IP數據包在IEEE 802.15.4鏈路中的傳輸。

          2.2.1地址映射機制

          基于網絡中每個節點都需要配置惟一的地址,但是手動配置繁瑣并且難以保證地址惟一性。本文設計的網絡邊界采用無狀態地址自動配置機制。IPv6地址由全局地址前綴和接口標識ID(Interface ID,IID)兩部分組成。因為每一個射頻模塊都分配有一個全球惟一的IEEE EUI-64標識符,即64位MAC地址,因此可以利用EUI-64標識符獲得一個IPv6地址接口標識ID來實現無狀態地址自動配置。

          2.2.2適配層分片與重組機制

          為了減少適配層包頭開銷,適配層幀頭分為不分片和分片兩種格式,分別用于IP數據包長度小于MAC層MTU的報文和IP數據包長度大于MAC層MTU的報文。適配層不分片幀頭格式與常規幀頭相同,分片幀頭又分為第一個分片和后續分片兩種格式,如圖5和圖6所示。

          

         

          節點適配層接收到適配層數據包時,首先檢查該數據包是否分片,如果是一個分片的數據包,則在將所有數據分片重新組合成完整的IP數據包后,再傳送到IP網絡層處理;若某一個分片丟失,則丟棄該IP數據包的所有后續分片。對于IP層下發的數據包,節點適配層判斷IP報文長度是否超過鏈路層MTU長度,若超過鏈路層MTU長度,則將此IP數據包分片后發送;若不超過鏈路層MTU長度,則按照不分片格式發送。

          適配層的每一種數據幀都有調度編碼位域(8位),不同的調度編碼位域表示不同的解析方式,主要包括不分片、分片、IP包頭壓縮、UDP報頭壓縮以及預留功能等多種類型。其中,11000xxx表示本數據幀是已分片適配層數據幀的第一個分片,11100xxx則表示本數據幀是已分片適配層數據幀的后續分片。

          datagram_size:11 b,表示鏈路層未分包之前的IP數據包的總長度,該IP數據包所有鏈路層分片的該字段的值都應該相同。

          datagram_tag:16 b,分片標識,用來區分同一數據源節點的不同IP數據包。同一個IP數據包的所有鏈路層分片都具有相同的分片標識,數據源節點每成功發送一個完整的IP數據包都更新(加1)該字段的值。

          datagram_offset:8 b,分片偏移量,表示該分片在所有分片中的偏移量(以8 B為單位),該字段只出現在第二個及后續分片中。2.2.3適配層報頭壓縮機制

          標準IPv6網絡層報文和UDP報文的報頭分別有40 B和8 B,由此帶來的數據傳輸報頭開銷極大,因此本文適配層對IP報文和UDP報文的包頭格式進行了壓縮處理。由于TCP報文并不適合網絡這種多跳、數據傳輸延遲較大的網絡[11],故本文暫不考慮TCP報文。根據無線傳感器網絡的上下文信息,IPv6版本號和負載長度可以省略,通信流類型、流標簽、下一包頭、跳數限制以及源地址和目的地址設置壓縮控制域進行部分壓縮。IPv6網絡層報文頭部壓縮格式如圖7所示。

          

         

          011xxxxx為調度編碼位域,其中最右端5位用于報頭壓縮編碼。各編碼字段定義如下:

          TF:2 b,通信流類型和流標簽。其中通信流類型由查分服務代碼點DSCP和顯示擁塞反饋ECN,當TF=11時,通信流類型和流標簽全都省略;當TF=00時,通信流類型和流標簽都不壓縮;當TF=01時,DSCP省略;當TF=10時,流標簽省略。

          NH:1 b,下一包頭。NH=0,表示下一包頭未壓縮;NH=1時,下一包頭已壓縮。

          HLIM:2 b,跳數限制。當HLIM等于00、01、10和11時,分別表示未壓縮、1跳、64跳和255跳。

          M:1 b,指示目的地址類型。當M=0時,目的地址不是多播地址;當M=1時,目的地址為多播地址。

          SAC:1 b,表示源地址的壓縮方式,當它為0時表示使用的是無狀態頭部壓縮;為1時表示使用的是基于上下文的頭部壓縮。

          SAM用來控制不同壓縮方式下源地址壓縮方式。

          DAC與DAM的控制目的地址的壓縮方式,具體含義與SAC和SAM相似。

          傳輸層UDP報文緊跟在IPv6網絡層包頭后面,UDP包頭壓縮比較簡單,是否壓縮由前述NH字段指定。標準UDP報文頭部中的長度域省略,源端口號、目的端口號以及校驗和域的壓縮方式由P和C字段表示,校驗和域暫不壓縮。UDP報文頭部具體壓縮格式如圖8所示。

          

         

          眾所周知,TCP/IP端口號為16位,通常以0xf0和0xf0b開始,其壓縮方式由P字段指定,具體如下:

          00:不壓縮;01:目的端口號前8位(0xf0)省略,其他部分和源端口號保留;10:源端口號前8位(0xf0)省略,其他部分和目的端口保留;11:目的端口和源端口的前12位(oxf0b)省略,其他部分保留。

          2.3 IP網絡層與傳輸層設計

          標準TCP/IP協議占用資源較多,而無線傳感器網絡屬于資源受限網絡,因此邊界的設計要特別注意協議棧資源占用。uip IPv6(uIPv6)協議棧專為資源受限的設備設計,RAM的占用量只有1.7 KB,代碼量只有[12]11.5 KB,因此選擇移植uip IPv6協議棧作為基于IPv6的無線傳感器網絡協議的IP層和傳輸層。

          uip IPv6協議棧的IP網絡層和傳輸層使用同一個數據緩存區,因此可以將IP網絡層和傳輸層統一處理。本設計中各功能模塊由輕量級操作系統Contiki統一調度,因而設計一個IP網絡層任務集中處理從適配層接收到的數據包和應用層需要發送的數據包。

        傳感器相關文章:傳感器工作原理


        路由器相關文章:路由器工作原理


        路由器相關文章:路由器工作原理


        風速傳感器相關文章:風速傳感器原理


        評論


        相關推薦

        技術專區

        關閉
        主站蜘蛛池模板: 色达县| 桓台县| 阜宁县| 三亚市| 尼木县| 新营市| 城市| 积石山| 库尔勒市| 日喀则市| 龙山县| 星子县| 瑞昌市| 北宁市| 若尔盖县| 太和县| 盐池县| 嘉鱼县| 鸡泽县| 芦溪县| 天水市| 万载县| 凤翔县| 临夏市| 双城市| 海宁市| 宝丰县| 成武县| 商丘市| 乐清市| 登封市| 来安县| 武平县| 永吉县| 金坛市| 青铜峡市| 大邑县| 铁岭市| 裕民县| 孝感市| 鄂托克旗|