新闻中心

EEPW首页 > 嵌入式系统 > 设计应用 > 嵌入式WEB服务器中TCP/IP协议栈的设计与实现

嵌入式WEB服务器中TCP/IP协议栈的设计与实现

作者:时间:2012-05-21来源:网络收藏

3.2 IP协议实现

IP协议主要功能是用于主机之间发送数据报的传输,实现比较复杂,但对于来说,只需完成IP协议两项最基本的功能:第一,处理接收到的IP数据报,向上层网络提交。第二,负责对TCP报文、ICMP报文进行封装,交给数据链路层进行装帧。

收到发给自己的数据帧后,需要对以太网首部中的帧类型字段进行判断,如果该字段为0x0800,说明后面的数据是IP数据报,将此数据提交IP层处理。IP协议判断此数据报的IP头部中目的IP地址字段与本地IP地址是否一致,若不一致,则丢弃该数据报;若一致,进行IP头部校验和检查,当证明数据在传输中没有出现错误时,去掉IP头部,将IP数据提交上层处理,即根据IP首部中的协议字段决定交给ICMP 协议还是TCP协议处理。在程序运行时,当所接收的数据被判定为IP数据报后,IP处理程序将严格按照以上的过程接收处理数据并进行处理。

IP协议还要查询是否有上层数据要发送,如果有数据发送,则将上层数据进行IP封装,交给数据链路层装帧发送。

3.3 ICMP协议实现

ICMP提供了一种让互联网中的路由报告错误或提供有关意外情况信息的报文机制。它不是独立的,是IP的一部分,在每个IP实现中必须有它。虽然它提供的信息十分丰富,但在应用中,只要实现回送请求(echo request)和回送应答(echo reply)就足够了。

3.4 TCP协议实现

TCP是Web服务器的核心。在设计Web服务器时,系统应用层只需支持HTTP协议。嵌入式系统把要传送的数据,参数等存入网页的相关位置。对于任何TCP连接,每次只需支持HTTP协议发送网页服务。在单片机这样的系统中,资源十分有限,因此要精简TCP 协议,简化的原则有两个:第一,不能改变其面向连接的特性;第二,简化必须能配合其所采用的应用层协议。

作为嵌入式Web服务器,TCP连接时只需处于被动服务的状态,所以将标准的TCP有限状态机的主动创建连接的SYN-SENT状态,主动关闭连接的FIN-WAIT1,FIN-WAIT2,

CLOSING,TIME-WAIT状态都省去,在设计中,还可以舍弃CLOSED状态,让它开始就处于LISTEN状态来监听客户端的连接请求。这样,TCP的三次握手机制中,建立连接的过程时,嵌入式系统作为监听状态的服务器,始终为被动方,相当于被动打开后的LISTEN状态,等待对方发起连接。当它接收到SYN数据片,它发出SYN+ACK数据片并确认它己经收到对方的SYN,此时变为SYN_RECEIVED状态。再接收到对方返回的一个仅含ACK的空数据片,则三次握手完成,进入ESTABLISHED状态,之后可以进行TCP数据通讯。这样,既节省了系统开销,同时也保证了所有的数据段都能安全正确地到达目的端。

4 结语

本文的创新之处在于对应用于嵌入式Web服务器的TCP/IP协议栈进行了精简,既兼顾了TCP/IP协议的主要功能的实现,又照顾到嵌入式系统本身的弱点,利用嵌入式TCP/IP协议栈能扩展许多非智能设备的网络功能,使之方便接入Internet,具有很高的实用价值。

参考文献:

[1] Jeremy Bentham.嵌入式系统Web服务器:TCP/IP Lean.机械工业出版社.2003.5

[2] 李素侠,段友祥,嵌入式TCP/IP协议的分析与研究.微计算机信息.2005,7-2

[3] 符意德.嵌入式系统设计原理及应用.清华大学出版社.2004.11

[4] 王海燕.嵌入式Web服务器的研究与实现.武汉大学研究生论文.2003.5

[5] Douglas e.comer.用TCP/IP进行网际互连 第1卷:原理、协议和体系结构.电子工业出版社.1998.4

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

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



上一页 1 2 3 下一页

评论


相关推荐

技术专区

关闭