草庐IT

FIN-WAIT

全部标签

c - socket - close(2) 发送 RST 数据包而不是 FIN 数据包

我写了一个简单的客户端和一个服务器,基本上客户端先连接到服务器,然后用close(2)断开连接,它看起来像:/*settingserveraddressandotherstuff*/...connect();close();调用connect()和close()之间没有其他操作。服务器接受连接并使用epoll(7)监控EPOLLOUT事件。epoll报告EPOLLOUT时,服务器向客户端写入1个字节。nev=epoll_wait(ep,events,10,-1);for(inti=0;i这里是tcpdump,9999是服务器:11:52:11.411988IPlocalhost.377

windows - 环回接口(interface)上的 TIME_WAIT

为什么到环回接口(interface)的TCP连接以TIME_WAIT结束(套接字关闭并设置了SO_DONTLINGER),但到不同主机的相同连接不会结束在TIME_WAIT中(它们立即被重置/销毁)?这里有一些场景来说明:(A)两个应用程序,一个客户端和一个服务器,都在同一台Windows机器上运行。客户端通过服务器的环回接口(interface)(127.0.0.1,端口xxxx)连接到服务器,发送数据,接收数据,关闭套接字(设置SO_DONTLINGER)。假设连接非常短暂,因此客户端应用程序每秒建立和销毁大量连接。最终结果是套接字在TIME_WAIT中结束,客户端最终耗尽了它的

linux - 状态 FIN_WAIT_1 出现问题

最近我有一些端口保持在FIN_WAIT_1状态,直到两天后。目标端口曾经被一个服务器进程使用,客户端通过此端口连接到服务器进程。情况是我们停止了服务器进程,显然某些客户端在那一刻仍在与服务器连接。据我了解,服务器进程向客户端发送FIN包并等待ACK包返回。不幸的是,那个ACK​​包似乎要在两天后才能到达服务器端。我的问题是有任何配置,比如FIN_WAIT_1状态的超时。我浏览了互联网搜索,但在那里一无所获。如果您对此有任何经验,请帮助告诉我。顺便说一句,当端口发生FIN_WAIT_1时,服务器进程已经消失。提前致谢 最佳答案 FIN

java - 检测服务器端 FIN 数据包

我有以下Java代码:Sockets=newSocket();s.connect(mySockAddr,myTimeout);假设我不使用套接字,我需要在服务器端连接关闭时检测到它(FIN或RST数据包)。例如,虽然检查套接字状态的线程,或拦截FIN/RST数据包...如何检测?我已经尝试使用printWriter.checkError()、socket.isConnected()、socket.isClosed()方法,但没有任何效果。 最佳答案 我知道检测对方是否关闭连接的唯一方法是尝试从输入流中读取。从关闭的套接字读取将返回-

apache - 太多 TIME_WAIT 连接

我们有一个使用Apachemod代理的相当繁忙的网站(每天100万页浏览量),该代理在TIME_WAIT状态下不断因连接(>1,000)而过载。连接到端口3306(mysql),但mysql只显示几个连接(显示进程列表)并且运行良好。我们已经尝试改变一堆事情(保持活跃开/关),但似乎没有任何帮助。所有其他系统资源都在合理范围内。我查了一下,好像是改了tcp_time_wait_interval。但这似乎有点过激。我以前在繁忙的网站上工作过,但从来没有遇到过这个问题。有什么建议吗? 最佳答案 每一个time_wait连接都是一个已经关

javascript - 试图弄清楚为什么 Firefox 会发送未经请求的 FIN ACK 数据包

我使用OpenLaszlo用DHTML编写了一个应用程序。该应用程序在Chrome中运行良好,但在Firefox中出现问题。javascript客户端向Struts2中间层发出HTTPPOST请求,中间层通过Hibernate查询数据库,然后返回XML响应。该应用程序正在生产中,因此客户端代码、中间层和数据库都托管在我的台式机上。我可以在Chrome和Firefox中并排运行该应用程序,虽然在Chrome中一切正常,但一些HTTP请求(每次都是相同的请求)在Firefox上会失败。失败者会在发起POST请求后立即这样做,没有给出HTTP响应或错误代码(我正在使用Firebug来观察PO

linux - 在 TIME_WAIT 状态的套接字上接收数据

在以下情况下,当TIME_WAIT中的套接字收到一个段时会发生什么a)当它收到丢失的ACK时b)当发送节点想要使用服务器上的相同src_ip:src_port与服务器已经具有TIME_WAIT套接字的相同dst_ip:dst_port建立另一个新连接时。它会忽略/丢弃它,发送重置还是重用TIME_WAIT套接字?谢谢中号 最佳答案 a)WhenitreceiveslostACK没有。b)Whensendingnodewantstoestablishanothernewconnectionusingsamesrc_ip:src_por

linux - SO_REUSEADDR 导致服务器重用 TIME_WAIT 连接?

据我所知,SO_REUSEADDR允许服务器绑定(bind)到一个处于TIME_WAIT状态的地址。但是它如何影响服务器在接受新连接时的Action呢?假设我们正在主机A和服务器B之间通信,其监听套接字设置为启用了SO_REUSEADDR,并且有一个连接C1=(A,PortA,B,ListenPort)现在处于TIME_WAIT状态(从服务器B的角度来看).现在,如果主机A尝试使用同一对(A,PortA)连接到B,即使C1仍在TIME_WAIT中,是否会建立重复连接C2=(A,PortA,B,ListenPort)?为什么? 最佳答案

qt - 为什么 QWebSocketServer 在客户端连接尝试时发送 TCP [FIN] 消息

我在Qt5.8中使用QWebSocketServer。大多数WebSocket客户端都可以轻松连接到它,但其中一个会引发异常行为。下面是我使用此客户端(客户端10.8.0.1,服务器10.8.0.8)获得的WireShark捕获。10.8.0.110.8.0.8TCP4451331→8888[SYN]Seq=0Win=2920Len=0MSS=135510.8.0.810.8.0.1TCP448888→51331[SYN,ACK]Seq=0Ack=1Win=29200Len=0MSS=146010.8.0.110.8.0.8TCP4051331→8888[ACK]Seq=1Ack=1W

python - imaplib SSL 连接在关闭后卡在 CLOSE_WAIT

我有一个通过IMAP4_SSL连接到IMAP服务器的python代码,在它尝试关闭连接之前一切正常:deflogout(self):"ClosethemailboxandlogoutandsettheconnectiontoNone"try:self.connection.close()self.connection.logout()excepte:passself.connection=None这使连接处于CLOSE_WAIT状态:tcp3801.2.3.4:558095.6.7.8:993CLOSE_WAIT18983/python2.6它长期存在的地方。python进程本身是一个