计算机网络
网络是后端面试的必考板块。主线从分层模型开始:分层解决什么问题、每层干什么、数据怎么穿层。
分层模型
TCP/IP 四层: 各管一段
| 层 | 职责 | 代表协议 | 寻址 |
|---|---|---|---|
| 应用层 | 业务语义 | HTTP、DNS、WebSocket | URL |
| 传输层 | 端到端可靠/不可靠 | TCP、UDP | 端口 |
| 网络层 | 跨网路由 | IP、ICMP | IP 地址 |
| 链路层 | 相邻节点传输 | 以太网、WiFi | MAC 地址 |
OSI 七层是理论模型(多了会话层/表示层),实际用 TCP/IP 四层。面试先答分层职责再答“实际以 TCP/IP 为准”。
分层解决什么
- 每层独立演化:换 HTTP/3 不用动 IP,换网卡不用动 TCP
- 每层只关心自己的事:传输层不管路由,网络层不管业务
- 封装与解封装:发送方逐层加头,接收方逐层剥头
封装过程
应用层: [HTTP 报文]
传输层: [TCP 头 | HTTP 报文] ← 加端口
网络层: [IP 头 | TCP 头 | HTTP 报文] ← 加 IP
链路层: [MAC 头 | IP 头 | ... | CRC] ← 加 MAC 和校验面试画这个图:数据从上往下加头(封装),从下往上剥头(解封装)。每层只认识自己的头。
本分类地图
- TCP:握手挥手、可靠传输与拥塞控制
- HTTP/HTTPS/DNS:应用层三巨头
- UDP/QUIC/WebSocket:替代与补充
- 输入 URL 到页面展示:全链路串讲(面试经典题)
- 网络排查与工具:实战
面试追问
- 为什么分层? 每层独立演化、职责单一。换协议不影响其他层
- 四层和七层? OSI 七层是理论(含会话/表示层),实际用 TCP/IP 四层
- 封装是什么? 每层加自己的头:TCP 加端口、IP 加地址、MAC 加硬件地址。收方逐层剥
- 传输层和网络层的区别? 网络层主机到主机(IP 路由),传输层进程到进程(端口 + 可靠性)
- MAC 和 IP 的区别? MAC 是链路层硬件地址(相邻节点寻址),IP 是网络层逻辑地址(跨网寻址)