一、Linux服务器上11种网络连接状态: 图:TCP的状态机 通常情况下:一个正常的TCP连接,都会有三个阶段:1、TCP三次握手;2、数据传送;3、TCP四次挥手 注:以下说明最好能结合”图:TCP的状态机”来理解
SYN: (同步序列编号,Synchronize Sequence Numbers)该标志仅在三次握手建立TCP连接时有效
表示一个新的TCP连接请求
ACK: (确认编号,Acknowledgement Number)是对 TCP请求的确认标志,同时提示对端系统已经成功接收所有数据
FIN: (结束标志,FINish)用来结束一个TCP回话
但对应端口仍处于开放状态,准备接收后续数据
1)、LISTEN:首先服务端需要打开一个socket进行监听,状态为 LISTEN
/* The socket is listening for incoming connections
侦听来自远方 TCP端口的连接请求 */ 2)、SYN_SENT:客户端通过应用程序调用 connect进行 active open
于是客户端tcp发送一个SYN以请求建立一个连接
之后状态置为SYN_SENT
/*The socket is actively attempting to establish a connection
在发送连接请求后等待匹配的连接请求 */ 3)、SYN_RECV:服务端应发出ACK确认客户端的SYN,同时自己向客户端发送一个SYN
之后状态置为SYN_RECV /* A connection request has been received from the network
在收到和发送一个连接请求后等待对连接请求的确认 */ 4)、ESTABLISHED: 代表一个打开的连接,双方可以进行或已经在数据交互了
/* The soc