tcp 为什么要三次握手,两次不行吗?为什么?

 

原因总结

  •  两次握手只能保证单向连接是畅通的。

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 的数据。

 

参考

[1]、握手过程中的状态位的变化 与 序号的变化 可以参照 TCP 为什么三次握手而不是两次握手(正解版)

[2]、Why do we need a 3-way handshake? Why not just 2-way?

 


【Java面试题与答案】整理推荐

  • 基础与语法
  • 集合
  • 网络编程
  • 并发编程
  • Web
  • 安全
  • 设计模式
  • 框架
  • 算法与数据结构
  • 异常
  • 文件解析与生成
  • Linux
  • MySQL
  • Oracle
  • Redis
  • Dubbo

 

你可能感兴趣的:(面试,自做,Java,面试题)