TCP协议在建立连接的时候,使用了三次握手这种方式。
简单理解起来:

  • 第一次握手:客户端发送请求,并附带凭条seq_client=0;
  • 第二次握手:服务端回复,并附带凭条ack_client=1;并且发送请求,并附带凭条seq_server=0;
  • 第三次握手:客户端回复,并附带凭条ack_server=1;

那么,为什么是三次呢?

我们不妨这样理解:
建立连接,目的就是为了可以正常交互,正常交互的基础就是信息的收、发

接收的确认
一方每次接收到消息,都可以确认,我的接收能力在我看来是没有问题的。

发送的确认
我方发送一条消息,带一个seq凭条,如果对方可以回复正确的seq凭条,那么就可以确认对方可以正确的收到我方的消息,那么也就是说,我方的发送消息的能力没有问题。
TCP为什么需要三次握手?
就像上图一样,第一次握手,相当于是请求,但是仅凭这一次单方面的动作无法知道什么信息。

第二次握手,客户端就知道了对方是否可以正确的读取客户端发送的信息。
第三次握手,服务端也知道了对方是否可以正确的读取服务端发送的信息。

以上,双方都确认了自己在此次连接中的功能是否健全,就可以开心的建立连接了( •̀ ω •́ )y

相关文章: