TCP 为啥可靠?三个机制撑着。面试把这三问答清,网络关就过了。
一、重传:怎么保证不丢
- 确认应答(ACK)
:收到就回 ACK,发送方才知道到了。 - 超时重传
:迟迟没 ACK 就重发。 - 快速重传
:连收 3 个重复 ACK 立刻重发,不等超时,更快。
二、拥塞控制:别把网络挤崩
发送方维护"拥塞窗口"控制速率:
-
慢启动:窗口指数涨,探网络上限。 -
拥塞避免:到阈值后线性涨。 -
丢包则窗口减半(或回退慢启动),主打"试探 + 退让"。
三、粘包:为什么会有
TCP 是字节流,没有消息边界。发送端多次 write 可能被合并成一个包(粘包),或一个包被拆开(拆包)。接收端要自己按协议定界(长度前缀 / 特殊分隔符)。
四、面试速记
-
可靠 = 序列号 + ACK + 重传(超时/快速)。 -
拥塞控制:慢启动→拥塞避免→丢包退让。 -
粘包因 TCP 是字节流无边界;靠应用层定界。 -
和 UDP 比:TCP 可靠有序,UDP 快但不管。
五、一句话带走
TCP 可靠靠 ACK + 重传,稳靠靠拥塞控制不挤崩网络,粘包因字节流无边界靠应用层定界。三问答清,网络面试稳。
网络面试
更多 Java 面试速通,关注公众号持续更新。

