基于6LOWPAN的IPv6傳感器網絡報頭壓縮方案的設計與實現
摘要:無線傳感器網絡節點的資源非常有限,如果能夠對IPv6報頭進行壓縮可以在較大程度上減小數據傳輸量,提高IPv6傳感器網絡的整體性能。通過對6LoWPAN報頭壓縮方案的研究,并結合無線傳感器網絡的特點和實際需求,在已有無線傳感器網絡底層協議和基本IPv6協議棧基礎上,設計并實現了一種支持對跳教限制壓縮的IPv6報頭壓縮方法。實驗結果表明,報頭壓縮可以有效節省網絡能耗,降低丟包率,減小數據傳輸時延。
關鍵詞:無線傳感器網絡;IPv6;報頭壓縮;6LoWPAN
0 引言
無線傳感器網絡是由大量按需隨機分布的集成有傳感器、數據處理單元和通信模塊的微型節點以自組織方式構成的無線網絡。傳感器網絡具有成本低、能耗代、靈活性高等優點,可以應用于國防軍事、環境監測、交通管理、醫療衛生、反恐抗災等領域,具有重要的研究價值和應用前景。無線傳感器網絡節點的資源非常有限,因此需要一個輕量級的無線通信規范。IEEE 802.15.4標準定義了一個短距離、低復雜度、低功耗、低數據速率的介質訪問控制層(MAC)和物理層(PHY)規范,該標準的技術特點決定了它特別適合傳感器網絡、智能家庭網絡、工業控制網絡等節點眾多、數據率較低的應用環境。IPv6作為下一代網絡協議,具有地址資源豐富、地址自動配置、安全性高、移動性好等優點,可以滿足無線傳感器網絡在地址、安全、移動及與現有網絡融合等方面的需求。因此,IPv6與IEEE 802.15.4在傳感器網絡上的結合有著無可比擬的應用前景。
2004年11月IETF成立了6LoWPAN(IPv6 overLow power WPAN)工作組,研究IPv6在IEEE 802.15.4網絡上的應用方案。6LoWPAN工作小組對適配層技術、報頭壓縮技術、路由技術、IPv6技術等提出了相應的解決辦法。IPv6要求支持1 280 B的MTU,而IEEE802.15.4標準規定的物理層最大幀為127 B,除去物理層25 B的幀負載,在無安全機制的情況下MAC層最大幀長度為102 B,因此需要在網絡層之下引入適配層來協調二者的關系。由于IPv6標準報頭是40 B,為了在IEEE 802.15.4上更加有效的傳輸IPv6數據包,提高凈荷的傳輸效率,報頭壓縮是一個很好的解決辦法。
本文以北京交通大學下一代互聯網互聯設備國家工程實驗室自主開發和研制的微型傳感路由器所構建的IPv6無線傳感器網絡為基礎,設計并實現了一種更為高效的IPv6報頭壓縮方法,并對壓縮性能進行了分析。
1 平臺簡介
本文基于IPv6無線傳感器網絡平臺的拓撲結構及協議層次如圖1所示。IPv6無線傳感器網絡節點設備可以自組織形成多跳Mesh網絡,將采集到的溫度、濕度、光強等環境信息發送給網關設備。網關設備通過以太網直連的方式與服務器進行通信,并把收到的來自傳感器節點的數據提交給服務器,服務器端完成對整個IPv6傳感器網絡的控制和環境信息的人性化顯示。
傳感器節點采用ATmega128作為處理器、使用CC2420作為射頻芯片,能量供應模塊可以使用9 V直流穩壓電源或使用9 V干電池直接供電,同時配備溫濕度傳感器和光強傳感器對環境信息進行采集。節點通信協議分為5層,物理層采用IEEE 802.15.4通信規范,使用OQPSK方式進行調制,發送頻段使用2.4 GHz,傳輸速率可達250 Kb/s。適配層實現數據包的分片和重組、報頭壓縮以及Mesh路由等功能。網絡層運行精簡的微型IPv6協議棧,該協議棧代碼量小、簡易輕型并且可以與使用完整的IPv6協議棧的對等節點進行通信。應用層主要運行傳感器網絡應用級程序,比如數據采集、環境監控等。節點的層次協議設計完全遵守RFC4919和RFC4944中定義的規范。
2 IPv6報頭壓縮
2.1 現有方案分析
到目前為止,6LoWPAN報頭壓縮方案主要有兩種。其中一種是RFC4944中定義的方案。該方案在最理想的情況下可以將IPv6完整的40 B壓縮到2 B(HC1字節和跳數限制字節),同時支持UDP,TCP,ICMP下一個報頭的壓縮,HC1字節編碼IPv6報頭中各字段的壓縮方式,IPv6報頭中未經壓縮的內容按順序存放在未壓縮字段中。
如圖2所示,版本、傳輸類型和流標簽(全部為零)、凈荷長度(可以從IEEE 802.15.4 MAC頭中凈荷長度字段推斷出來)均可以壓縮掉,下一個報頭字段攜帶在HC1字節中,跳數限制字段不壓縮,存放在未壓縮字段中。標準中規定IPv6地址采用無狀態的配置式,地址由64位前綴和64位接口標識符(Interface ID,IID)生成。IEEE 802.15.4定義了兩種尋址模式:IEEE 64位擴展地址和16位短地址。每一個IEEE802. 15.4設備都有一個分配的EUI-64標識符,該標識符用作64位擴展地址進行尋址,具有全球惟一性,并且通過該EUI-64標識符可以生成一個IPv6接口標識符,實現IPv6地址的自動配置。16位短地址是在節點成功加入網絡后,由節點所在PAN內的協調者動態分配,只能保證在該PAN內的惟一性,不能用作實現IPv6地址的自動配置。因此如果IPv6地址為本地鏈路地址(前綴為fe80::/64),并且IEEE 802.15.4尋址模式為64位擴展地址,就可以將IPv6地址壓縮掉,否則就要將其在未壓縮字段中攜帶。
圖3為HC1字節具體編碼格式。
另一種是現有報頭壓縮草案中定義的方案。該方案提出了對本地鏈路地址、全球單播地址、多播地址等IPv6地址的壓縮方法,同時解決了源壓縮方案不具有協議層次性的弊端。而且該壓縮方案支持IPv6擴展報頭的壓縮和流標簽、服務類型的區分。但是這種壓縮方案過于復雜,對于處理能力有限、能量受限、硬件資源匱乏并且以環境監測為主要應用的傳感器節點來說并不實用。因此本文提出一種基于RFC4944的IPv6報頭壓縮改進方案。
評論