“三次握手”是TCP协议中客户端和服务端建立连接的通俗说法。

因为TCP是面向连接的协议,所以一定要保证连接建立后再传输数据。那么怎么样才可以确认连接已经建立好了呢?连接建立起来就是说明能够正常传输数据了,也就是客户端和服务端双方都能够正常接收和发送了。

第一次握手:从客户端发一个网络包开始,然后服务端收到了这个包。这样服务端就可以得出结论:客户端的发送能力、服务端的接收能力是正常的。

第二次握手:服务端向客户端发送确认包,客户端接收到了。从客户端的角度来看,我接收到了服务端发送过来的响应数据包,说明服务端接收到了我在第一次握手发送的网络包,并且成功发送了响应数据包,这就说明,服务端的接收、发送能力是正常的。而另一方面,我收到了服务端的响应数据包,说明我第一次发送的网络包确实成功到达服务端,这样,我自己的发送和接收能力也是正常的。于是客户端可以得出结论:客户端的发送、接收能力是正常的,服务端的发送、接收能力也是正常的。

第三次握手:客户端发送确认包,服务端收到了。从服务端的角度来看,客户端能够发包给我,说明我在第二次握手发出的确认包确实成功被客户端接收到了,也就是客户端的接收能力、服务端的发送能力是正常的。于是服务端可以综合第一次握手得出结论:客户端的发送、接收能力是正常的,服务端的发送、接收能力也是正常的。

经历了上面三次握手过程,客户端和服务端都确认了自己的发送、接收能力是正常的。之后就可以正常传输数据了。



技术分享      一句话系列

本博客所有文章除特别声明外,均采用 CC BY-SA 3.0协议 。转载请注明出处!