IPv6协议栈的实现和测试

网络 网络管理
摘要:本文对IPv6协议栈的实现和测试做了细化的讲解。包括:开发环境、邻居请求报文、邻居公告报文、在s3c4410 box上的移植。

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

责任编辑:佟健 来源: 博客园
相关推荐

2010-06-21 15:18:19

IPv6协议栈

2010-05-26 15:06:44

IPv6协议栈

2010-05-26 14:06:22

IPv6协议栈

2010-06-02 10:34:47

IPv6协议栈

2010-05-26 13:58:58

IPv6协议栈

2010-05-27 11:44:37

2010-06-08 17:30:56

IPv6协议栈

2010-05-26 14:56:05

IPv6协议栈

2010-05-26 17:44:55

IPv6协议

2010-06-09 11:20:15

嵌入式IPv6协议栈

2010-05-26 15:23:00

IPv6协议栈

2010-05-26 14:49:06

IPv6协议栈

2020-10-15 10:54:31

安全漏洞微软

2010-06-07 16:58:51

linuxIPv6协议栈

2010-09-09 16:42:18

嵌入式IPv6协议栈

2010-06-01 13:52:03

IPv6协议路由协议

2010-06-11 16:36:21

2010-06-09 11:15:57

IPv6协议栈无线传感器

2010-05-26 14:04:46

安装IPv6协议

2010-06-01 17:45:03

IPv6协议双栈数据中心
点赞
收藏

51CTO技术栈公众号