三次握手和四次挥手

229 阅读1分钟

握手TCP的连接建立:

  1. client发送syn包(syn=x),进入SYN_SENT状态,等待服务器确认。
  2. server发送SYN+ACK包(ack=x+1,syn=y),进入SYN_RECV状态。
  3. client发送ack包(ack=y+1)
  4. client、server进入ESTABLISHED,连接成功。

挥手TCP的连接释放:

  1. client发送释放数据报文,FIN=1,其序列号为seq=u(等于前面已经传送过来的数据的最后一个字节的序号加1),进入FIN-WAIT-1状态。
  2. server发出确认报文,ACK=1,ack=u+1,seq=v,此时,进入CLOSE-WAIT状态,client收到报文进入FIN-WAIT-2状态。
  3. server最后数据发送完毕,发送连接释放报文FIN=1,ack=u+1,seq=w,进入LAST-ACK。
  4. client发出确认报文,ACK=1,ack=w+1,seq=u+1,进入TIME-WAIT状态
  5. server收到客户端确认报文之后,进入CLOSED状态
  6. client之后经过最长报文段寿命的时间后,当client撤销相应TCB后,进入CLOSED状态