TCP为什么需要第三次握手

it2024-10-18  38

众所周知,TCP是通过三次握手建立连接的,那为什么需要三次握手而不是两次呢?

我们可以思考一下两次的情况:

客户端向服务器发送连接请求,服务器响应,然后连接成功,开始接收数据。 简要流程是这样,假设客户端第一次向服务器发送连接请求,选择的较远的连接路径,一旦超过了时间阈值,客户端没有接收到服务器端的响应信号,会认为发送失败,客户端会重新发送请求,假设第二次经过的是比较近的路径,服务器端顺利接到请求并成功响应,那么此次传输就顺利开始了。而这时,第一次发送的经过较远路径的请求也到达服务器,服务器会认为是新的连接请求而再次应答,之后等待客户端传输数据,所以客户端会第二次接收到服务端的应答,此时已经成功建立连接的客户端不会再理会这次请求,这就会造成服务器端资源的浪费,如果这种情况过多的话,服务器可能就会宕机。所以需要三次握手,服务器给客户端发送确认之后还要等到客户端的确认才能开始发送数据。

最新回复(0)