开发者社区> 问答> 正文

为什么TCP连接需要三次握手,两次不可以吗,为什么?

为什么TCP连接需要三次握手,两次不可以吗,为什么?

展开
收起
问问小秘 2020-01-09 10:21:32 2484 0
2 条回答
写回答
取消 提交回答
  • 为之则易,不为则难

    因为需要保证同信的可靠,两次不可以,TCP三次握手可以保证客户端发送的请求服务端能够收到,并且服务端发送的请求Clint端也能保证收到,因为第三次握手是客户端对服务端发送的消息做了回应,这样就保证了本次通信双发都能够收到请求,是可靠的,而两次的话,只能保证客户端发的请求服务端能收到,并不能保证服务端发的请求客户端能够收到,所以需要三次握手建立可靠连接

    2020-01-09 10:26:04
    赞同 展开评论 打赏
  • GitHub: https://github.com/chenhaoxiang

     两次握手只能保证单向连接是畅通的。 Step1       A -> B : 你好,B。

    Step2       A <- B : 收到。你好,A。

    这样的两次握手过程, A 向 B 打招呼得到了回应,即 A 向 B 发送数据,B 是可以收到的。

    但是 B 向 A 打招呼,A 还没有回应,B 没有收到 A 的反馈,无法确保 A 可以收到 B 发送的数据。

    只有经过第三次握手,才能确保双向都可以接收到对方的发送的 数据。 Step3       A -> B : 收到,B。

    这样 B 才能确定 A 也可以收到 B 发送给 A 的数据。

    2020-01-09 10:22:56
    赞同 展开评论 打赏
问答排行榜
最热
最新

相关电子书

更多
TCP Cluster for mqtt技术实施方案 立即下载
低代码开发师(初级)实战教程 立即下载
阿里巴巴DevOps 最佳实践手册 立即下载