免费注册 查看新帖 |

Chinaunix

  平台 论坛 博客 文库
12下一页
最近访问板块 发新帖
查看: 3907 | 回复: 10
打印 上一主题 下一主题

请教一个TCP链接释放的问题? [复制链接]

论坛徽章:
0
跳转到指定楼层
1 [收藏(0)] [报告]
发表于 2009-11-18 15:40 |只看该作者 |倒序浏览
有A,B两端,A向B发送数据,如果A发完后关闭他这端的链接,那A如何知道B接收完并安全释放链接呢?

论坛徽章:
5
IT运维版块每日发帖之星
日期:2015-08-06 06:20:00IT运维版块每日发帖之星
日期:2015-08-10 06:20:00IT运维版块每日发帖之星
日期:2015-08-23 06:20:00IT运维版块每日发帖之星
日期:2015-08-24 06:20:00IT运维版块每日发帖之星
日期:2015-11-12 06:20:00
2 [报告]
发表于 2009-11-18 16:01 |只看该作者
另外关闭连接需要4次握手。

论坛徽章:
0
3 [报告]
发表于 2009-11-18 16:14 |只看该作者
A自己把要发的数据都发完就直接FIN了,如果对端还没有接收完所有的数据,是不会对这个FIN进行ACK的,所以这个方向的连接不会断开。 如果B没有收完数据,应该会发ACK来要他需要的包(没做实验,猜想)。

论坛徽章:
0
4 [报告]
发表于 2009-11-18 16:14 |只看该作者
好像还一个半关闭状态是吧

论坛徽章:
0
5 [报告]
发表于 2009-11-18 16:23 |只看该作者

回复 #4 testvpn 的帖子

接受完B返回一个ACK,中途应该不会发送ACK寻求需要的包吧,从建立连接到断开4步搞定

论坛徽章:
0
6 [报告]
发表于 2009-11-18 16:59 |只看该作者

回复 #6 hyagami 的帖子

是,我说的是如果B没收完数据就收到FIN的情况下。\r\n因为有时候A发完数据就发FIN,A还没收到B的ACK就把FIN发出去了。\r\n\r\n这种情况下,如果B收完了数据,他就直接把对之前数据的ACK省略了,直接发对FIN的ACK就行了。\r\n如果没收完数据,我觉得B应该用ACK来请求之前的数据,而不对这个FIN做ACK。

论坛徽章:
5
IT运维版块每日发帖之星
日期:2015-08-06 06:20:00IT运维版块每日发帖之星
日期:2015-08-10 06:20:00IT运维版块每日发帖之星
日期:2015-08-23 06:20:00IT运维版块每日发帖之星
日期:2015-08-24 06:20:00IT运维版块每日发帖之星
日期:2015-11-12 06:20:00
7 [报告]
发表于 2009-11-18 19:16 |只看该作者
TCP/IP协议详解记得有过精辟论述。好像这本书了。记的不十分准确。

论坛徽章:
0
8 [报告]
发表于 2009-11-19 00:12 |只看该作者

回复 #7 testvpn 的帖子

B如果没有收完数据的话,在收到来自A的FIN执行被动关闭,对于半关闭的应用来说,A仍然会发送完数据的,但是B不会\r\n\r\n发送ACK去请求A的数据,而是返回一个FIN,直到A发回FIN的ACK时,连接才关闭,一般是由A来决定何时终止数据传送的

论坛徽章:
0
9 [报告]
发表于 2009-11-19 10:31 |只看该作者

回复 #9 hyagami 的帖子

当A发送完FIN进行主动关闭后,就表明A没有数据要发送了,所以A不会再发送数据,但是这个时候B还没有对A发出的最后的数据进行ACK,而A发出的最后的数据有可能丢失,所以如果这个包丢失了,那么在B收到FIN的时候,由于序列号不连续,不知道B会采取什么动作,我猜是用ACK请求数据。\r\n大概翻了下TCP/IP详解,没有找到相关的内容。\r\n\r\n因为我做了个FTP的实验:\r\n当服务器端发送完数据后,在还没有收到客户端ACK的情况下,他就发了FIN,而客户端直接ACK了这个FIN,当然,这是因为客户端确实收到了所有的数据,序列号也是连续的。\r\n目前我还做不出让客户端收不到最后一个包含数据的包的实验。。。

论坛徽章:
0
10 [报告]
发表于 2009-11-19 11:30 |只看该作者

回复 #10 testvpn 的帖子

哦 TCP/ip详解 18章有详细的讲这块的内容,你可以再翻翻看看
您需要登录后才可以回帖 登录 | 注册

本版积分规则 发表回复

  

北京盛拓优讯信息技术有限公司. 版权所有 京ICP备16024965号-6 北京市公安局海淀分局网监中心备案编号:11010802020122 niuxiaotong@pcpop.com 17352615567
未成年举报专区
中国互联网协会会员  联系我们:huangweiwei@itpub.net
感谢所有关心和支持过ChinaUnix的朋友们 转载本站内容请注明原作者名及出处

清除 Cookies - ChinaUnix - Archiver - WAP - TOP