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网络的可行解决方案。

相关内容