image-20220312015900781.png
    两次握手行不行?
    ①两次握手完成后服务端只清楚客户端的发送能力没问题,自己的接受能力没问题,但还不清楚客户端的接受能力是否可行,也不清楚自己的发送能力是否可行;
    ②两次握手时可能存在延期到达报文包,这些包是客户端重传之前发送的,如果只是两次握手建立连接,那么服务端收到这些过期包会发送确认包之后进入established状态,而如果客户端此时已经离线,那么肯定收不到回复,服务端就浪费了等待的时间;
    第三次握手丢包怎么办?
    ① 对于服务端来说,它在收不到第三次握手的包后会触发超时重传机制,之后每隔2s 4s 8s 重新发送第二次握手的包,如果在达到阈值之前都没有收到回复,就会关闭连接;
    ② 对于客户端来说,此时它已经进入established状态,会开始发送数据包,如果第三次握手包没到达,那么客户端会收到服务端的带有RST标志的回复,表明连接异常中断了,之后客户端尝试重连。