IPv6協(xié)議棧的實現(xiàn)和測試
對于IPv6協(xié)議棧的相關(guān)基礎(chǔ)內(nèi)容,以及設(shè)計步驟我們在前文都已經(jīng)做了很詳細的介紹和說明了,現(xiàn)在我們就來測試一下我們的模塊功能,看看它能不能正常使用。具體的開發(fā)環(huán)境和測試步驟請參考下文。
在Altera De2上的實現(xiàn)與測試
開發(fā)環(huán)境:
AlteraDe2(硬件平臺),QuartusII5.1和NiosII5.1(軟件平臺),整個開發(fā)過程以LWIP1.1.0為參考,在理解了LWIP的結(jié)構(gòu)后在結(jié)合開發(fā)環(huán)境改寫。
完成前面的設(shè)計步驟后,我們現(xiàn)在對IPv6協(xié)議棧進行了測試和驗證,測試主要集中在網(wǎng)絡(luò)層的ND,IPv6,ICMPV6模塊。由于鄰居發(fā)現(xiàn)模塊建立在IPv6協(xié)議模塊,ICMPV6基礎(chǔ)上的,對鄰居模塊的測試相當于對IPv6和ICMPV6也進行了測試,
很具有代表性。
受周圍網(wǎng)絡(luò)環(huán)境中無IPv6路由器所限,測試在IPv6局域網(wǎng)上進行,Alterade2通過以太網(wǎng)與PC機直接相連。測試對象電路板MAC地址為00-10-5C-F7-5F-5D,其經(jīng)過地址轉(zhuǎn)換算法得到的本地IPv6地址為:fe80:210:5cff:fef7:5f5d,當它接入網(wǎng)絡(luò)時,為了對自己將要配置的地址進行***性驗證,它要發(fā)送鄰居請求報文,通過PC端網(wǎng)絡(luò)抓包工具Sniffer,我們抓到了由目標板發(fā)出的鄰居請求報文。
鄰居請求報文
其報文的類型值為135。目標地址為fe80:210:5cff:fef7:5f5d。測試IPv6協(xié)議棧在獲取鏈路地址后,我們在PC機端執(zhí)行ping6fe80::210:5cff:fef7:5f5d。
這個過程中要知道目標板的鏈路層地址,于是發(fā)起針對目標板IPv6協(xié)議地址的地址解釋。在地址解釋過程中,我們抓到了目標協(xié)議棧發(fā)送的,包含自己鏈路層地址的單播鄰居公告報文。
鄰居公告報文
報文類型值為136,目標地址為目標板本地IPv6地址fe80::210:5cff:fef7:5f5d。
在s3c4410 box上的移植
移植目標平臺:基于s3c4410box處理器的ARM7開發(fā)板,按照通用的方法,先移植了uc/os-ii嵌入式操作系統(tǒng),在移植好的基礎(chǔ)上用操作系統(tǒng)函數(shù)編寫了操作系統(tǒng)模擬層,把網(wǎng)絡(luò)接口層的函數(shù)指針指向電路板提供的網(wǎng)卡驅(qū)動程序,在系統(tǒng)啟動初試化函數(shù)中添加針對IPv6協(xié)議棧的啟動代碼。完成這些后我們使用alterade2上一樣的測試方法進行測試,實驗結(jié)果證明協(xié)議棧滿足基本通信功能。證明協(xié)議??梢栽谠撾娐钒迳线M行移植。
總結(jié)
本文介紹了嵌入式精簡(微型化)TCP/IPv6的設(shè)計思想和實現(xiàn)方法,精簡性和可移植性是其考慮的主要方面,該IPv6協(xié)議棧是一種解決了嵌入設(shè)備和接入IPv6網(wǎng)絡(luò)的可行解決方案。