TCP三次握手中,第一二三次确认包丢失分别会发生什么?

158 阅读1分钟

第一次

客户端会超时重传

客户端发给服务端的SYN报文丢失

  • 客户端认为服务端没有收到,会超时重传

第二次

比较特殊,客户端和服务端都会超时重传

服务端给客户端的SYN+ACK丢失

  • 客户端认为服务端没有收到他第一次握手中发的SYN,于是超时重传
  • 服务端没有收到客户端的ACK,于是超时重传

第三次

服务端会超时重传

客户端给服务端的ACK丢失

  • 服务端认为客户端没有收到第二次握手中发的SYN+ACK,于是超时重传

补充:第三次握手中,客户端发送ACK后已进入ESTABLISHED状态,可能开始发送数据。若客户端发送数据,数据包中的隐式ACK会让服务端收到ACK响应(“捎带确认”机制),避免服务端重传。