相信大家都有这样一个疑问,明明服务器(SERVER)和客户端(CLIENT)之间只要发送两次SYN,ACK就能建立连接并且协商完各自的参数(如窗口大小等),为什么还要有最后的ACK呢?
常见TCP建立连接如下图:

那么可以假设如下情况:
A首先向B发送一个连接请求,但是可能这个连接请求走了远路,等了很长时间,B都没有收到,那么A可能会再次发送,此时B收到并且回复SYN,ACK;在这个时候最先发送的那个连接请求到达B,那么B会回复一个SYN,ACK;但是A表示自己已经收到确认了,并不搭理这个回复,那么B可能陷入等待,如果这种情况多了,那么会导致B瘫痪,所以要发送第三个确认。
本文深入探讨了TCP连接建立过程中的三次握手机制,解释了为何在客户端与服务器间完成两次SYN, ACK交互后,还需要进行第三次ACK确认,通过一个假设场景说明了此步骤对于防止重复连接请求导致服务器资源浪费或瘫痪的重要性。
1万+

被折叠的 条评论
为什么被折叠?



