TCP 3次握手4次挥手理解

TCP 3次握手4次挥手理解
图片引用自http://blog.****.net/xifeijian/article/details/12777187

建立连接:3次握手

  1. (客户端对服务器说: ”你好,我可以跟你连接吗?“)
    客户端发送报文给服务器端:
    SYN=1 ACK = 0 SEQ=x
    进入 SYN_SEND 状态。
  2. (服务器向客户端确认: ”好的,让我们开始吧,你准备好了吗?”)
    服务器端收到 SYN 报文后,回应报文给客户端:
    SYN=1 ACK=1 ack=x+1 SEQ=y
    进入 SYN_RECV 状态。
  3. (客户端向服务器确认: ”好的,我准备好啦。”)
    客户端收到服务器端的 SYN 报文,回应报文给服务器端:
    SYN=0 ACK=1 ack=y+1 SEQ=x+1
    进入 Established 状态。
    服务器端收到后也进入 Established 状态。
    TCP 3次握手4次挥手理解
    图片引用自http://baijiahao.baidu.com/s?id=1654225744653405133&wfr=spider&for=pc

断开连接:4次挥手

  1. A对B说:“让我们断开连接吧?”
    A首先调用 close,称该端执行“主动关闭”(active close):
    FIN=1 Seq=U
    A进入FIN-WAIT-1阶段,即半关闭阶段,停止发送数据。
  2. B收到后对A说:“好的,麻烦先等等让我先处理完剩下的事情。”
    B接收到这个FIN执行 “被动关闭”(passive close):
    ACK=1 ack=U+1 Seq=v
    B进入CLOSE-WAIT阶段,半关闭状态。
    A收到后进入FIN-WAIT-2阶段
  3. B对A说:“我处理完啦,让我们断开连接吧?”
    B做好了释放连接准备,再次向A发出一段TCP报文:
    FIN=1 ACK=1 ack=U+1 Seq=w
    B进入LAST-ACK阶段。
  4. A收到后对B说:“好的,那我断开了。”
    A收到B报文后向B确认结束:
    ACK=1 ack=w+1 Seq=U+1
    A进入TIME-WAIT阶段
    B收到后进入CLOSED阶段
    A等待2MSL之后,进入CLOSED阶段
    TCP 3次握手4次挥手理解
    图片引用自http://baijiahao.baidu.com/s?id=1654225744653405133&wfr=spider&for=pc