跳转至

00. 计算机网络基础(面试必会版)

计网面试最常见的翻车方式是:TCP 三次握手背得滚瓜烂熟,但 OSI 模型答不清、IP 地址分类说不出、ARP/ICMP/NAT 一问就卡。

这些"太基础不想看"的知识点,恰恰是面试第一个问题最容易出的地方——而且一旦答不好,后面再深的东西面试官都不会问了。

这一章建议按“先把地基打牢,再顺着高频问法展开,最后补难点和边界”的顺序阅读。


先把这一章的知识骨架搭起来

网络基础不是给 TCP 铺个前菜,它本身就是整套网络知识的地基。你至少要先把 分层、寻址、转发、局域网与广域网角色分工 理顺。应用层关心协议语义,传输层关心端到端通信,网络层关心跨网络寻址和转发,链路层关心同一链路上的帧传输。

当你理解了“数据一层层封装出去,再一层层解封装回来”,后面再看 IP、MAC、ARP、NAT、ICMP、子网划分时就不会碎。因为这些东西都不是孤立定义,而是在回答:包怎么找到下一跳、主机怎么找到对端、私网怎么出公网、网络出问题时怎样反馈。

基础网络题常常决定面试官是否继续深挖,所以这章必须先把地基打平。


第一部分:先把概念和主线讲清楚

进入问答前,先把最小前置知识补齐

网络基础题真正的地基,是先把“分层”和“寻址”两件事想清楚。应用层处理业务语义,传输层处理端到端传输,网络层处理跨网络寻址和转发,链路层处理同一条链路上的帧传输。

然后再理解两类地址:IP 地址负责跨网络定位主机,MAC 地址负责同一链路上的下一跳识别。ARP、ICMP、NAT、子网划分这些看似分散的知识点,其实都在补这张图:包怎么找到对端、私网怎么出公网、链路或路由出问题时怎么反馈。


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

OSI 七层 TCP/IP 四层 功能 常见协议/设备
应用层 应用层 为应用提供网络服务 HTTP, FTP, DNS, SMTP
表示层 数据格式转换、加密/解密 SSL/TLS, JPEG, ASCII
会话层 会话管理、同步 RPC, NetBIOS
传输层 传输层 端到端的可靠/不可靠传输 TCP, UDP
网络层 网络层 路由和寻址 IP, ICMP, ARP, OSPF
数据链路层 网络接口层 帧传输、差错检测 Ethernet, PPP, 交换机
物理层 比特流传输 光纤、网线、集线器

面试怎么答:

OSI 是理论参考模型,实际工程用的是 TCP/IP 四层模型。面试里如果问"网络分几层",最好两个都提,然后说清楚映射关系。

常见追问:

Q:为什么要分层? A:分层是为了解耦——每一层只关心自己的职责,上层不需要知道下层的实现细节。这样可以独立演进、替换和调试。

Q:TCP/IP 模型把 OSI 的哪些层合并了? A:应用层合并了 OSI 的应用层、表示层和会话层;网络接口层合并了数据链路层和物理层。


2. IP 地址基础

2.1 IPv4 地址分类

类别 范围 默认子网掩码 用途
A 类 1.0.0.0 ~ 126.255.255.255 255.0.0.0 (/8) 大型网络
B 类 128.0.0.0 ~ 191.255.255.255 255.255.0.0 (/16) 中型网络
C 类 192.0.0.0 ~ 223.255.255.255 255.255.255.0 (/24) 小型网络
D 类 224.0.0.0 ~ 239.255.255.255 组播
E 类 240.0.0.0 ~ 255.255.255.255 保留/实验

2.2 私有地址范围

类别 私有地址范围
A 10.0.0.0 ~ 10.255.255.255
B 172.16.0.0 ~ 172.31.255.255
C 192.168.0.0 ~ 192.168.255.255

面试高分点: 127.0.0.0/8 是环回地址,不属于 A 类可用地址。0.0.0.0 表示"本网络"或"所有地址"。255.255.255.255 是受限广播地址。

2.3 子网掩码与 CIDR

  • 子网掩码用于区分 IP 地址中的网络部分和主机部分
  • CIDR(无类别域间路由)用 /n 表示前缀长度,如 192.168.1.0/24
  • 子网划分的本质是从主机位借位给网络位

常见追问:

Q:192.168.1.0/24 能容纳多少个主机? A:2^8 - 2 = 254 个(减去网络地址和广播地址)。

Q:两个 IP 地址怎么判断是否在同一子网? A:分别和子网掩码做 AND 运算,结果相同就在同一子网。


3. ARP 协议

作用: 根据 IP 地址解析出对应的 MAC 地址(网络层 → 数据链路层的地址映射)。

工作流程:

  1. 主机 A 要发数据给同一子网的主机 B
  2. A 先查本地 ARP 缓存,有 B 的 MAC 就直接用
  3. 没有就广播 ARP 请求:"谁是 192.168.1.5?请告诉 192.168.1.1"
  4. B 收到后单播回复自己的 MAC 地址
  5. A 缓存这个映射,后续直接使用

常见追问:

Q:ARP 欺骗是什么? A:攻击者伪造 ARP 响应,把自己的 MAC 绑定到目标 IP 上,从而截获或篡改流量。防御手段包括静态 ARP 绑定、DAI(动态 ARP 检测)等。

Q:跨子网通信时 ARP 解析的是谁的 MAC? A:解析的是网关(路由器)的 MAC,不是目标主机的 MAC。因为跨子网需要先发给网关转发。


4. ICMP 协议

作用: 用于网络设备之间传递控制消息和错误报告。

常见应用:

  • ping:发送 ICMP Echo Request,收到 Echo Reply 说明网络可达
  • traceroute:利用 TTL 递增和 ICMP Time Exceeded 消息,逐跳探测路径

常见追问:

Q:ping 用的是什么协议? A:ICMP(Internet Control Message Protocol),工作在网络层。

Q:为什么有时候 ping 不通但服务可以访问? A:可能是目标主机或中间防火墙禁止了 ICMP 报文,但 TCP/UDP 端口仍然开放。


5. NAT(网络地址转换)

作用: 将私有 IP 地址转换为公有 IP 地址,解决 IPv4 地址不够用的问题。

NAT 类型:

  • 静态 NAT: 一对一映射,一个私有 IP 固定对应一个公有 IP
  • 动态 NAT: 从公有 IP 池中动态分配
  • NAPT(端口地址转换): 多个私有 IP 共享一个公有 IP,通过端口号区分(最常见)

常见追问:

Q:NAT 会带来什么问题? A:① 外部无法主动连接内部主机(需要端口映射或 UPnP);② 某些协议(如 FTP 主动模式)在 NAT 下会出问题;③ 增加了连接跟踪的开销。

Q:NAT 和代理有什么区别? A:NAT 工作在网络层,对应用透明;代理工作在应用层,需要应用配置。NAT 只改地址/端口,代理可以做内容审查、缓存等。


第二部分:围绕高频追问继续展开

6. 交换机、路由器、网关的区别

设备 工作层 功能 寻址依据
交换机 数据链路层 同一网络内帧转发 MAC 地址
路由器 网络层 不同网络间数据包转发 IP 地址
网关 可以在任何层 不同网络/协议之间的翻译 取决于类型

面试注意: 家用路由器通常集成了路由器 + 交换机 + NAT + DHCP 等多个功能,面试时说的"路由器"通常指纯三层设备。


7. 从输入 URL 到页面显示的完整链路(网络部分)

  1. DNS 解析: 浏览器缓存 → 系统缓存 → 本地 DNS → 递归/迭代查询 → 拿到 IP
  2. TCP 建连: 三次握手(如果是 HTTPS 还要 TLS 握手)
  3. HTTP 请求: 客户端发送请求报文(方法、URL、头部、Body)
  4. 服务端处理: Web 服务器/应用服务器处理请求
  5. HTTP 响应: 服务端返回状态码 + 响应体
  6. TCP 关连: 四次挥手
  7. 浏览器渲染: 解析 HTML/CSS/JS → 构建 DOM → 渲染

这道题的回答策略: 从上到下分层讲,每一层点到即止,等面试官追哪一层再展开。不要一上来就把所有细节全倒出来。

细看: TCP、UDP、HTTP、HTTPS / RPC、消息队列、DNS、CDN


8. MAC 地址和 IP 地址的区别

维度 MAC 地址 IP 地址
层次 数据链路层 网络层
长度 48 位(6 字节) IPv4: 32 位 / IPv6: 128 位
分配方式 出厂烧录(理论上全球唯一) 网络管理员分配或 DHCP
作用范围 本地网络(局域网内) 全局可路由
可变性 通常不变(但可以修改) 可以变(DHCP、移动网络)

面试高分点: 网络通信需要两种地址配合:IP 地址负责"找到目标在哪个网络",MAC 地址负责"在本地网络里找到具体设备"。跨网络时,IP 地址不变,MAC 地址逐跳改变。


9. IPv4 和 IPv6 的区别

维度 IPv4 IPv6
地址长度 32 位 128 位
地址表示 点分十进制(192.168.1.1) 冒号分隔十六进制(2001:db8::1)
地址空间 约 43 亿 约 3.4 × 10^38
NAT 广泛使用 理论上不需要
头部 可变长,复杂 固定 40 字节,更简洁
安全性 IPSec 可选 IPSec 内置

第三部分:把难点、边界和代价吃透

10. DHCP 工作流程

作用: 自动分配 IP 地址、子网掩码、网关、DNS 等网络配置。

流程(DORA):

  1. Discover: 客户端广播"谁能给我一个 IP?"
  2. Offer: DHCP 服务器回复"我这里有一个 IP 给你"
  3. Request: 客户端选择一个 Offer 并广播确认
  4. Acknowledge: 服务器确认分配

常见追问:

Q:DHCP 分配的 IP 是永久的吗? A:不是,有租约时间。到期后需要续租或重新获取。

Q:为什么 DHCP Discover 和 Request 都是广播? A:Discover 是因为客户端还不知道 DHCP 服务器在哪;Request 广播是为了通知其他 DHCP 服务器"我选了这个 Offer"。


11. 路由选择协议

静态路由 vs 动态路由:

  • 静态路由:手动配置,适合小型网络
  • 动态路由:路由器之间自动交换路由信息

常见动态路由协议:

协议 类型 特点
RIP 距离矢量 简单,最多 15 跳,收敛慢
OSPF 链路状态 基于 Dijkstra,收敛快,适合大型网络
BGP 路径矢量 互联网骨干使用,AS 间路由

12. TTL(Time To Live)

  • IP 报文头部的字段,每经过一个路由器减 1
  • 减到 0 时路由器丢弃该报文并发送 ICMP Time Exceeded
  • 作用:防止报文在网络中无限循环
  • traceroute 就是利用 TTL 递增来逐跳探测路径

13. 网络排障常用命令

命令 作用
ping 测试网络可达性(ICMP)
traceroute / tracert 跟踪数据包路径
nslookup / dig DNS 查询
netstat / ss 查看网络连接状态
tcpdump / Wireshark 抓包分析
ifconfig / ip addr 查看/配置网络接口
arp -a 查看 ARP 缓存
curl 测试 HTTP 请求

关联章节