三次握手
第一次握手:客户端给服务器端发送一个syn的标志位;服务器端接收到syn后会返回一个ack相当于ー个回调的机制),同时还有一个服务器端的syn;客户端接收服务器端发送的syn后会再次给服务器端发送一个ack,这样才算完成三次握手
通俗点的理解
- 你先问一个人要不要去吃饭,她回答“好啊,咱们去哪吃”, 你再回答“走啊,去楼下大排档”,然后你俩就开开心心去吃大排档了。
四次分手
客戶端向服务器端发送断开连接的请求;服务器端接收到请求后,返回可以断开连接的请求,客户端断开连接并且释放资源;服务器端向客戶端发送断开连接的信息;客戶端向服务器端发送同意断开连接的信息,服务器端断开连接释放资源
解析:
在数据传输中,客户端对服务器端说我要断开连接了,服务端收到请求后跟客户端说“好的,你先断开吧”,客户端就先断开链接了,之后服务端向客户端请求断开链接,客户端收到信息后同意服务端断开链接,之后服务端才断开链接
其实我觉得下面的图还是不好理解,应该说 客户端和服务端之间有两条传送数据的连接,一条是客户端向服务端发送数据的,另一条是服务端向客户端发送的,因此,当它们想断开连接时,只负责断开自己向对方发送数据的那一条就行了,但是要两条全断开才算真的断开。(个人理解,不一定正确哈)
建立连接要三次 ,而断开却需要四次?
因为tcp是全双工的,每个方向要单独断开,每个方向两次,所以四次