Netstat状态分类<?xml:namespace prefix = o ns = "urn:schemas-microsoft-com:office:office" />

 

netstat -an命令查看!再stat下面有一些英文,简单说一下这些英文具体都代表什么:

LISTEN(Listening for a connection.)侦听来自远方的TCP端口的连接请求

SYN-SENT(Active; sent SYN. Waiting for a matching connection request after having sent a connection request.)再发送连接请求后等待匹配的连接请求

SYN-RECEIVED(Sent and received SYN. Waiting for a confirming connection request acknowledgment after having both received and sent connection requests.)再收到和发送一个连接请求后等待对方对连接请求的确认

ESTABLISHED(Connection established.)代表一个打开的连接

FIN-WAIT-1(Closed; sent FIN.)等待远程TCP连接中断请求,或先前的连接中断请求的确认

FIN-WAIT-2(Closed; FIN is acknowledged; awaiting FIN.)从远程TCP等待连接中断请求

CLOSE-WAIT(Received FIN; waiting to receive CLOSE.)等待从本地用户发来的连接中断请求

CLOSING(Closed; exchanged FIN; waiting for FIN.)等待远程TCP对连接中断的确认

LAST-ACK(Received FIN and CLOSE; waiting for FIN ACK.)等待原来的发向远程TCP的连接中断请求的确认

TIME-WAIT(In 2 MSL (twice the maximum segment length) quiet wait after close. )等待足够的时间以确保远程TCP接收到连接中断请求的确认

CLOSED(Connection is closed.)没有任何连接状态

TCP连接建立

首先要说明的是要明确TCP连接建立的过程需要3次握手,下面举例说明各种状态存在的时刻:

1. 首先在服务器A上开启FTP服务,开始侦听来自远端TCP端口的连接请求,这个时候查看服务器A状态为:LISTENING

2. 在客户端B上向A发送FTP连接请求,这个时候数据包同步位置1,这是TCP三次握手的第一步。在发送后没收到确认时,在客户端B上其状态为:SYN-SENT。此时客户端B启动连接定时器。如果在75秒内没有收到应答,则放弃连接建立。

3. 在服务器A上收到从B上发送的SYN同步包后,确认,然后再向B发送SYN的同步包,此数据包同时将TCP标记中的同步位和确认位置1,它既对第一步中的客户端同步数据包进行确认,表示愿意与客户端同步,同时再对客户端主机进行同步请求,这是TCP连接的第一步。这个时候在服务器A上,状态为:SYN-RECEIVED。此时服务器A启动连接定时器。如果在75秒内没有收到应答,则放弃连接建立。

4. 在客户端B上接收到从A上发过来的确认同步包后进行确认,此数据包中将TCP标记中的确认位置1,表示这是一个确认数据包,此时在客户端B状态转换为:ESTABLISHED

5. 服务器A接收到从B发过来的确认包后,状态转换为:ESTABLISHED

此时TCP连接正式建立。
TCP
连接关闭

6. 应用程序在在连接不需要的时候,通过客户端B向服务器A发送的终止信息的FIN包后,客户端B处于FIN-WAIT-1状态。

7. 从服务器A接收到客户端B发送的终止数据包,它告诉客户端B已成功接收客户端的上数据包,此时等待应用程序来关闭连接,此时服务器A进入CLOSE_WAIT状态。

8. 客户端B接收到带有确认位的数据包后,对此进行确认,同意关闭TCP连接此时客户端B转移到FIN-WAIT-2状态。当连接从FIN-WAIT-1状态转移到FIN-WAIT-2状态时,将一个FIN-WAIT-2定时器设置为10分钟。

9. 服务器A在应用程序同意终止连接后,向客户端B发送终止FIN包,此时服务器状态转为LAST-ACT

10. 客户端B在接收到从服务器A发送的终止包后,同意终止连接,然后再向服务器端发送确认信息,此时客户端B转向TIME-WAIT状态。当连接进入TIME-WAIT状态时,该定时器被**。

11. 服务端A在收到客户端B的确认后,关闭连接,服务器A状态转向CLOSED

12. 客户端BTIME-WAIT定时器超时时,与该连接相关的内核数据块被删除,连接终止,转向CLOSED状态。

此时TCP连接正式关闭。
备注

1. 一个由客户端发起的关闭TCP连接的示意图:<?xml:namespace prefix = v ns = "urn:schemas-microsoft-com:vml" />

网络状态转换

2. 连接终止请求对与建立连接的双方是可以同时发出的,在发出终止请求后,双方都进入FIN-WAIT-1状态,随着定时器的超时,双方都进入CLOSING状态,在这个定时器再次超时后,均转入TIME-WAIT状态,在TIME-WAIT的定时器超时后,双方均放弃这次连接,连接转为CLOSE状态。如图示:

 网络状态转换

网络状态转换
 
服务器socket状态转换

 

转载于:https://blog.51cto.com/cwind/957430

相关文章:

  • 2021-07-12
  • 2021-08-11
  • 2021-12-25
猜你喜欢
  • 2022-01-10
  • 2021-04-28
  • 2021-08-08
  • 2022-12-23
  • 2021-12-25
  • 2021-08-14
  • 2021-06-29
相关资源
相似解决方案