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