美文网首页
TCP 三次握手四次挥手

TCP 三次握手四次挥手

作者: allenhaozi | 来源:发表于2019-10-09 22:46 被阅读0次
    tcp_open_close.jpg 第一次握手
    第二次握手
    第三次握手

    四次挥手:

    Client: 主动断开连接
    Server: 被动断开连接

    1. Client完成数据发送之后, 发送FIN给Server, Client进入 FIN_WAIT_1

    2. Server收到FIN后, 回送ACK给Client, Server进入CLOSE-WAIT

    3. Client收到B发送的ACK 进入 FIN_WAIT_2
      此时处于半关闭, Server人仍然可以给Client发送数据

    4. Server发送完数据, 发送FIN给Client Server进入LAST_ACK

    5. Client收到FIN 回送ACK 自己进入TIME_WAIT 经过2MSL时间

    6. Server收到Client的ACK 进入CLOSE

    TIME_WAIT为什么要等2个MSL

    • 为了保证客户端发送的最后一个ACK报文段能够到达服务器端

    • 这个ACK报文段有可能丢失

      • 因而使处在LASK—ACK端的服务器端收不到对已发送的FIN+ACK报文段。
      • 会超时重传这个FIN+ACK报文段,而A就能在2MSL时间内收到这个重传的FIN+ACK报文段。
      • 接着A重传一次确认,重新启动2MSL计时器。最后,A和B都正常进入到CLOSED状态。
    • 如果CLIENT在TIME_WAIT状态不等待一段时间,而是在发送完ACK确认后立即释放连接,那么就无法收到B重传的FIN+ACK报文段,因而也不会再发送一次确认报文段,这样,B就无法正常进入CLOSED状态。

    相关文章

      网友评论

          本文标题:TCP 三次握手四次挥手

          本文链接:https://www.haomeiwen.com/subject/rzenpctx.html