星海

计算机网络 · 主观题 · 第 15 题

计算机基础面试八股 · 第 15 题

TCP 建立连接为什么需要三次握手,两次为什么不行?

参考答案

1. 三次握手要让双方都确认「自己和对方的发送、接收能力都正常」,并交换各自的初始序号(ISN)。第一次:服务端知道客户端能发;第二次:客户端知道服务端能收能发;第三次:服务端知道客户端能收。
2. 防止历史连接:如果客户端一个滞留很久的旧 SYN 到达服务端,两次握手下服务端会直接建立连接并分配资源,造成浪费;三次握手时客户端发现这个 SYN+ACK 对应的不是当前连接,会回 RST 拒绝。
3. 同步双方序号:服务端的 ISN 需要客户端确认,两次握手无法保证服务端的序号被对方收到。
4. 四次没有必要:服务端的 SYN 和 ACK 可以合并在一个报文里发出。

解析

重点是「确认双方收发能力 + 同步序号 + 防止旧连接请求」。

在线刷这套题:即时判分、错题本、闪卡复习,不用登录就能练。