查看: 2823|回复: 3

TCP发送最后一段数据时如果没有标记FIN会如何?

[复制链接]
发表于 2009-3-15 16:30:34 | 显示全部楼层 |阅读模式
TCP发送数据结束时,也就是发送最后一个数据时如果没有标记FIN,会有什么后果,是不是对方一直会等待数据接收完毕而不做回应呢 ?
回复

使用道具 举报

 楼主| 发表于 2009-3-15 17:05:54 | 显示全部楼层

一个网友的回复,希望高手鉴定

有时数据传输量比较多,那么数据将被打包层多个TCP在发送
所以前面的几个包一定不含FIN,而只在最后一个包才有FIN,因此我是想它一定是在发送完所有数据包时等待,如果没有收到回应就重复
对方则没有收到含有FIN的数据包,以为数据还有,因此对方一直等待最后一个数据包才做回复,于是在额定时间内没有回复,因此我们才要重发
回复

使用道具 举报

发表于 2009-3-16 12:25:09 | 显示全部楼层
不发送FIN连接应该保持一段时间、然后看是S还是C先断开连接,一般是S发送FIN断开连接,因为服务器不可能让你连在上面不做任何事情。
回复

使用道具 举报

 楼主| 发表于 2009-3-16 14:19:12 | 显示全部楼层

回复 3# 的帖子

FIN 应该是结束一个连接,而非只是结束一次数据的传输吧?所以感觉我网友的答案有问题
回复

使用道具 举报

您需要登录后才可以回帖 登录 | CSNA会员注册

本版积分规则

快速回复 返回顶部 返回列表