嵌入式TCP/IPv6协议栈的设计与实现

嵌入式TCP/IPv6协议栈的设计与实现

论文摘要

嵌入式TCP/IP技术是指把TCP/IP技术应用于嵌入式设备,它是嵌入式技术与TCP/IP技术的结合,现有的主流TCP/IP技术以IPv4为基础,IPv6是IPv4的升级版本,是下一代互联网络的核心,它把IP地址长度由32位增加到128位,彻底解决了IPv4的地址短缺问题,同时它还具有地址自动配置,服务质量控制等多方面的优点。但遗憾的是现有的所有开源嵌入式TCP/IP协议栈都不支持IPv6,因此本课题设计了一种嵌入式TCP/IPv6协议栈。本文首先提出了一种只实现基本TCP/IP通信功能,去掉(安全加强,移动IP支持,多样方式接入等)复杂辅助功能的精简原则。并在这一原则指导下,去掉了拨号连接相关的PPP,SLIP协议和IP层安全控制相关的IPsec协议,传输层的UDP协议。对留下来的核心协议又进行了如下简化:IPv6协议只实现基本报头和用于分段与重组的分段扩展报头,不支持IP转发。ICMPv6协议只实现了应答回复报文和目的不可达错误报文,不实现应答请求,路由器请求等报文。传输层控制协议(TCP)只实现了其有限自动机,滑动窗口,往返时间估计与重传,其中往返时间估计也经过简化;同时对利用上层协议的可达确认进行邻居可达探测的方式进行了优化,优化后的邻居可达探测机制不需要在每次收到上层肯定确认后都要进行一次可达探测,也可以获取邻居变更的MAC信息;另外针对ALTERA DE2平台提出了一种应用程序缓存,协议栈缓存,网卡MAC缓存三级缓存管理模式,并在协议栈缓存内部采用“零拷贝”技术;在经过上述简化和优化后,我们在Altera De2开发板上实现了一个嵌入式TCP/IPv6协议栈,并对它进行了报文测试,吞吐率测试,数据报延迟性测试,目标代码统计和分析;结果证明,所设计的嵌入式TCP/IPv6协议栈具有基本的通信功能,代码量少,运行简单,是一种嵌入式设备接入IPv6网络的可行解决方案。

论文目录

  • 摘要
  • ABSTRACT
  • 第1章 绪 论
  • 1.1 研究背景与意义
  • 1.1.1 嵌入式Internet 技术
  • 1.1.2 IPv6 对IPv4 缺陷的改进与嵌入式采用TCP/IPv6 的必要性
  • 1.2 国内外研究现状
  • 1.2.1 嵌入式Internet 研究现状
  • 1.2.2 IPv6 研究现状
  • 1.3 课题的主要工作
  • 1.4 本文结构
  • 1.5 本章小结
  • 第2章 TCP/IPV6 协议栈
  • 2.1 TCP/IPV6 协议栈层次结构
  • 2.2 IPV6 协议
  • 2.2.1 IPv6 报头
  • 2.2.2 IPv6 地址
  • 2.3 ICMPV6 协议
  • 2.3.1 ICMPv6 差错报文
  • 2.3.2 ICMPv6 信息报文
  • 2.4 邻居发现协议
  • 2.4.1 邻居请求报文
  • 2.4.2 邻居公告报文
  • 2.4.3 地址解释
  • 2.4.4 可达性检测
  • 2.5 无状态地址自动配制
  • 2.5.1 无状态地址自动配制原理
  • 2.5.2 重复地址检测
  • 2.6 本章小结
  • 第3章 TCP/IPV6 协议栈的裁减与简化
  • 3.1 协议模块裁减
  • 3.2 邻居发现协议的简化
  • 3.3 ICMPV6 协议的简化
  • 3.4 IPV6 协议的简化
  • 3.5 TCP 协议的简化
  • 3.6 本章小结
  • 第4章 嵌入式TCP/IPV6 协议栈采用的精简技术
  • 4.1 协议进程模型的设计
  • 4.1.1 单独进程模型
  • 4.1.2 操作系统内核进程模型
  • 4.1.3 本设计采用的进程模型
  • 4.2 协议栈有限缓冲区管理模型设计
  • 4.2.1 协议栈内部缓存的拷贝技术
  • 4.2.2 协议栈外部缓存的拷贝技术
  • 4.2.3 协议栈内部缓存管理
  • 4.3 针对ALTERA DE2 硬件平台所做工作
  • 4.3.1 网卡DM9000A 驱动模型设计
  • init()函数'>4.3.2 初始化函数DM9000init()函数
  • 4.3.3 发送函数TransmitPacket()
  • 4.3.4 接收函数ReceivePacket()
  • 4.3.5 驱动程序和系统的集成
  • 4.4 针对UC/OS-II 操作系统所做工作
  • 4.5 本章小结
  • 第5章 嵌入式TCP/IPV6 协议栈的设计与实现
  • 5.1 网络接口的设计与实现
  • 5.1.1 网络接口功能
  • 5.1.2 网络接口的处理流程
  • 5.1.3 网络接口数据结构设计
  • 5.2 IPV6 协议设计与实现
  • 5.2.1 IPv6 接收流程
  • 5.2.2 IPv6 发送流程
  • 5.2.3 IPv6 主要数据结构设计
  • 5.3 ICMPV6 协议的设计与实现
  • 5.3.1 ICMPv6 数据处理流程
  • 5.3.2 ICMPv6 主要数据结构设计
  • 5.4 邻居发现协议的设计与实现
  • 5.4.1 邻居发现协议数据处理流程
  • 5.4.2 可达性检测
  • 5.4.3 地址解释流程
  • 5.4.4 主要数据结构设计
  • 5.5 无状态地址自动配制的设计与实现
  • 5.5.1 本地链路地址自动配制
  • 5.5.2 请求节点多播地址和请求节点多播MAC 地址的配置
  • 5.5.3 全节点多播地址和多播MAC 地址的配置
  • 5.6 TCP 协议的设计与实现
  • 5.6.1 TCP 基本处理流程
  • 5.6.2 TCP 主要数据结构设计
  • 5.7 应用程序接口API 的设计与实现
  • 5.8 本章小结
  • 第6章 嵌入式TCP/IPV6 协议栈的测试与验证
  • 6.1 报文测试
  • 6.1.1 本地链路测试
  • 6.1.2 站点内测试
  • 6.2 吞吐率测试
  • 6.3 延迟测试
  • 6.4 协议栈统计与分析
  • 6.5 本章小结
  • 结论
  • 参考文献
  • 致谢
  • 附录A(攻读学位期间所发表的学术论文目录)
  • 相关论文文献

    标签:;  ;  ;  

    嵌入式TCP/IPv6协议栈的设计与实现
    下载Doc文档

    猜你喜欢