排查“网不通”,我一般先把问题切到 L2 或 L3。这个判断看起来基础,却能决定后面该查关联、ARP 和帧,还是 IP、路由和网关。
- L2:数据链路层
- L3:网络层
下面按实际发包过程把两层接起来。
1. L2 在解决什么问题
L2 最核心解决的是:
- 同一链路上的节点怎么互相识别
- 帧怎么封装
- 一帧能否被正确送到邻居节点
它关心的是“这一跳”。
典型内容包括:
- MAC 地址
- 以太网帧
- Wi-Fi 帧
- VLAN
- ARP
- FCS / CRC
2. L3 在解决什么问题
L3 更关注的是“跨网段怎么走”和“最终目的地怎么到”。
它主要处理:
- IP 地址
- 子网划分
- 路由
- 分片与重组
- TTL
- ICMP
也就是说,L2 更像在处理本地邻居关系,L3 在处理全局路径选择。
3. MAC 地址和 IP 地址为什么不能混为一谈
很多新手会把两者都看成“设备地址”,但它们服务的层次不同:
- MAC 地址:链路层地址,用于本地二层转发
- IP 地址:网络层地址,用于跨网络寻址
当一台主机要发包时,通常会同时需要这两层信息:
- L3 决定目标 IP 和下一跳是谁
- L2 决定当前这一帧的目的 MAC 是谁
4. ARP 为什么总在排障时出现
ARP 的作用很直接:
- 已知对方 IP
- 想知道当前链路上该把帧发给谁
所以它是在帮 L3 地址找到当前链路上的 L2 落点。
如果设备 ping 不通网关,第一反应经常就是先看:
- ARP 表里有没有网关 MAC
- ARP 请求有没有发出去
- ARP 应答有没有回来
因为很多“IP 不通”问题,根子其实先卡在 L2 邻居解析上。
5. 交换机和路由器在这里分别做什么
可以先用最朴素的方式理解:
- 交换机主要看 MAC
- 路由器主要看 IP
交换机靠 MAC 地址表学习和转发。路由器则根据路由表决定下一跳。
所以:
- 同网段通信更多落在交换机和 L2
- 跨网段通信必须经过 L3 路由决策
6. Wi-Fi 为什么也属于 L2 重点
很多人一提 L2 只想到以太网,但 Wi-Fi 同样是典型 L2 领域,而且复杂度通常更高。
它在链路层会涉及:
- 认证和关联
- 管理帧 / 控制帧 / 数据帧
- CSMA/CA
- 重传
- 聚合和分片
所以无线问题排查里,经常虽然表象是“网络不好”,但实际卡点仍然在 L2。
7. L3 常见重点为什么总绕不开路由
L3 的灵魂其实就是路由选择。
主机或路由器面对一个目标 IP 时,通常要做:
- 查路由表
- 找到最匹配前缀
- 决定下一跳
- 再交给 L2 去发这一跳
所以很多网络问题最后会落到:
- 默认路由没配
- 更长前缀覆盖了预期路径
- NAT 或策略路由把路径改了
8. NAT、QoS、ICMP 为什么也常被归到 L3 讨论
因为这些机制都跟 IP 层处理密切相关。
NAT
本质是地址和端口的改写,用来解决地址复用或发布服务等问题。
QoS
很多时候会结合 DSCP、优先级、队列调度去影响不同流量的处理策略。
ICMP
它虽然不传用户业务数据,但对网络控制和排障非常重要,比如:
- ping
- traceroute
- 错误报告
9. L2 和 L3 是怎么协作的
如果把一条数据包真正发出去,可以先简化理解成:
- 应用层产生数据
- TCP/UDP 封装
- IP 层决定目标 IP 与下一跳
- 链路层封装 MAC 头
- 物理层发出去
所以 L2 和 L3 从来不是独立工作的。
L3 决定“往哪走”,L2 决定“这一跳怎么发”。
10. 排障时怎样按层次拆问题
网络问题最怕一上来就把所有概念揉在一起。更稳的做法通常是分层查。
先看 L2
- 链路是否 up
- 是否关联成功
- ARP 是否正常
- MAC 层是否有明显丢包 / 错帧
再看 L3
- IP 地址是否正确
- 路由是否正确
- NAT / 防火墙是否影响流向
- ICMP 是否可达
这种顺序很有效,因为很多问题并不是“协议栈全坏了”,而是某一层根本没打通。
11. 面试里更值得怎么讲
如果只是背“L2 是数据链路层,L3 是网络层”,其实价值很低。更好的表达通常是:
- L2 负责本地链路上的帧传递
- L3 负责跨网络的寻址和路由
- 真正发包时 L3 选路,L2 落地
如果再能顺手举一个例子,比如“主机 ping 网关”或“跨网段访问服务”的封装过程,理解就会更完整。
12. 排查时怎么用
先按这个分工切问题:
- L2:邻居、帧、链路
- L3:地址、路由、跨网段
同网段不通,先别急着改默认路由;ARP 都拿不到,应用层日志再多也没用。跨网段不通,则要同时看本机路由、网关转发和返回路径。抓包最好两端都抓,单点很容易误判。