新聞中心

EEPW首頁 > 手機(jī)與無線通信 > 設(shè)計(jì)應(yīng)用 > 基于IPv6的無線傳感器網(wǎng)絡(luò)邊界路由器的設(shè)計(jì)方案

基于IPv6的無線傳感器網(wǎng)絡(luò)邊界路由器的設(shè)計(jì)方案

作者: 時(shí)間:2014-12-30 來源:網(wǎng)絡(luò) 收藏

  2.2適配層設(shè)計(jì)

本文引用地址:http://www.butianyuan.cn/article/267504.htm

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

  2.2.1地址映射機(jī)制

  基于網(wǎng)絡(luò)中每個(gè)節(jié)點(diǎn)都需要配置惟一的地址,但是手動(dòng)配置繁瑣并且難以保證地址惟一性。本文設(shè)計(jì)的網(wǎng)絡(luò)邊界采用無狀態(tài)地址自動(dòng)配置機(jī)制。IPv6地址由全局地址前綴和接口標(biāo)識(shí)ID(Interface ID,IID)兩部分組成。因?yàn)槊恳粋€(gè)射頻模塊都分配有一個(gè)全球惟一的IEEE EUI-64標(biāo)識(shí)符,即64位MAC地址,因此可以利用EUI-64標(biāo)識(shí)符獲得一個(gè)IPv6地址接口標(biāo)識(shí)ID來實(shí)現(xiàn)無狀態(tài)地址自動(dòng)配置。

  2.2.2適配層分片與重組機(jī)制

  為了減少適配層包頭開銷,適配層幀頭分為不分片和分片兩種格式,分別用于IP數(shù)據(jù)包長(zhǎng)度小于MAC層MTU的報(bào)文和IP數(shù)據(jù)包長(zhǎng)度大于MAC層MTU的報(bào)文。適配層不分片幀頭格式與常規(guī)幀頭相同,分片幀頭又分為第一個(gè)分片和后續(xù)分片兩種格式,如圖5和圖6所示。

  

 

  節(jié)點(diǎn)適配層接收到適配層數(shù)據(jù)包時(shí),首先檢查該數(shù)據(jù)包是否分片,如果是一個(gè)分片的數(shù)據(jù)包,則在將所有數(shù)據(jù)分片重新組合成完整的IP數(shù)據(jù)包后,再傳送到IP網(wǎng)絡(luò)層處理;若某一個(gè)分片丟失,則丟棄該IP數(shù)據(jù)包的所有后續(xù)分片。對(duì)于IP層下發(fā)的數(shù)據(jù)包,節(jié)點(diǎn)適配層判斷IP報(bào)文長(zhǎng)度是否超過鏈路層MTU長(zhǎng)度,若超過鏈路層MTU長(zhǎng)度,則將此IP數(shù)據(jù)包分片后發(fā)送;若不超過鏈路層MTU長(zhǎng)度,則按照不分片格式發(fā)送。

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

  datagram_size:11 b,表示鏈路層未分包之前的IP數(shù)據(jù)包的總長(zhǎng)度,該IP數(shù)據(jù)包所有鏈路層分片的該字段的值都應(yīng)該相同。

  datagram_tag:16 b,分片標(biāo)識(shí),用來區(qū)分同一數(shù)據(jù)源節(jié)點(diǎn)的不同IP數(shù)據(jù)包。同一個(gè)IP數(shù)據(jù)包的所有鏈路層分片都具有相同的分片標(biāo)識(shí),數(shù)據(jù)源節(jié)點(diǎn)每成功發(fā)送一個(gè)完整的IP數(shù)據(jù)包都更新(加1)該字段的值。

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

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

  

 

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

  TF:2 b,通信流類型和流標(biāo)簽。其中通信流類型由查分服務(wù)代碼點(diǎn)DSCP和顯示擁塞反饋ECN,當(dāng)TF=11時(shí),通信流類型和流標(biāo)簽全都省略;當(dāng)TF=00時(shí),通信流類型和流標(biāo)簽都不壓縮;當(dāng)TF=01時(shí),DSCP省略;當(dāng)TF=10時(shí),流標(biāo)簽省略。

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

  HLIM:2 b,跳數(shù)限制。當(dāng)HLIM等于00、01、10和11時(shí),分別表示未壓縮、1跳、64跳和255跳。

  M:1 b,指示目的地址類型。當(dāng)M=0時(shí),目的地址不是多播地址;當(dāng)M=1時(shí),目的地址為多播地址。

  SAC:1 b,表示源地址的壓縮方式,當(dāng)它為0時(shí)表示使用的是無狀態(tài)頭部壓縮;為1時(shí)表示使用的是基于上下文的頭部壓縮。

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

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

  傳輸層UDP報(bào)文緊跟在IPv6網(wǎng)絡(luò)層包頭后面,UDP包頭壓縮比較簡(jiǎn)單,是否壓縮由前述NH字段指定。標(biāo)準(zhǔn)UDP報(bào)文頭部中的長(zhǎng)度域省略,源端口號(hào)、目的端口號(hào)以及校驗(yàn)和域的壓縮方式由P和C字段表示,校驗(yàn)和域暫不壓縮。UDP報(bào)文頭部具體壓縮格式如圖8所示。

  

 

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

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

  2.3 IP網(wǎng)絡(luò)層與傳輸層設(shè)計(jì)

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

  uip IPv6協(xié)議棧的IP網(wǎng)絡(luò)層和傳輸層使用同一個(gè)數(shù)據(jù)緩存區(qū),因此可以將IP網(wǎng)絡(luò)層和傳輸層統(tǒng)一處理。本設(shè)計(jì)中各功能模塊由輕量級(jí)操作系統(tǒng)Contiki統(tǒng)一調(diào)度,因而設(shè)計(jì)一個(gè)IP網(wǎng)絡(luò)層任務(wù)集中處理從適配層接收到的數(shù)據(jù)包和應(yīng)用層需要發(fā)送的數(shù)據(jù)包。

傳感器相關(guān)文章:傳感器工作原理


路由器相關(guān)文章:路由器工作原理


路由器相關(guān)文章:路由器工作原理


風(fēng)速傳感器相關(guān)文章:風(fēng)速傳感器原理


關(guān)鍵詞: IPv6 無線傳感器 路由器

評(píng)論


相關(guān)推薦

技術(shù)專區(qū)

關(guān)閉