Chinaunix

标题: 求助关于TCP连接半关闭的问题? [打印本页]

作者: 82387193    时间: 2006-02-22 13:32
标题: 求助关于TCP连接半关闭的问题?
netstat -na 观察TCP连接时发现有许多状态为FIN_WAIT_2的连接。\r\n求教大家如何快速终止掉这些连接?\r\n以及出现这些状态的原因?
作者: 82387193    时间: 2006-02-23 01:10
TCP提供连接的一端在结束发送后接收到来自另一端数据的能力.这就是半关闭。
作者: 82387193    时间: 2006-02-23 01:32
为了使用这个特性,编程接口必须为应用程序提供一种方式来说明“我已经完成了数据\r\n传送,因此发送一个文件结束( F I N)给另一端,但我还想接收另一端发来的数据,直到它给\r\n我发来文件结束(F I N)”\r\n如果应用程序不调用c l o s e而调用s h u t d o w n,且第2个参数值为1,则插口的A P I支持\r\n半关闭。然而,大多数的应用程序通过调用close终止两个方向的连接。
作者: wonderliang    时间: 2006-02-23 22:21
做快的方法是,对方也发FIN就行了
作者: 82387193    时间: 2006-02-24 08:49
作为client端就不没有办法了是吗?\r\n谢谢版主!
作者: love1y    时间: 2006-02-24 09:15
以前看见过一篇帖子,用脚本可以清除。google一下看看。\n\n[ 本帖最后由 love1y 于 2006-2-24 13:42 编辑 ]
作者: 82387193    时间: 2006-02-24 13:10
really,精灵?正在苦读TCP/IP\r\n产生大量FIN_WAIT_2只有一种情况啊\r\nclient端发送FIN后状态变为FIN_WAIT_1,接收ACK,状态变为FIN_WAIT_2,没有接收到server端的FIN,状态就停在了FIN_WAIT_2,直到server端服务重启。\r\n不会是server端先发起FIN,接收ACK,而client端没有FIN吧???\r\n不会吧???
作者: love1y    时间: 2006-02-24 13:31
这个也算半关闭,刚又看了一下书\r\nserver端也可以先fin吧。\r\n你是client端出现的fin_wait_2?\n\n[ 本帖最后由 love1y 于 2006-2-24 13:41 编辑 ]
作者: 82387193    时间: 2006-02-24 16:53
是啊,我们是client端,server端不可以发起fin吧。\r\n我们这出现大量FIN_WAIT_2
作者: 82387193    时间: 2006-02-24 16:59
我不清楚了\r\n我观察过,出现大量FIN_WAIT_2要么没接收到FIN,要么接收到FIN而未发送ACK\r\n怎么检测是否发送以及接收FIN,以及怎么检测发送接收ACK呢??
作者: wonderliang    时间: 2006-02-24 20:57
一般来说,等一段时间,就行了
作者: wonderliang    时间: 2006-02-24 20:58
等一段时间,老的wait_2会消失\r\n但是有可能产生新的wait_2
作者: 82387193    时间: 2006-02-26 16:37
如痴等法,已经严重影响连接了,经常会报连接第三方出错\r\n关键是我不知该如何检测到错误出在哪方?!
作者: love1y    时间: 2006-02-27 08:54
难道要修改内核?\r\n详解那书上不是提到bsd某些版本把这个等待参数值设为10分多钟么,超时就转到closed状态。是不是可以参考一下。\r\n郁闷的是说10分75秒......
作者: 82387193    时间: 2006-02-27 10:04
参考一下\r\nSCO的呢?\r\n谢谢精灵
作者: wonderliang    时间: 2006-02-27 10:46
个人认为,修改了这个值也是治标不治本\r\n要好好分析,这些连接哪来的,为什么要建立这么多连接\r\n是不是受到攻击了?
作者: 82387193    时间: 2006-02-28 21:07
今天下午和第三方沟通了一下\r\n他们说连接建立起来后我们就没有后续的报文,导致隔一段时间后第三方强制关闭了连接\r\n怎样监控是否发送FIN、ACK以及接收FIN、ACK呢??\r\n关键是其他的socket连接都没iyou问题就是这一个\r\n郁闷中
作者: love1y    时间: 2006-03-01 15:02
原帖由 82387193 于 2006-2-28 21:07 发表\r\n怎样监控是否发送FIN、ACK以及接收FIN、ACK呢??\r\n
\r\n可以这样么?
作者: 82387193    时间: 2006-03-02 09:24
关闭掉就应该交给tcp/ip去做了啊\r\n作为server端可不可以先主动关闭呢
作者: wonderliang    时间: 2006-03-02 10:01
IDS可以设定一定条件,给双方发个reset,干掉连接。
作者: 82387193    时间: 2006-03-07 08:41
IDS??入侵检测系统吗?\r\n可以吗?\r\nUNIX下怎么设呢?\r\nWin下呢?




欢迎光临 Chinaunix (http://bbs.chinaunix.net/) Powered by Discuz! X3.2