ohmyblog

#TCP

笔试真题复盘:TCP 窗口 65535 字节、RTT 0.1 秒,最大吞吐量是多少

先说明属性:这是一篇笔试真题复盘,题目出自本地历史笔试资料,与任何公司的当前招聘无关。题面很短:TCP 接收窗口 65535 字节、往返时延 RTT 0.1 秒,问这条连接的最大吞吐量是多少。它考的不是背数字,而是能不能从「窗口」和「RTT」两个概念里把吞吐上限推出来。

笔试真题复盘:向一台正常机器没监听的 80 端口发 SYN,会收到什么

先说明属性:这是一篇笔试真题复盘,题目出自本地历史笔试资料,与任何公司的当前招聘无关。题面:向一台运行正常、但 80 端口没有进程监听的机器发送 TCP SYN 报文,会收到什么响应?答案:对方协议栈回一个 RST 报文,连接立即失败。

笔试真题复盘:netstat 里一堆 SYN_SENT,是哪里出了问题

先说明属性:这是一篇历史笔试题复盘,题目出自本地历史笔试资料,与任何公司的当前招聘无关。题面大意:在一台机器上执行 netstat 查看 TCP 连接,发现大量连接处于 SYNSENT 状态,这说明什么问题?要答好它,不能只背一个状态名,得先回到三次握手的状态机。

笔试真题复盘:拥塞窗口 16KB、对端通告 8KB,还能再发多少字节

先说明属性:这是一篇历史笔试题复盘,题目出自本地历史笔试资料,与任何公司的当前招聘无关。题面大致是:TCP 连接的拥塞窗口 16KB、对端通告的接收窗口 8KB、MSS 1KB,问发送方此刻还能发多少数据。这是一道定量计算题,但算对的前提是先搞懂两个窗口各管什么。

经典题解析:TCP 的半打开和半关闭,连接到底断没断

先说明属性:这是一篇经典题解析,题目出自本地历史面试资料,与任何公司的当前招聘无关。「什么是连接的半打开、半关闭状态」看起来像概念背诵题,实际上是长连接编程的生死线:搞不清这两个状态,就会在流式传输里截断数据,或者对着一个对端早已崩溃的连接空等。

经典题解析:TCP 丢了一个包,后面的包要等吗

先说明属性:这是一篇经典题解析,题目出自本地历史面试资料,与任何公司的当前招聘无关。它考的不是「会重传」三个字,而是你能不能把丢包之后发送端、接收端、应用层三方各自在干什么讲成一条完整链路。

经典题解析:长连接和短连接怎么选,保活机制怎么做

先说明属性:这是一篇经典题解析,题目出自本地历史面试资料,与任何公司的当前招聘无关。「长连接和短连接」听起来像常识题,但面试官的给分点在第二层:成本差异你能算清,保活机制你分不清 HTTP 层和 TCP 层,就露底了。

经典题解析:TCP 的流量控制和拥塞控制,根本不是一回事

先说明属性:这是一篇经典题解析,题目出自本地历史面试资料,与任何公司的当前招聘无关。「说说 TCP 的流量控制和拥塞控制」是网络面试的保留题——两个词都带「控制」,混为一谈的人一抓一把,面试官就靠这个筛人。

经典题解析:TCP 粘包拆包是怎么回事,协议设计怎么解

先说明属性:这是一篇经典题解析,题目出自本地历史面试资料(见文末来源说明),与任何公司的当前招聘无关。「TCP 粘包」几乎是网络题里的必考,但面试官真正想听的结论是:粘包不是 TCP 的缺陷,而是字节流的天性——消息边界从来就不存在,除非你自己在应用层定义它。

经典题解析:TCP 四次挥手之后,为什么要等一个 TIME_WAIT

先说明属性:这是一篇经典题解析,题目出自本地历史面试资料(见文末来源说明),与任何公司的当前招聘无关。「TCP 为什么是四次挥手」人人会背,面试官真正的杀招是下一句:「主动关闭方最后为什么要等一个 TIMEWAIT?等多久?」