服务器和端口端TCP交互图解

 一 TCP状态转换图

服务器和端口端TCP交互图解_第1张图片

二 TCP的各种状态

状态

说明

CLOSED

没有连接,表示初始状态

LISTEN

表示服务器端的某个socket处于监听状态,可以接收连接。服务端收到被动打开,等待SYN

SYN_SENT

客户端socket执行CONNECT连接时,客户端已发送SYN,等待服务端的ACK

SYN_RCV

服务端已发送SYN+ACK,等待客户端的ACK

ESTABLISHED

表示连接已经建立了,数据传送在进行

FIN_WAIT_1

第一个FIN已发送,等待对端的ACK

FIN_WAIT_2

第一个FIN的ACK已收到,等待对端的FIN,实际上该状态下的socket,表示半连接,即有一方要求关闭连接,但另外还告诉对方,我暂时还有点数据需要传送给你,请稍后再关闭连接。

TIME_WAIT

收到对端的FIN,已发送ACK,等待2MSL超时。如果在FIN_WAIT_1状态下,收到了对方同时带FIN标志和ACK标志的报文时,可以直接进入TIME_WAIT状态,而无需经过FIN_WAIT_2状态

CLOSING

如果双方几乎同时关闭一个socket,那么就出现同时发送FIN报文的情况,就会出现CLOSING状态,表示双方都正在关闭

CLOSE_WAIT

收到第一个FIN,已发送ACK。接下来要考虑的是查看是否还有数据发送给对方,如果没有,就可以关闭socket了,发送FIN报文给对方,即关闭连接。

LAST_ACK

已发送第二FIN,等待ACK

三 连接建立和终止

服务器和端口端TCP交互图解_第2张图片

四 使用三向握手的连接终止

服务器和端口端TCP交互图解_第3张图片

五 同时打开

服务器和端口端TCP交互图解_第4张图片

六 同时关闭

服务器和端口端TCP交互图解_第5张图片

七 拒绝连接

服务器和端口端TCP交互图解_第6张图片

八 异常终止连接

服务器和端口端TCP交互图解_第7张图片

 

你可能感兴趣的:(网络)