最近做lamp到调优测试,针对系统tcp参数进行调整,修改systcl.conf配置文件。做这个调试不得不对netstat 命令监控端口的状态理解,下面针对各个状态进行相对到解释。在这之前回忆一下tcp 三次握手 和 四次断开的过程。

1.三次握手

第一次握手:建立连接时,客户端发送syn包(syn=j)到服务器,并进入SYN_SEND状态,等待服务器确认;SYN:同步序列编号(Synchronize Sequence Numbers)。

第二次握手:服务器收到syn包,必须确认客户的SYN(ack=j+1),同时自己也发送一个SYN包(syn=k),即SYN+ACK包,此时服务进入SYN_RECV状态;   

第三次握手:客户端收到

服务

器的SYN+ACK包,向服务器发送确认包ACK(ack=k+1),此包发送完毕,客户端和服务器进入ESTABLISHED状态,完成三次握手。

 

2.四次断开

 


     一.当主机A完成数据传输后,将控制位FIN置1,提出停止TCP连接的请求
     二.主机B收到FIN后对其作出响应,确认这一方向上的TCP连接将关闭,将ACK置1
     三.由B 端再提出反方向的关闭请求,将FIN置1
     四.主机A对主机B的请求进行确认,将ACK置1,双方向的关闭结束.

 

回忆了三次握手后,我们来看下各个状态的含义。



LISTEN:

侦听来自远方的TCP端口的连接请求


SYN-SENT:

在发送连接请求后等待匹配的连接请求


SYN-RECEIVED:

在收到和发送一个连接请求后等待对方对连接请求的确认


ESTABLISHED:

代表一个打开的连接


FIN-WAIT-1:

等待远程TCP连接中断请求,或先前的连接中断请求的确认


FIN-WAIT-2:

从远程TCP等待连接中断请求


CLOSE-WAIT:

等待从本地用户发来的连接中断请求


CLOSING:

等待远程TCP对连接中断的确认


LAST-ACK:

等待原来的发向远程TCP的连接中断请求的确认


TIME-WAIT:

等待足够的时间以确保远程TCP接收到连接中断请求的确认


CLOSED:

没有任何连接状态

 

以下是我到pc中,netstat 所显示到各个链接状态

 

haifeng@haifeng-EX38-DS4:~$ netstat -ant

 

激活Internet连接 (服务器和已建立连接的)

 

Proto Recv-Q Send-Q Local Address           Foreign Address         State     

 

tcp        0      0 0.0.0.0:22              0.0.0.0:*               LISTEN    

 

tcp        0      0 127.0.0.1:631           0.0.0.0:*               LISTEN    

 

tcp        1      0 192.168.109.42:40040    91.189.88.33:80         CLOSE_WAIT

 

tcp        0      0 192.168.109.42:42118    192.168.18.44:22        ESTABLISHED

 

tcp        0      0 192.168.109.42:55021    209.85.135.102:80       TIME_WAIT 

 

tcp       38      0 192.168.109.42:36663    91.189.*。*:443       CLOSE_WAIT

 

tcp        0      0 192.168.109.42:49780    72.14.203.102:80        TIME_WAIT 

 

tcp        0      0 192.168.109.42:50316    219.142.118.8:80        ESTABLISHED

 

tcp        0      0 192.168.109.42:46624    192.168.18.44:22        ESTABLISHED

 

tcp        0      0 192.168.109.42:43129    192.168.18.44:22        ESTABLISHED

 

tcp        0      0 192.168.109.42:50500    192.168.18.48:22        ESTABLISHED

 

tcp        0      0 192.168.109.42:42254    192.168.18.47:22        ESTABLISHED

 

tcp6       0      0 :::22                   :::*                    LISTEN    

 

tcp6       0      0 ::1:631                 :::*                    LISTEN