TCP连接为什么三次握手四次挥手

Posted onlyzhangmeng

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了TCP连接为什么三次握手四次挥手相关的知识,希望对你有一定的参考价值。

前几天面试某电商被问住了,问的很细,我就说了说连接过程,必然凉凉。在csdn上找了一篇很详细的博客。https://blog.csdn.net/hyg0811/article/details/102366854

看之前先给解释一下ACK、SYN等缩写的含义。

SYN: 同步序列编号(Synchronize Sequence Numbers)。是TCP/IP建立连接时使用的握手信号。在客户机和服务器之间建立正常的TCP网络连接时,客户机首先发出一个SYN消息,服务器使用SYN+ACK应答表示接收到了这个消息,最后客户机再以ACK消息响应。是TCP连接的第一个包。

ACK: ACK (Acknowledge character)即是确认字符,在数据通信中,接收站发给发送站的一种传输类控制字符。表示发来的数据已确认接收无误。

ESTABLISHED:已连接的

MSS: 能被接收的最大报文段长度

为什么需要三次握手,两次不行吗?(经典第一问)
弄清这个问题,我们需要先弄明白三次握手的目的是什么,能不能只用两次握手来达到同样的目的。

第一次握手:客户端发送网络包,服务端收到了。
这样服务端就能得出结论:客户端的发送能力、服务端的接收能力是正常的。
第二次握手:服务端发包,客户端收到了。
这样客户端就能得出结论:服务端的接收、发送能力,客户端的接收、发送能力是正常的。不过此时服务器并不能确认客户端的接收能力是否正常。
第三次握手:客户端发包,服务端收到了。
这样服务端就能得出结论:客户端的接收、发送能力正常,服务器自己的发送、接收能力也正常。
因此,需要三次握手才能确认双方的接收与发送能力是否正常。

以上是关于TCP连接为什么三次握手四次挥手的主要内容,如果未能解决你的问题,请参考以下文章

TCP连接时的三次握手,四次挥手

TCP 连接三次握手、四次挥手

TCP三次握手,四次挥手原因

三次握手,四次挥手(详解)

TCP三次握手和四次挥手

tcp 三次握手,四次挥手