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