新闻中心

EEPW首页 > 嵌入式系统 > 设计应用 > 一种嵌入式IPv4/IPv6双协议栈的实现

一种嵌入式IPv4/IPv6双协议栈的实现

作者: 时间:2012-04-13 来源:网络 收藏

3.4.2 简化TCP状态机

TCP的面向连接和可靠性传输等特性决定了每一个标准的TCP状态机庞大而且复杂,对于应用,可以根据需要进行简化。

建立连接分为主动打开和被动打开,本栈设计作为监听状态的服务器端,仅被动打开。在设计中去掉了CLOSED状态,让它一开始就处于LISTEN状态,等待对方发起连接。

断开连接分为主动断开和被动断开,从安全性的角度考虑,本设计仅主动断开连接。当服务器发送完数据时,向客户机发送关闭连接请求。

通过以上分析,根据特定的应用不失一般性的裁减掉复杂和冗余的机制,除去标准状态机中的客户端部分,简化连接的建立和关闭过程,就得到如图2所示的简化的TCP状态机模型。

54.jpg

55.jpg
3.4.3 简化的窗口机制

标准的TCP使用慢启动的滑动窗口机制[5],它允许发送方在等待一个确认之前发送多个窗口。其确认是一种批量的确认,处理器要对多个数据报连续传输进行维护和处理,困难较大。

而滑动窗口的一个极限情况,是只使用单个窗口,这就变成了一种简单确认的处理方法。只是对于单个数据报的发送和确认,虽然节约了系统的资源,也使维护更加方便,但是却降低了效率。

系统采用了一个折中的办法,适当调整窗口的大小,限制连续发送报文段的个数来了一个简化的窗口机制,如图3所示。在这里,设置窗口大小(snd_wnd)为4个最大报文段长度(MSS),可以适当提高数据传输效率。

4 栈的移植和测试

在完成双协议栈的设计调试后,将此协议栈移植到基于ARM7TDMI核的AT91M40800开发板上,使用其中内嵌的10Mbps以太网控制器 RTL8019AS作为网络接口。在该平台上实现了一个简单的Web Server。通过构建提供IPv4地址和IPv6地址访问的网络拓扑结构进行测试,该双协议栈运行稳定、正常。

linux操作系统文章专题:linux操作系统详解(linux不再难懂)

tcp/ip相关文章:tcp/ip是什么




评论


相关推荐

技术专区

关闭