![]()
很多人刚接触网络时,都会有一个疑问:
既然 IP 已经唯一标识一台设备了,为什么还要多一个 MAC 地址?
看起来像“重复设计”。
但实际上:IP 和 MAC 解决的是两个完全不同层面的问题。
如果没有 MAC,IP 根本落不了地。
一、先结论:IP 负责“找谁”,MAC 负责“怎么送到”
一句话总结:
IP 用来决定路径,MAC 用来完成交付。
或者更工程一点:
- IP:网络层(跨网段)
- MAC:链路层(同一跳)
二、为什么“只用 IP”行不通?
很多人会下意识认为:直接用 IP 发包不就好了?
问题在于:
IP 只能告诉你“目标是谁”,但不能告诉你“下一跳在哪个接口、对应哪个设备”。
网络通信不是“直接到达”,而是: 一跳一跳转发
每一跳,都发生在二层网络中。
而二层设备(交换机):只认 MAC,不认 IP
三、真实的数据转发过程
举一个最常见的通信过程:主机 A 访问服务器 B(不同网段)
第一步:确定路径(IP 做的事)
A 发现:
- 目标 IP 不在本地网段 → 发给网关
这一步是 IP 决定的
第二步:找到下一跳(ARP 介入)
A 需要知道:网关的 MAC 地址
于是:
- 发 ARP 请求
- 获取 MAC
第三步:封装帧(MAC 开始工作)
真正发出去的数据是:
目标MAC:网关
源MAC:主机A
目标IP:服务器B
注意这个关键点:MAC 指向“下一跳”,IP 指向“最终目标”
第四步:一跳一跳转发
每经过一个路由设备:
- MAC 会变化
- IP 不变(不考虑 NAT)
直到到达目标。
四、为什么必须区分 IP 和 MAC?
这是网络设计的核心。如果没有这种分层:
问题 1:网络无法扩展
MAC 是:
- 硬件地址
- 不可路由
- 无层级结构
IP 是:
- 可规划
- 可分层
- 可聚合
只有 IP 才能支撑互联网规模
问题 2:交换机无法工作
交换机转发靠:MAC 地址表
如果只有 IP: 每一帧都要上 CPU 解析。
性能直接崩溃。
问题 3:广播无法控制
MAC 工作在:同一广播域
IP 工作在:跨网络
分层可以隔离广播
五、为什么 MAC 不直接做路由?
这个问题更本质。
原因有三个:
1. MAC 没有层级结构
IP 可以这样设计:
192.168.x.x
10.x.x.x
可以聚合路由。
MAC 是:
- 完全平铺
- 无法汇总
路由表会爆炸
2. MAC 不可控
- 出厂写死
- 无法按网络规划
而 IP: 可以按组织结构设计
3. MAC 只适合局部通信
MAC 的设计目标是: 局域网内部通信
不是跨网络。
六、一个容易被忽略的关键点
很多人以为: “IP 才是通信核心”,但从实际转发来看:
真正把数据送到网卡上的,是 MAC。
IP 决策路径, MAC 执行交付。
七、工程里常见的几个现象
现象 1:ARP 出问题,全网不通
因为: IP 找到了,但 MAC 找不到
现象 2:能 ping 网关,但不能访问外网
可能是: 后续跳数的 MAC 解析异常
现象 3:抓包看到 MAC 一直在变
因为:每一跳都会重新封装
八、总结
最后一句最关键的总结:
IP 解决“去哪”,MAC 解决“怎么到”。
或者更直白一点:没有 MAC,IP 只是一个“地址”; 没有 IP,MAC 只能在局域网里打转。
两者缺一不可。
特别声明:以上内容(如有图片或视频亦包括在内)为自媒体平台“网易号”用户上传并发布,本平台仅提供信息存储服务。
Notice: The content above (including the pictures and videos if any) is uploaded and posted by a user of NetEase Hao, which is a social media platform and only provides information storage services.