博客首页 注册 建议与交流 排行榜 加入友情链接
推荐 投诉 搜索: 帮助

九点一刻

人的一生就象在拉屎,有时你已经很努力了可出来的只是个屁.
   ohy3686.cublog.cn
关于作者  
姓名:OHY
职业:自由职业者
年龄:24
位置:中国计量学院
个性介绍:农妇,山泉,有点田。

我的分类  




在嵌入式系统中支持TCP协议
在嵌入式系统中支持TCP协议
OHY 2006-12-23
   在嵌入式系统中支持TCP比支持UDP更加复杂。除了添加和去除报头及支持IP以外,还必须为连接远程的主机进行3次握手,在交换数据时维护序号和确认号;在关闭连接时握手,以及对检测到的错误作出响应。
 
一、在以太网中使用TCP发送数据:
1、通过3次握手建立连接。
2、根据接收到的窗口值确定远程主机可接收的数据大小。
3、在TCP报头的相应位置放置源端口号、目的端口号、序号、确认号、报头长度、源主机窗口值以及校验和等。计算校验和需要知道源和目的端的IP地址。
4、在报文段的数据部分放置待发送的数据。
5、在IP数据报的数据部分放置TCP报文段。IP数据报需要知道源和目的端的IP地址,并计算报头的校验和。
6、将IP数据报发送至以太网控制器的驱动程序,准备发送,并启动超时定时器。
7、等待接收表示远程主机收到数据的确认号。如果在超时之后确认号没有到达,则重发该报文段。
 
二、在以太网中使用TCP接收数据:
1、通过3次握手建立连接。
2、接收来自以太网控制器驱动程序的IP数据报。
3、从该IP数据报中剥离IP报头。计算校验和,并与接收到的数值比较。
4、如果校验和相同,则从TCP数据报中剥离TCP报头。计算校验和,并与接收到的数值比较。
5、检查接收到的确认号,确认目的主机是否已接收前次发送的数据,如果已接收,就从重发队列中删除前次发送的数据。
6、将接收到的序号与期望值比较。如果两者相同,则设置确认号,并置于TCP报文段中返回给发送方。
7、使用目的端口号决定数据传送到何处。
 
   此外,一方可在任何时候请求关闭或重新连接,另一方应确认请求,并可能请求关闭或重置对方的连接。如果使用支持TCP的模块,那么就没有必要考虑创建报文段、计算校验和和序号、确认号等这些细节。

 发表于: 2006-12-23,修改于: 2006-12-23 23:05 已浏览721次,有评论0条 推荐 投诉

  网友评论

  发表评论



Copyright © 2001-2006 ChinaUnix.net All Rights Reserved

感谢所有关心和支持过ChinaUnix的朋友们
页面生成时间:0.34017

京ICP证041476号