TCP为什么是三次握手?而不是二次,或者是四次?
要说TCP为什么是三次握手,那么其实换个角度而言,就是要证明2次太少,4次又没必要。
所谓的三次握手,他的本质是什么?TCP是可靠传输协议,他的本质其实就是要确定客户端和服务端,他们的发送
和接收
能力是没有问题的。也就是客户端要考察服务端的发送
和接收
能力,服务端也要考察客户端的发送
和接收
能力。
第一次握手
第一次握手服务端收到了数据包,确定了客户端的发送能力是没有问题的(如图)
第二次握手
第二次握手客户端收到了数据包,这个时候,就能证明服务端的发送能力是没有问题的。但是服务端的接收能力有没有问题呢?第一次握手的时候,服务器端收到客户端的数据那就说明,服务端的接收能力是没有问题的(如图)
那么,回到刚开始的问题,为啥两次握手不行,因为这个时候,客户端已经确定了服务端的
发送
和接收
能力都没有问题,但是服务端,却没有确定,客户端的接收
能力,到底有没有问题。
第三次握手
第三次握手,服务端收到了数据包,发现确实是刚才提问的答案,那么,就确定了客户端的
接收
能力是没有问题的。
再次回到刚才的问题,3次,是完成双方考察
发送
和接收
能力的最少次数。这也就是为啥不是2次,也不是4次。