面试官: 我看了你的简历,你了解TCP/UDP协议的是吧。那你说一下TCP的三次握手、四次挥手吧!
白话文回答: 简单来说,客户端传送给服务器建立连接请求,在建立连接请求的同时客户端的发送能力也告知了服务器。服务器判断是否可以客户端创建连接,把服务器接收能力反馈给客户端。
具体来说,握手是合作的意思,也就是为了保证安全的情况下建立连接的过程,那三次握手的作用我说一下:第一次握手,客户端发送网络包,服务端收到了。这样服务端就能得出结论:客户端的发送能力、服务端的接收能力是正常的。第二次握手,服务端发包,客户端收到了。这样客户端就能得出结论:服务端的接收、发送能力,客户端的接收、发送能力是正常的。不过此时服务器并不能确认客户端的接收能力是否正常。第三次握手,客户端发包,服务端收到了。这样服务端就能得出结论:客户端的接收、发送能力正常,服务器自己的发送、接收能力也正常。最后三次握手成功了就可以正常安全的传输接收数据了!
而四次挥手顾名思义就是服务器和客户端双方安全的撤出合作关系的过程,也就是取消连接的过程!第一次挥手,客户端停止发送数据,发送网络包,告知服务器我要和你断开连接,之后进入了一个类似等待的状态。第二次挥手,服务器收到断开连接请求包之后,也返回一个包,也进入等待状态,并询问确认断开连接吗?第三次挥手,客户端接收到服务器端的确认指令之后,告知并请求服务器端可以释放断开连接了,于是发送了一个网络包,并再次进入等待(等待一段时间会自动关闭),等待服务器真正的断开释放连接。第四次挥手,服务器端接收到客户端传来的网络包指令,于是发送了释放连接最后的数据包,发送完后服务器进入了关闭状态。这时,服务器端的三次握手和四次挥手才算正真的完成了!
注意:第三次挥手完毕后,客户端没有直接关闭,而是等待了一段时间会自动关闭!那么为什么第三次挥手客户端不直接关闭呢&#x