«

详解TCP与UDP的三次握手四次断开

俞事 发布于 阅读:166


TCP三次握手

  1. 第一次握手(SYN)
    客户端发送SYN报文(SYN=1,随机生成初始序列号seq=x),进入SYN_SENT状态,请求建立连接。

  2. 第二次握手(SYN-ACK)
    服务器接收SYN报文后,发送SYN-ACK报文(SYN=1,ACK=1,确认号ack=x+1,随机生成序列号seq=y),进入SYN_RCVD状态。

  3. 第三次握手(ACK)
    客户端收到SYN-ACK报文后,发送ACK报文(ACK=1,确认号ack=y+1,序列号seq=x+1),进入ESTABLISHED状态。服务器收到ACK后也进入ESTABLISHED状态,连接建立完成。

TCP四次断开

  1. 第一次断开(FIN)
    主动关闭方(如客户端)发送FIN报文(FIN=1,序列号seq=u),进入FIN_WAIT_1状态,表示不再发送数据。

  2. 第二次断开(ACK)
    被动关闭方(如服务器)收到FIN后,发送ACK报文(ACK=1,确认号ack=u+1),进入CLOSE_WAIT状态。主动关闭方收到ACK后进入FIN_WAIT_2状态。

  3. 第三次断开(FIN)
    被动关闭方处理完剩余数据后,发送FIN报文(FIN=1,序列号seq=v),进入LAST_ACK状态,表示准备关闭连接。

  4. 第四次断开(ACK)
    主动关闭方收到FIN后,发送ACK报文(ACK=1,确认号ack=v+1),进入TIME_WAIT状态(等待2MSL确保对方收到ACK)。被动关闭方收到ACK后关闭连接。

UDP协议特性
UDP无连接、不可靠传输,无握手与断开流程。数据直接封装为报文发送,不保证顺序和可达性,适用于实时性要求高、能容忍丢包的场景(如视频流、DNS查询)。

取消
微信二维码
微信二维码
支付宝二维码