TCP的三次握手四次挥手

三次握手

第一次握手:客户端将标志位SYN置为1,随机产生一个值seq=J,并将该数据包发送给服务端,客户端进入SYN_SENT状态,等待服务端确认。
        (2)第二次握手:服务端收到数据包后由标志位SYN=1知道客户端请求建立连接,服务端将标志位SYN和ACK都置为1,ack=J+1,随机产生一个值seq=K,并将该数据包发送给客户端以确认连接请求,服务端进入SYN_RCVD状态。
        (3)第三次握手:客户端收到确认后,检查ack是否为J+1,ACK是否为1,如果正确则将标志位ACK置为1,ack=K+1,并将该数据包发送给服务端,服务端检查ack是否为K+1,ACK是否为1,如果正确则连接建立成功,客户端和服务端进入ESTABLISHED状态,完成三次握手,随后客户端与服务端之间可以开始传输数据了。

四次挥手

三次握手耳熟能详,四次挥手估计就,所谓四次挥手即终止TCP连接,就是指断开一个TCP连接时,需要客户端和服务端总共发送4个包以确认连接的断开。

1.第一次挥手:主动关闭方发送一个FIN,用来关闭主动关闭方关闭被动方的数据传送,主动关闭方进入FIN_WAIT_1状态。
    2.第二次挥手:被动关闭方收到FIN后,发送一个ACK给主动关闭方,确认序号为收到序号+1(与SYN相同,一个FIN占用一个序号),被动关闭方进入CLOSE_WAIT状态。
   3.第三次挥手:被动被关闭方发送一个FIN,用来关闭被动关闭方主动关闭方的数据传送,被动关闭方进入LAST_ACK状态。

4.第四次挥手:主动关闭方收到FIN后,主动关闭方进入TIME_WAIT状态,接着发送一个ACK给被动关闭方,确认序号为收到序号+1,被动关闭方进入CLOSED状态,完成四次挥手。

原文地址:https://www.cnblogs.com/fengfen/p/10265436.html