防伪码:没有相当程度的孤独是不可能有内心的平和。

我们通过了解TCP各个状态,可以排除定位网络或系统故障时大有帮助。通过netstat命令查看服务器的连接数。

netstat -an|awk '/tcp/ {print $6}'|sort|uniq -c  
     28 CLOSE_WAIT
      2 CLOSING
     116 ESTABLISHED
     28 FIN_WAIT1
     12 FIN_WAIT2
      4 LAST_ACK
      5 LISTEN
     72 SYN_RECV
      295 TIME_WAIT


状态 描述
CLOSED 没有任何连接
LISTENING 侦听来自远方的TCP端口的连接请求
SYN-SENT 应用已经开始,打开一个连接
SYN-RECEIVED 一个连接请求已经到达,等待确认
ESTABLISHED 代表一个打开的连接
FIN-WAIT-1 等待远程TCP连接中断请求,或先前的连接中断请求的确认
FIN-WAIT-2 从远程TCP等待连接中断请求
CLOSE-WAIT 等待从本地用户发来的连接中断请求
CLOSING 等待远程TCP对连接中断的确认
LAST-ACK 等待原来的发向远程TCP的连接中断请求的确认
TIME-WAIT 等待足够的时间以确保远程TCP接收到连接中断请求的确认


1、客户端的状态可以用如下的流程来表示:

CLOSED->SYN_SENT->ESTABLISHED->FIN_WAIT_1->FIN_WAIT_2->TIME_WAIT->CLOSED


2、服务器的状态可以用如下的流程来表示:

CLOSED->LISTEN->SYN_RECEIVED->ESTABLISHED->CLOSE_WAIT->LAST_ACK->CLOSED