Linux的TCP状态里各种WAIT的含义
netstat -ant 显示的连接状态有几种WAIT: FIN_WAIT_1,FIN_WAIT_2,CLOSE_WAIT和TIME_WAIT. 他们的含义要从TCP的连接中断过程说起
Server Client
-------- FIN -------->
<------- ACK ---------
<------- FIN ---------
-------- ACK -------->
对于服务器主动关闭连接(Active Close):
服务器首先向客户机发送FIN包,然后服务器进入FIN_WAIT_1状态。
客户机向服务器确认FIN包收到,向服务器发送FIN/ACK,客户机进入CLOSE_WAIT状态。
服务器收到来自客户机的FIN/ACK后,进入FIN_WAIT_2状态
现在客户机进入被动关闭("passive close")状态,客户机OS等待他上面的应用程序关闭连接。一旦连接被关
闭,客户端会发送FIN包到服务器
当服务器收到FIN包后,服务器会向客户机发送FIN/ACK确认,然后进入著名的TIME_WAIT状态
由于在连接关闭后,还不能确定所有连接关闭前的包都被服务器接受到了(包的接受是没有先后顺序的),因此有了TIME_WAIT状态。在这个状态中,服务器仍然在等待客户机发送的但是还未到达服务器的包。这个状态dl.
将保持2*MSL的时间,这里的MSL指的是一个TCP包在网络中存在的最长时间。一般情况下2*MSL=240秒。
相关推荐
wangqd 2020-11-09
liupengqwert 2020-10-28
一叶梧桐 2020-10-14
lzzyok 2020-10-10
88550291 2020-08-21
yang0cs 2020-07-04
MichelinMessi 2020-06-13
fengshantao 2020-06-11
安得情怀似旧时 2020-06-11
llxxyy0 2020-06-05
houjinkai 2020-06-03
Dukezhao 2020-05-29
yshlovelx 2020-05-27
dancheng 2020-05-26
songjie 2020-02-14
TMD咯MySQL 2020-05-09
简单的快乐 2020-05-09
爱传文档 2020-05-04