跳转至

自测题与答案

先独立回答,再展开答案。理想答案不只给名词,还要写出动机、机制、代价和可观察证据。

一、分层与性能

1. 为什么同一个 IP 数据报每经过一台以太网路由器,MAC 地址会改变?

答案

IP 目的地址用于跨网络定位终点,MAC 地址只用于当前链路的一跳交付。路由器去掉入链路帧,查询下一跳,再使用出链路的源/目的 MAC 重新封装。

2. 1500 字节分组经过 10 Mb/s 链路,发送时延是多少?

答案

分组为 \(1500\times 8=12000\) 比特,因此:

\[ d_{trans}=\frac{12000}{10\times 10^6}=1.2\ ms. \]

这不包含传播、排队和处理时延。

3. 为什么带宽增加十倍,小型 API 请求的延迟未必下降十倍?

答案

小请求的发送时延可能本来就很小,DNS、TCP/QUIC、TLS 往返、传播、排队和服务器处理占主导。带宽主要缩短发送大量比特的时间,不能消除传播距离和协议往返。

4. 缓冲区越大是否一定越好?

答案

不是。缓冲能吸收突发、减少短期丢包,但过大可形成缓冲膨胀,让交互分组排在大队列后。应在吞吐、丢包和时延之间平衡,并可使用主动队列管理与公平排队。

二、应用层

5. DNSSEC 与加密 DNS 分别解决什么?

答案

DNSSEC 验证权威数据来源与完整性,不隐藏查询。DoT/DoH 加密客户端到递归解析器的传输,保护该段隐私,却不自动证明权威记录正确,也要求信任解析器。

6. HTTP 是无状态的,网站为何仍能维持登录?

答案

无状态描述 HTTP 核心请求之间不自动保存业务会话。应用可让浏览器携带 Cookie 中的会话标识,服务器在数据库或签名令牌中恢复身份状态。状态只是由应用显式管理。

7. POST 超时后为什么不能总是直接重试?

答案

超时不能区分“请求未到达”和“服务器已执行但响应丢失”。直接重试可能重复扣款或创建资源。应用应使用幂等键、事务标识和结果查询,让重复提交收敛。

8. CDN 缓存带来的核心代价是什么?

答案

内容复制后会出现新鲜度和一致性问题。需要选择 TTL、缓存键、验证和主动失效策略;缓存键遗漏身份或语言等维度还可能返回错误甚至敏感内容。

三、传输层

9. UDP 有端口和校验和,为何仍不保证可靠?

答案

端口用于进程解复用,校验和用于检测损坏。UDP 不确认到达、不重传、不排序、不去重。需要这些性质时由应用或 QUIC 等上层机制实现。

10. TCP 为什么需要三次握手而不是简单两次?

答案

双方需要同步初始序号、确认双向可达并协商选项。第三次消息让服务器知道客户端已经收到服务器的序号和参数,减少旧报文与半开连接造成的歧义。

11. TCP 一次 send 是否对应接收端一次 recv

答案

不对应。TCP 是字节流,可能合并或拆分应用写入。应用必须通过长度前缀、分隔符、固定长度或更高层编码恢复消息边界。

12. 100 Mb/s、RTT 80 ms 的路径,其带宽时延积约多少?

答案
\[ BDP=100\times 10^6\times 0.08=8\times 10^6\ bit, \]

即约 1 MB。在途窗口远小于此值时,单流可能无法填满路径。

13. rwndcwnd 有什么区别?

答案

rwnd 由接收端通告,保护接收缓存;cwnd 由发送端拥塞算法维护,保护网络并探索容量。发送在途上限受二者较小值及本地资源共同约束。

14. TCP 可靠是否意味着转账请求恰好执行一次?

答案

不意味着。TCP 保证单连接字节交付,不理解业务事务。连接断开时客户端可能不知道服务器是否已提交,应用仍需幂等键、事务、去重与结果查询。

四、网络层

15. 192.0.2.200/27 的网络地址和广播地址是什么?

答案

/27 每块 32 个地址,边界是 0、32、64、96、128、160、192、224。200 落在 192 到 223,所以网络地址为 192.0.2.192,广播地址为 192.0.2.223

16. NAT 为什么不等同于防火墙?

答案

NAT 的核心是转换地址和端口,状态映射只是实现需要。防火墙表达允许与拒绝策略。NAT 可能顺带挡住无映射入站流量,却不能替代身份、应用检查和明确访问控制。

17. 路由与转发有何区别?

答案

路由属于控制平面,学习拓扑和策略并生成路径;转发属于数据平面,对每个数据报执行最长前缀匹配和出接口动作。路由变化较慢,转发必须高速。

18. 为什么 10.1.2.0/2410.0.0.0/8 优先匹配 10.1.2.9

答案

两者都匹配,但最长前缀规则选择更具体的 /24。这样聚合默认路径与局部例外可以同时存在。

19. traceroute 某一中间跳显示星号,能否断言该跳丢弃业务流量?

答案

不能。路由器可能只是不回复或限速 ICMP,而继续转发后续业务。若后续跳和终点响应,说明探测流仍通过。还要考虑负载均衡和不同探测协议。

五、链路层与安全

20. CRC 通过为什么不能证明发送者合法?

答案

CRC 是非密钥差错检测,攻击者能修改数据并重新计算。来源认证和抗主动篡改需要带密钥的认证码、AEAD 或数字签名。

21. 访问异网段服务器时,ARP 解析谁?

答案

解析本地下一跳,通常是默认网关。IP 数据报目的仍是远端服务器,链路层帧目的 MAC 是网关。每个路由器在下一条链路重新封装。

22. 为什么 Wi-Fi 使用碰撞避免而不是像早期以太网那样碰撞检测?

答案

无线终端发送时自身信号很强,难以可靠同时检测远端弱信号;隐藏终端还可能彼此听不到。Wi-Fi 使用监听、随机退避、链路 ACK 和可选 RTS/CTS 降低碰撞概率。

23. TLS 提供了哪些性质,又不提供什么?

答案

TLS 提供连接内容机密性、完整性和基于证书等机制的对端认证。它不证明网站业务善意,不修复应用漏洞,不完全隐藏 IP、时序和数据量,也不能保护已受控端点中的明文。

24. TLS 1.3 的 0-RTT 为什么不适合任意请求?

答案

早期数据可能被重放。只应承载幂等或有应用级防重放的数据;支付、创建订单等有副作用操作需要去重或等待正常握手保护。

六、综合排障

25. 域名能解析、ping 成功,但 HTTPS 超时,应怎样继续?

答案

先测试实际目标端口,如 nc -vz host 443curl -v,区分 TCP、TLS 和 HTTP。检查路由、防火墙、监听与回程;必要时客户端和服务端同时抓 SYN。ICMP 成功不证明 TCP 443 被允许。

26. 同一域名偶发超时,最有效的第一轮缩小方法是什么?

答案

记录每次实际解析和连接的 IP,把多个地址或负载均衡后端逐一固定测试。若失败稳定绑定某地址,问题从随机现象缩小为特定后端或路径,再比较路由、健康检查和 ACL。

27. 页面主 HTML 很快返回但仍长时间白屏,网络层一定有问题吗?

答案

不一定。浏览器还需下载 CSS、脚本、字体,执行 JavaScript、布局和绘制。检查开发者工具的子资源瀑布、控制台错误和主线程任务,同时确认不同域名是否建立了新连接。

28. 为什么排障时不建议一开始就重启所有设备?

答案

重启同时改变缓存、连接、路由和进程状态,会销毁现场;即便恢复也难以确定根因。应先固定现象、保存关键证据,用一次一个变量的实验缩小范围,再实施可验证修复。

复习完成标准

若能不看答案完成以下任务,就已经形成基本闭环:

  1. 画出一次 HTTPS 请求从应用报文到链路帧的封装。
  2. 手算一个 CIDR 子网、发送时延和带宽时延积。
  3. 解释一次丢包如何同时触发可靠重传与拥塞响应。
  4. dig、路由查询、端口测试、TLS 检查和 curl 按层定位故障。
  5. 清楚说明 TLS、NAT、防火墙和应用认证各自保护什么、不保护什么。