网络面试题
OSI 模型与 TCP/IP 模型的区别
【题目】 OSI 模型与 TCP/IP 模型的区别是什么?
【参考答案】
| 维度 | OSI 模型 | TCP/IP 模型 |
|---|---|---|
| 层数 | 7 层 | 4 层 |
| 分层 | 物理层→数据链路层→网络层→传输层→会话层→表示层→应用层 | 网络接口层→网络层→传输层→应用层 |
| 开发方式 | 先定义标准,后实现协议 | 先有协议,后总结模型 |
| 使用范围 | 理论参考模型 | 实际应用标准 |
TCP/IP 四层对应 OSI 七层:
- 应用层 ≈ 应用层 + 表示层 + 会话层
- 传输层 = 传输层
- 网络层 = 网络层
- 网络接口层 ≈ 数据链路层 + 物理层
【延伸追问】
- 为什么 OSI 模型没有在现实中取代 TCP/IP?
- 五层模型(混合模型)在教学中常见,它和 TCP/IP 有何关系?
【易错坑点】
- 面试中不要混淆 OSI 会话层和传输层的职责
- TCP/IP 模型和 OSI 模型不是对立关系,TCP/IP 的实际分层更接近五层模型
TCP 和 UDP 的区别
【题目】 TCP 和 UDP 协议有什么区别?
【参考答案】
| 特性 | TCP | UDP |
|---|---|---|
| 连接 | 面向连接(三次握手) | 无连接 |
| 可靠性 | ✅ 可靠传输(确认重传) | ❌ 不可靠,尽最大努力交付 |
| 顺序 | ✅ 保证数据有序到达 | ❌ 可能乱序 |
| 速度 | 较慢(头部 20 字节、控制开销大) | 快(头部 8 字节、无控制开销) |
| 流量控制 | ✅ 有(滑动窗口) | ❌ 无 |
| 拥塞控制 | ✅ 有 | ❌ 无 |
| 应用场景 | HTTP、HTTPS、FTP、SSH | DNS、视频直播、VoIP、游戏 |
【延伸追问】
- 为什么 DNS 使用 UDP?(快、单次查询、重传简单)
- QUIC(HTTP/3)如何融合 TCP 的可靠性和 UDP 的低延迟?
【易错坑点】
- TCP 头最小 20 字节,UDP 头固定 8 字节
- UDP 也能实现可靠性(在应用层实现确认重传,如 QUIC、KCP)
IP 地址:IPv4 和 IPv6 的区别
【题目】 什么是 IP 地址?IPv4 和 IPv6 有什么区别?
【参考答案】 IP 地址是网络中唯一标识一台设备的地址。
| 特性 | IPv4 | IPv6 |
|---|---|---|
| 地址长度 | 32 位 | 128 位 |
| 地址数量 | 约 42 亿 | 2^128(几乎无限) |
| 表示方式 | 点分十进制(192.168.1.1) | 冒号十六进制(2001:db8::1) |
| NAT 依赖 | ✅ 需要 NAT 缓解地址不足 | ❌ 不需要,地址充足 |
| 安全性 | 非原生(可附加 IPsec) | 原生支持 IPsec |
| 普及率 | 广泛使用中 | 逐步推广,普及率较低 |
【延伸追问】
- IPv6 为什么不需要 NAT?这对网络架构有什么影响?
- IPv4 到 IPv6 的过渡技术有哪些?(双栈、隧道、NAT64)
【易错坑点】
- IPv6 不是 IPv4 的升级版,两者是不兼容的独立协议
- IPv6 地址可以省略前导零(
2001:0db8::1→2001:db8::1)
ARP 协议
【题目】 ARP 协议是用来做什么的?
【参考答案】 ARP(Address Resolution Protocol,地址解析协议) 用于将网络层的 IP 地址映射为数据链路层的 MAC 地址。
工作流程:
主机 A 需要与主机 B 通信
→ A 检查本地 ARP 缓存是否有 B 的 MAC
→ 没有则广播 ARP 请求:"谁有 IP 192.168.1.2?"
→ B 收到后单播回复 ARP 响应:"我是,我的 MAC 是 XX:XX:XX:XX:XX:XX"
→ A 将映射写入 ARP 缓存,开始通信
ARP 缓存:保存 IP↔MAC 映射,减少广播次数,条目有过期时间。
【延伸追问】
- ARP 欺骗/ARP 投毒攻击的原理是什么?如何防御?
- 什么是 gratuitous ARP(免费 ARP)?用于什么场景?
【易错坑点】
- ARP 是数据链路层协议,不是网络层协议
- ARP 只在同一个广播域内有效,跨网段需要网关
VLAN
【题目】 VLAN 是什么?
【参考答案】 VLAN(Virtual Local Area Network,虚拟局域网) 是一种将物理上分散的网络设备在逻辑上划分到同一个广播域的技术。
核心作用:
- 广播隔离:VLAN 之间的广播流量不会互相传播
- 安全隔离:不同 VLAN 的设备默认不能直接通信
- 灵活分组:不受物理位置限制,按部门/功能分组
- 简化管理:移动设备只需修改 VLAN 配置,不换物理线路
VLAN 间通信:需要通过三层路由(路由器或三层交换机)
【延伸追问】
- VLAN 的两种划分方式(基于端口 vs 基于 MAC/协议)优缺点?
- VLAN 和 VXLAN 的区别是什么?
【易错坑点】
- VLAN 是二层隔离,不同 VLAN 通信需要三层设备
- IEEE 802.1Q 标签在以太网帧中插入 4 字节(VLAN ID 12 位,最多 4094 个)
路由器和交换机的区别
【题目】 能简单说一下路由器和交换机吗?
【参考答案】
| 特性 | 路由器 | 交换机 |
|---|---|---|
| 工作层级 | 网络层(三层) | 数据链路层(二层) |
| 转发依据 | IP 地址(路由表) | MAC 地址(MAC 表) |
| 核心功能 | 连接不同网络,路径选择 | 同一网络内数据交换 |
| 广播域隔离 | ✅ 是 | ❌ 不隔离 |
| NAT 功能 | ✅ 支持 | ❌ 不支持 |
| 典型设备 | 家用路由器、企业核心路由器 | 接入层交换机、汇聚层交换机 |
现代融合:三层交换机兼具路由和交换功能,VLAN 间路由用三层交换机效率更高。
【延伸追问】
- 三层交换机和路由器有什么本质区别?
- 在数据中心网络架构中,Spine-Leaf 架构如何分配路由器和交换机的角色?
【易错坑点】
- 家用”路由器”实际上是路由器 + 交换机 + AP + NAT 一体机
- 交换机的 MAC 表和学习过程是自动完成的,无需人工配置
DNS
【题目】 什么是 DNS?
【参考答案】 DNS(Domain Name System,域名系统) 是一种将域名转换为 IP 地址的协议。
解析流程:
用户在浏览器输入 www.example.com
→ 浏览器检查本地 DNS 缓存
→ 未命中则向本地 DNS 服务器发起递归查询
→ 本地 DNS 服务器迭代查询:根域名服务器 → .com TLD 服务器 → example.com 权威服务器
→ 返回 IP 地址 → 浏览器发起 HTTP 请求
DNS 记录类型:
| 类型 | 作用 |
|---|---|
| A | 域名 → IPv4 地址 |
| AAAA | 域名 → IPv6 地址 |
| CNAME | 域名 → 另一个域名(别名) |
| MX | 邮件交换记录 |
| NS | 域名服务器记录 |
【延伸追问】
- DNS 使用的是 TCP 还是 UDP?(通常 UDP 53,区域传输用 TCP 53)
- DNS 缓存投毒攻击如何防御?(DNSSEC)
【易错坑点】
- DNS 默认使用 UDP 53 端口,但响应超过 512 字节时会切换到 TCP
- 递归查询和迭代查询是两种不同的查询方式,不要混淆
NAT
【题目】 能讲讲 NAT 吗?
【参考答案】 NAT(Network Address Translation,网络地址转换) 是一种将私有 IP 地址转换为公有 IP 地址的技术。
主要类型:
| 类型 | 说明 | 场景 |
|---|---|---|
| SNAT | 源地址转换(私→公) | 内网设备访问互联网 |
| DNAT | 目的地址转换(公→私) | 外网访问内网服务(端口映射) |
| PAT | 端口地址转换(多对一) | 多个内网 IP 共享一个公网 IP |
NAT 的作用:
- ✅ 节省公网 IP 地址(最核心)
- ✅ 隐藏内部网络结构(安全)
- ✅ 解决地址重叠问题
NAT 的缺点:
- ❌ 增加延迟(需转换头部)
- ❌ 破坏端到端通信模型
- ❌ 某些协议(如 FTP、IPsec)需要特殊处理
【延伸追问】
- Kubernetes 中 Pod 访问外网的 SNAT 过程是怎样的?
- IPv6 普及后 NAT 是否还需要?
【易错坑点】
- NAT 不是安全功能,虽然它隐藏了内网 IP,但并不能防止攻击
- PAT 使多个内网设备共用同一公网 IP,通过端口号区分不同连接
关联文档
- ../网络 — 网络学习主页
- ../technology/eBPF 技术详解 — 内核网络