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