一種基于IPv6的無線傳感器網(wǎng)絡(luò)邊界路由器設(shè)計(jì)
2.2.3 適配層報(bào)頭壓縮機(jī)制
本文引用地址:http://www.ex-cimer.com/article/247726.htm標(biāo)準(zhǔn)IPv6 網(wǎng)絡(luò)層報(bào)文和UDP 報(bào)文的報(bào)頭分別有40 B 和8 B,由此帶來的數(shù)據(jù)傳輸報(bào)頭開銷極大,因此本文適配層對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版本號和負(fù)載長度可以省略,通信流類型、流標(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 包頭壓縮比較簡單,是否壓縮由前述NH 字段指定。標(biāo)準(zhǔn)UDP報(bào)文頭部中的長度域省略,源端口號、目的端口號以及校驗(yàn)和域的壓縮方式由P和C字段表示,校驗(yàn)和域暫不壓縮。UDP報(bào)文頭部具體壓縮格式如圖8所示。
眾所周知,TCP/IP 端口號為16 位,通常以0xf0 和0xf0b開始,其壓縮方式由P字段指定,具體如下:
00:不壓縮;01:目的端口號前8位(0xf0)省略,其他部分和源端口號保留;10:源端口號前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ì)中各功能模塊由輕量級操作系統(tǒng)Contiki統(tǒng)一調(diào)度,因而設(shè)計(jì)一個(gè)IP 網(wǎng)絡(luò)層任務(wù)集中處理從適配層接收到的數(shù)據(jù)包和應(yīng)用層需要發(fā)送的數(shù)據(jù)包。
3 測試與分析
3.1 測試平臺搭建
邊界路由器負(fù)責(zé)WSN 網(wǎng)絡(luò)與IPv6 網(wǎng)絡(luò)之間的通信,本文實(shí)驗(yàn)驗(yàn)證了邊界路由器的工作性能。實(shí)驗(yàn)測試平臺包括一個(gè)邊界路由器、一個(gè)傳感器節(jié)點(diǎn)和一臺Linux主機(jī),其中邊界路由器通過 UART接口與Linux主機(jī)的USB口連接,鏈路層運(yùn)行slip協(xié)議。邊界路由器和傳感器節(jié)點(diǎn)的IPv6地址配置為 aaaa::215:8d00:b:6840和aaaa::215:8d00:b:67d3,Linux主機(jī)端運(yùn)行slip守護(hù)程序來監(jiān)聽USB口,其 IPv6地址為aaaa::1.
3.2 測試結(jié)果分析
通過在Linux 主機(jī)上向傳感器節(jié)點(diǎn)(IPv6 地址為aaaa::215:8d00:b:67d3)發(fā)送ping6 報(bào)文,來測試傳感器節(jié)點(diǎn)的可達(dá)性,以驗(yàn)證邊界路由器的正常工作,實(shí)驗(yàn)結(jié)果如圖9所示。
實(shí)驗(yàn)對邊界路由器的數(shù)據(jù)包轉(zhuǎn)發(fā)率、平均傳輸延遲和傳輸穩(wěn)定性進(jìn)行了分析。其中,數(shù)據(jù)包轉(zhuǎn)發(fā)率是指 Linux 主機(jī)收到的echo 報(bào)文數(shù)量和發(fā)送的ping6報(bào)文數(shù)量之比;平均傳輸延遲是指Linux主機(jī)發(fā)送ping6報(bào)文和接收到echo報(bào)文之間的平均時(shí)間間隔;傳輸穩(wěn)定性是指傳輸延遲的變化幅度,用算術(shù)平均差評定。分析結(jié)果如圖10~圖12所示。
如圖10和圖11所示,在發(fā)送不同長度ping6報(bào)文測試時(shí),邊界路由器均具有良好的數(shù)據(jù)轉(zhuǎn)發(fā)成功率(大于90%),并且數(shù)據(jù)傳輸延遲較小。圖12列舉的是發(fā)送不同長度ping6報(bào)文測試時(shí)鏈路傳輸延遲的算術(shù)平均差,對于不同長度的測試報(bào)文傳,輸延遲算術(shù)平均差基本小于15 ms,網(wǎng)絡(luò)鏈路傳輸延遲抖動較小,證明網(wǎng)絡(luò)的鏈路穩(wěn)定性較好。
4 結(jié)論
本文針對無線傳感器網(wǎng)絡(luò)實(shí)際應(yīng)用的現(xiàn)實(shí)需求,提出了基于IPv6 的無線傳感器網(wǎng)絡(luò)邊界路由器的設(shè)計(jì)方案。該設(shè)計(jì)方案實(shí)現(xiàn)了無線傳感器網(wǎng)絡(luò)與IPv6網(wǎng)絡(luò)的無縫融合,降低了網(wǎng)絡(luò)應(yīng)用布置成本,提高了系統(tǒng)的靈活性。實(shí)驗(yàn)證明,該方案設(shè)計(jì)的邊界路由器具有較低的數(shù)據(jù)傳輸延遲,網(wǎng)絡(luò)的鏈路比較穩(wěn)定,能夠滿足實(shí)際應(yīng)用要求。
傳感器相關(guān)文章:傳感器工作原理
路由器相關(guān)文章:路由器工作原理
路由器相關(guān)文章:路由器工作原理
風(fēng)速傳感器相關(guān)文章:風(fēng)速傳感器原理
評論