| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 1857 人关注过本帖
标题:简述 TCP 连接中的 half-close 状态
取消只看楼主 加入收藏
madfrogme
Rank: 20Rank: 20Rank: 20Rank: 20Rank: 20
等 级:版主
威 望:21
帖 子:1160
专家分:1106
注 册:2009-6-24
结帖率:98.63%
收藏
 问题点数:0 回复次数:1 
简述 TCP 连接中的 half-close 状态
TCP Half-close 状态可以通过指定shutdown() 函数的第二个参数,SHUT_WR  或者是 SHUT_RD

来实现 而不是使用close() 函数, 但这个特性很少被应用程序使用。 为什么需要half-close

举个例子

 sun  % rsh bsdi sort < datafile

上面一行命令的的意思是从 sun 机器上连接到 bsdi ,

然后在 bsdi 上执行 sort 命令, 而datafile则是从 本地(sun)传到bsdi上的。

 因为sort 程序需要等到datafile 全部传到bsdi 上之后才可以执行排序操作

所以当sun 把文件传完之后(到达end-of-file),

就可以对这个TCP连接执行half-close 操作了(shutdown, 发送一个FIN)

因为执行half-close 操作之后还是可以读 从bsdi上发来的结果。 所以sort 结束之后把结果发送给sun,

结果发送完毕之后,bsdi就可以执行close()操作(发送FIN),这样TCP连接就完全被断开了
搜索更多相关主题的帖子: close 应用程序 
2012-11-11 22:25
madfrogme
Rank: 20Rank: 20Rank: 20Rank: 20Rank: 20
等 级:版主
威 望:21
帖 子:1160
专家分:1106
注 册:2009-6-24
收藏
得分:0 
检测Half-Open

对于一个TCP 连接来说, Half-Open 就是一个连接的其中任何一端突然关闭或突然退出,

都没来得及给对方发送一个FIN,

比如  bsdi % telnet svr4 discard

从bsdi 连入svr4 的discard 服务, 发送若干条消息之后,

服务器svr4突然crash 了(突然断电), 然后重启, 总共花掉190秒,

bsdi因为在此期間没有再发消息, 所以对此毫不知情,

当svr4重启之后,bsdi再次向svr4发送消息, 这时svr4 就会用一个Reset 来回应bsdi

当然回应之前, 因为svr4的重启了,ARP 缓存已经丢失, 在用Reset回应bsdi之前

它还会发送一个ARP request


The quieter you become, the more you can hear
2012-11-12 19:34
快速回复:简述 TCP 连接中的 half-close 状态
数据加载中...
 
   



关于我们 | 广告合作 | 编程中国 | 清除Cookies | TOP | 手机版

编程中国 版权所有,并保留所有权利。
Powered by Discuz, Processed in 0.037583 second(s), 8 queries.
Copyright©2004-2024, BCCN.NET, All Rights Reserved