TCP为什么不是二次或者四次握手连接

TCP连接与释放连接两个问题

1、为什么是三次连接不是两次,不是四次

为什么不是两次

TCP为什么不是二次或者四次握手连接_第1张图片
如图,

(1) 如果是在两次握手建立连接的情况下,当前 (2) 客户端在第一次发送TCP请求连接的时候,发生了 (3) 网络拥塞等情况导致请求并没有在一个超时重传的规定时间内发送过去,那么 (4) 客户端就会继续发送第二次连接请求,(5) 第二次的连接请求成功与服务端建立连接并完成数据传输后释放连接,之后 (6) 第一次的请求连接到达服务端,那 (7) 服务端又会进入连接状态,并向 (8) 客服端发送确认请求,但这个确认请求并不是客服端最后一次连接请求的确认,所以(8)客户服并不理睬,那 (9) 服务端就会一直在保持连接状态,浪费资源。

为什么不是四次

不是四次的原因很简单,计算机中都追求效率与代价平衡的效果,所以三次是最好的握手次数。

2、为什么释放连接客户端需要等待2SML

TCP为什么不是二次或者四次握手连接_第2张图片

不等待2SML时间的情况
TCP为什么不是二次或者四次握手连接_第3张图片

如果客户端最后一个确认信号丢失,那么服务端将无法进入close状态。

你可能感兴趣的:(计算机基础,tcp/ip,网络,java)