[ 2025.4.17更新 ]

计算机网络基础面试学习线路(七大阶段)

目标:系统掌握网络通信基本原理、协议机制与实际应用,提升网络底层理解与面试答题表达能力。


第一阶段:计算机网络整体架构认知

目标:建立对计算机网络分层与通信机制的整体认识

1. 网络的作用

  • 实现计算机之间的数据传输
  • 通过协议规范通信流程

2. OSI 七层模型 vs TCP/IP 四层模型

  • OSI 七层:物理层、数据链路层、网络层、传输层、会话层、表示层、应用层
  • TCP/IP 四层:网络接口层、网际层、传输层、应用层

3. 各层常见协议

  • 应用层:HTTP、FTP、DNS
  • 传输层:TCP、UDP
  • 网络层:IP、ICMP、ARP
  • 数据链路层:MAC、以太网协议

第二阶段:IP 协议与数据包传输

目标:理解 IP 寻址、数据转发与网络层功能

1. IP 地址基础

  • IPv4 / IPv6 区别
  • 子网掩码、CIDR 表示法
  • 私有 IP 与公网 IP

2. 路由与转发

  • 静态路由与动态路由
  • TTL、MTU、分片机制

3. ARP 与 ICMP 协议

  • ARP:通过 IP 找到 MAC 地址
  • ICMP:ping 命令的核心(不可达报文、超时报文)

4. 面试题

  • ARP 的作用?
  • IP 包为何要分片?如何重组?

第三阶段:TCP 与 UDP 协议

目标:掌握传输层两种主要协议的机制与区别

1. TCP 特点(重点)

  • 面向连接、可靠传输、字节流传输
  • 三次握手建立连接、四次挥手断开连接
  • 滑动窗口、拥塞控制、流量控制

2. UDP 特点

  • 无连接、数据报传输、适合低延迟场景
  • 不保证可靠、不保证顺序、不重传

3. TCP 常见机制

  • 拥塞控制:慢开始、拥塞避免、快重传、快恢复
  • 超时重传、ACK、窗口大小变化

4. 面试高频题

  • 为什么 TCP 需要三次握手?
  • 四次挥手过程中 TIME_WAIT 有什么作用?
  • TCP 如何保证可靠性?
  • UDP 为什么比 TCP 快?

第四阶段:HTTP 协议与 Web 基础

目标:掌握 HTTP 协议结构、版本演进与请求过程

1. HTTP 协议基础

  • 无状态、基于请求响应模型
  • 请求方法:GET、POST、PUT、DELETE、OPTIONS
  • 状态码:2xx、3xx、4xx、5xx 分类及常见示例

2. HTTP 头部字段

  • Host、Content-Type、User-Agent、Cookie、Connection
  • 缓存相关:Cache-Control、ETag、Last-Modified

3. HTTP 版本演进

  • HTTP/1.0 vs 1.1 vs 2 vs 3(基于 QUIC)
  • HTTP2 多路复用、头部压缩、服务端推送

4. 面试高频题

  • GET 和 POST 的区别?
  • HTTP 与 HTTPS 的区别?
  • HTTP1.1 为什么支持长连接?

第五阶段:HTTPS、TLS/SSL 与加密机制

目标:理解加密通信原理与 HTTPS 建立连接过程

1. 加密基础

  • 对称加密、非对称加密、哈希算法
  • 数字证书(CA)、公钥私钥机制

2. HTTPS 握手过程

  • TLS 四次握手与对称密钥协商
  • 中间人攻击防御机制

3. 面试题

  • HTTPS 为什么更安全?
  • 如何证明客户端拿到的是服务端真实公钥?
  • TLS 和 SSL 有何区别?

第六阶段:DNS、CDN 与实际网络优化

目标:掌握域名解析过程与常见 Web 性能优化机制

1. DNS 查询过程

  • 递归解析与迭代解析
  • 本地缓存、hosts、权威 DNS、根服务器

2. CDN 内容分发网络

  • 减少延迟、降低服务器压力
  • 静态内容加速机制

3. 常见优化手段

  • 浏览器缓存策略
  • TCP Keep-Alive、连接池
  • 域名预解析、DNS TTL 缩短

第七阶段:面试高频问题汇总

目标:强化表达能力与系统思维,直击面试考点

高频面试题(含答题方向提示):

  1. TCP 为什么三次握手?不能两次吗?
  2. TCP 为什么四次挥手?为什么 TIME_WAIT?
  3. GET 和 POST 区别?是否能缓存?是否幂等?
  4. TCP 和 UDP 有哪些区别?用在什么场景?
  5. HTTP 无状态是指什么?如何保持会话?
  6. HTTP1.1 和 HTTP2 的区别?如何实现多路复用?
  7. HTTPS 如何建立安全连接?
  8. DNS 查询的过程是怎样的?为什么有缓存?
  9. Socket 编程中如何建立连接?底层做了哪些事?
  10. 浏览器输入网址后发生了什么?(从 DNS 到页面渲染)

附录:推荐资料与学习建议

学习资料推荐

  • 《图解 HTTP》
  • 《计算机网络(第7版)谢希仁》
  • 《趣谈网络协议》
  • MIT 网络公开课、CS144 Stanford
  • http3-explained.haxx.se(HTTP/3 深入介绍)

实践建议

  • pingtraceroutetelnetcurlwireshark 等工具做抓包实验
  • 配合 Chrome DevTools 查看 HTTP 报文结构、缓存命中
  • 学习用 tcpdump 抓 TCP 三次握手 / HTTPS 握手包
去1:1私密咨询