嵌入式精简 TCP/IPV6 协议栈的设计与实现(1)(2)
2014-03-05 01:00
导读:协议栈精简的核心是“微型化”,我们对 协议栈进行协议模块裁减和单个协议简化。 3.1 协议模块裁减 协议模块裁减是指在保障基本通信功 能的前提下尽
协议栈精简的核心是“微型化”,我们对 协议栈进行协议模块裁减和单个协议简化。
3.1 协议模块裁减
协议模块裁减是指在保障基本通信功 能的前提下尽可能去掉一些协议模块,节省 系统资源。网络接口层我们只考虑 802.3 以 太网协议(CSMA/CD,MAC,LLC),不考 虑面向 CAN,RS-232,RS-485,射频,蓝牙等 相关的支持模块。接入方式上只考虑用路由 器接入方式,不考虑拨号连接方式,去掉和 拨号连接方式相关的面向点对点连接的 PPP 协议和 SLIP 协议,这两个协议在网络 接口层占用的代码量比较多;IP 层只实现基 本的报头,不实现扩展报头,去掉基于认证 头和封装安全载荷头选项的 IPsec 协议,安 全控制交给其他层。ICMPV6 和 ND 是核心
协议必须保留;传输层 TCP 和 UDP 可以全 部实现也可以只实现一种,考虑的适应性, 本设计中都给予实现。因此协议模块裁减后 要实现的核 心协议族 为 802.3 , IPV6 ,
ICMPV6,ND,TCP,UDP。
3.2 单个协议简化
单个协议简化是指以单个协议为目标, 进行功能和数据结构的简化。对 IPV6 协议 来说,只接收,发送报文,不支持报文的分 片与重组,不支持扩展报头选项,对可靠连 接传输来讲,包过大得不到确认,会根据拥 塞控制机制和重传机制,减少数据分组长 度,进行重新发送,对大多数应用来说这不 会产生其他严重问题。对 ICMPV6 来说,只 实现错误报文中的目的不可达报文,信息报 文中的应答回复报文,不实现超时报文,报 文过大报文和应答请求报文,一般包过大, 超时报文由路由器实现,应答请求报文用于 主动测试中发起测试的 PC 机一端。对邻居 发现 ND 模块来说,只实现邻居请求和邻居 应答报文,嵌入式设备刚接入网络,它可以静 态的等待网络上路由器定时发送的路由公 告报文,而不是主动发送路由请求报文来获 取,不需实现路由请求/路由应答报文。嵌 入式设备连接的邻居接点,路由一般简单, 传输量少,不需重定向报文来进行路由定 向。简化的大块在 TCP,TCP 是整个协议簇 中最复杂,代码量最多的协议。它的功能模 块有:滑动窗口,流量控制,拥塞控制,TCP 连接状态机,往返时间估计,重传协议。本 协议栈的目标是有操作系统支持的嵌入式 系统,速度和存储量比 8 位和 16 位单片机 都有提高,不必采用分配固定缓冲区的形式 进行接收一帧处理一帧,可以考虑采用分配 一个较大的缓冲区实现滑动窗口机制,用来 提高传输效率,实验证明,传输效率的提高 是明显的,往返时间估计和重传机制比较简 单,代码量不大,可以实现,TCP 状态机表 示 TCP 进程通信的状态迁移,是 TCP 的核
心必须实现,可以不实现流量控制机制,因
为流量不是很大。因此 TCP 模块实现的功 能有:TCP 有限自动机,滑动窗口,往返时 间估计,重传协议。忽略流量控制与拥塞控 制模块,在可靠连接中,当因拥塞而发生数 据丢失的时候,发送方收不到确认就采用重 传机制重发数据[2]。
4. 嵌入式精简 IPV6 协议栈的设
计与实现
在设计协议栈过程中,我们在嵌入式操 作系统基础上设计和实现一个操作系统模 拟层,实现基本的时钟,消息管理和进程同 步等基本操作系统功能。协议进程方面,把 所有的协议栈封装到单独进程中,应用程序 可以驻留在其中或作为一个单独的进程,这 样既实现了与操作系统分离,又避免了层间 切换。对于内存管理采用类 BSD buf 结构, 把静态缓冲区和动态缓冲区链接起来[3]。 共2页: 1 [2] 下一页 论文出处(作者):
ARM Linux启动过程分析
计算机人工神经网络在医学领域的应用现状与展望