三次握手是为了确认连接状态是客户端与服务端进入ESTABLISHED(连接)状态 第一次握手:客户端会发一个SYN报文,指明客户端的初始化序列号ISN,同时客户端进入? SYN_SEND (接收)状态 第二次握手:服务端收到SYN报文后,会向客户端发送一个SYN报文作为应答,指明自己的初始化序列号ISN,表示自己收到客户端发送的报文,同时自己进入SYN_REVD(接受)状态 第三次握手:客户端在接收到SYN报文的后,会发送一个ACK报文,表示已经收到服务端的SYN报文,此时客户端已进入ESTABLISHED (链接)状态,服务端收到ACK报文后,服务端也进入ESTABLISHED (连接)状态
四次挥手是为了确认关闭在服务端关闭后,客户端再关闭 第一次挥手:客户端发送一个FIN报文,客户端进入FIN_WAIT1(终止等待1)状态,等待服务端确认 第二次挥手:服务端收到FIN报文后,服务端进入CLOSE_WAIT(关闭等待)状态,TCP进入版关闭状态,客户端收到服务端的确认后,进入FIN_WAIT2(终止等待2)状态 第三次挥手:如果服务端此时也想断开,则发送一个FIN报文,此时服务端处于LAST_ACK (最后确认)状态,等待客户端回复 第四次挥手:客户端收到FIN报文后,会发送一个ACK报文作为应答,此时客户端进入 TIME_WAIT 状态,确保服务端收到自己的ACK报文后,进入CLOSED 状态,服务端收到ACK报文后就断开连接,处于 CLOSED 状态 ? ? ? ?只收到一个FIN只意味着在这一方向上没有数据流动。客户端执行主动关闭并进入TIME_WAIT是正常的,服务端通常执行被动关闭,不会进入TIME_WAIT状态。
?总结:?
?
?
|