1 为什么三次握手
三次握手的目的是为了建立可靠的通讯信道,就是双方确定自己与对方的发送和接受功能都正常。
第一次握手:客户端什么都不能确认;服务端确定自己可以收到对方发送的信息,自己的接收正常。
第二次握手 :客户端确认了:自己的发送和接收正常,对方的发送正常;服务端确认了:自己的接收和对方的发送正常。
第三次握手:客户端确认了:自己的发送和接收正常,对方的发送和接收正常;服务端确认了:自己的发送、接收正常,对方的发送、接收正常。
生活例子:
就像接电话:
A:你听得到吗?
B:我听得到,你呢?
A:我也听得到。
双方确定完毕:对方都听得到
2 为什么四次挥手
任何一方都可以在数据传送接收后发出连接释放的通知,待对方确认后进入半关闭状态。当另一方也没有数据再发送的时候,则发送连接释放通知,对方确认后就完全关闭了TCP连接。
第一次挥手:客户端:我没有操作可以执行了;服务端:对方没事干了
第二次挥手:客户端:对方知道我没有什么可操作了,但是对方还有没有操作不知道;服务端:确认了客户端的停止连接流程。
第三次挥手:客户端:客户端处于半关闭状态,收到对方的关闭请求;服务端:对方没消息发送了,自己发送请求停止交流。
第四次挥手:客户端:客户端关闭连接,告诉对方已经收到了它的关闭请求;服务端:对方没消息发送了,自己没消息发送对方可知道了,服务端停止连接。
生活例子:
就像挂电话:
A:我没话说了。
B:我知道你没话说了。(因为B可能还有话说,所以不能和停止交流放在一起发送)
B:我也没话说了。
A:我知道了。
双方都没有话说了。
详细点击下方链接
参考:https://blog.csdn.net/qzcsu/article/details/72861891