簡析嵌入式IPv6協議棧
在前面的文章中,我們已經對無線傳感網絡的IPv6協議棧設計做了基礎介紹。那么根據上文內容我們再來仔細介紹一下嵌入式IPv6協議棧的設計。首先還是讓我們看看嵌入式IPv6協議棧的思想。
嵌入式IPv6協議棧的設計思想
由于無線傳感器網絡節點一般都是嵌入式設備,所以嵌入式IPv6協議棧的設計主要應突出"微型化"的思想.TCP/TP協議最先是在Uuix系統里實現的,由于嵌入式系統與PC機的差別很大,在嵌入式系統中實現TCP/IP協議與在操作系統巾的實現有很大不同,所以這是設計的核心環節.嵌入式系統的IPv6微型協議棧,直接面對硬件,沒有一個多任務操作系統平臺;MCU中的程序結構一般是順序執行和硬件中斷相配合的方式,與高級操作系統中多線程并發執行的方式截然不同.因為單片機上系統的各種資源是有限的,例如CPU的處理速度、字長,RAM、ROM存儲器的容量以及接口的數量等與通用計算機相比有很大差距,所以如何使協議棧做到精細、通信可靠、功能相對完善,而且又能發揮單片機的特點成為IPv6微型協議棧設計的關鍵問題."微型化"思想主要體現在設計方案核心應著眼于設計體積小,但又不影響運行的協議棧,所以要對協議棧的裁剪方面進行深入研究,去掉不必要的組件、傳統的復雜調度機制和額外的擴展功能,甚至可以去除操作系統等.
綜合研究以上多方面因素,提出了能夠適用于無線傳感器網絡的嵌入式IPv6微型協議棧的設計要求.
①協議棧運行于單片機系統上,具有較強的兼容性.可以在以太網上正確運行,同時在此基礎上可以借助IEEE802.15.4 MAC的無線數據傳輸功能來傳送數據包.
②實現IPv6基本協議棧核心協議的最基本功能、包括IPv6基本描述協議、ND(鄰居發現)協議、ICMPv6(因特網控制報文)協議和IPv6地址的自動配置協議等.
◆IPv6基本描述協議:IPv6數據包的發送、接收、處理等基本功能.
◆ND(鄰居發現)協議:鄰居發現的地址解析功能,實現鄰居請求和鄰居通告.
◆ICMPv6(因特網控制報文)協議:主要實現控制報文的消息處理,以及對網絡診斷功能的回應請求和回應答復.
◆IPv6地址自動配置協議:根據IPv6地址格式的要求,主要實現IPv6鏈路本地地址的配置和請求節點多播地址的配置.
③利用對校驗和字段的汁算與處理來提高ICMPv6、TCP等協議運行的正確性.
④實現簡單的應用層協議(如TELNET/SNMP協議),利用遠程終端可以登錄到運行嵌入式IPv6協議棧的單片機系統,以及進行簡單的控制和管理操作.
嵌入式IPv6協議棧的分層與模塊化設計
嵌入式IPv6協議棧采用分層結構進行沒計,將整個協議棧(包括TCP及上層應用)分為4個層次:事件觸發接口層、TCP/IP網絡協議層、NIC網絡接口核心層和網絡設備驅動接口層.
圖3是對整個協議棧的分層描述,在協議棧的工作過程中使用上層調用相鄰層的函數來實現相應的功能.
各層的功能簡述如下:
①事件觸發接口層.該層對應于TCP/IP模型的應用層協議(OSI模型的高層協議),主要功能是定義網絡數據的格式以及網絡的應用.
②TCP/IP網絡協議層.該層對應于TCP/IP模型的傳輸層協議和網絡層協議(OSI模型的3、4兩層),主要功能是定義數據如何傳輸到目的地的.使用TCP協議在兩臺主機之間建立端到端的連接,保證可靠的傳輸;IP協議進行路由選擇和基于IP的尋址.
③NIC網絡接口核心層.該層是整個網絡接口的關鍵部位,其上層是具體的網絡協議,下層是驅動程序.它為上層提供統一的發送接口,屏蔽各種各樣的物理介質;同時負責把來自下層的包向合適的協議發送.
④網絡設備驅動接口層.該層是分層結構的最底層,其主要功能是控制具體物理介質,從物理介質接收和發送數據,并對物理介質進行諸如最大數據包之類的各種設置.
結合對嵌入式IPv6協議棧設計要求和分層結構的全面分析,將設計實現劃分為4個模塊,如圖4所示.
各模塊的功能簡述如下:
①網絡接口核心模塊.該模塊為網絡協議提供統一的發送接口,屏蔽各種各樣的物理介質;同時負責把來自下層的包向合適的協議配送.
②事件接口模塊.嵌入式IPv6協議棧沒有采用BSD套接口,而是采用了事件驅動接口.當特定TCP/IP事件發生時,將調用應用程序;而當應用程序產生輸出數據時,也通過此接口發送出去.
③SNMP網管模塊.該模塊負責獲取IPv6無線傳感器網絡節點的相關MIB信息.
④配置最示調試命令模塊.該模塊用于提供用戶配置和調試的界面,包括配置IP地址、子網掩碼、默認網關和MAC地址等.在程序正常運行前,由超級終端進入配置模式,由用戶進行配置管理.
結語
基于IPv6 over IEEE802.15.4的無線傳感器網絡是一門新興的網絡技術,人們對它的研究尚處于起步階段.本文針對基于IPv6 over IEEE802.15.4無線傳感器網絡自身特點,對其關鍵技術嵌入式IPv6協議棧進行了分析.筆者認為,現有的IPv6協議棧雖然在功能、性能等方面具有很大優勢,但由于代碼體積較大(幾MB~幾百MB),而無線傳感器網絡節點的存儲資源只有不到200KB,因而無法運行在計算能力和存儲資源受限的無線傳感器網絡節點中.所以在設計適合傳感器節點的嵌入式IPv6協議棧時,應充分分析和研究無線傳感器網絡對IPv6提出的新要求,考慮在性能和資源之間尋找一個折中的方案,充分運用協議工程學理論和軟件工程的方法,設計一種合理、高效的嵌入式IPv6微型協議棧.這對推動無線傳感器網絡和IPv6的發展,以及改變人們的生活和上作方式,具有十分重要的意義.