连载中 3/20

MAC 与 ARP:局域网里怎么找到隔壁那台机器

2026-10-02 · 36 阅读 · 0 评论 · 0 赞

IP 会变,MAC 不变

同一台笔记本,在家是 192.168.1.5,到公司变成 10.2.8.33——IP 是逻辑地址,跟着网络环境走。而 MAC 地址 48 位,烧在网卡里全球唯一,走到哪都不变。为什么要有两套地址?因为分工不同:IP 负责端到端的路径规划(跨城市怎么走),MAC 负责一跳之内的实际投递(这一站交给谁)。快递单上的收货地址是 IP,驿站扫码认的取件码是 MAC。

ARP:喊一嗓子问门牌

知道对方 IP,要把帧交给对方 MAC,中间隔一次查询——ARP 协议。流程简单粗暴:广播提问,单播回答。

$ arp -a
? (192.168.1.1)   at a4:7b:2c:11:22:33 on eth0      ← 网关的 MAC
? (192.168.1.103) at f0:18:98:aa:bb:cc on eth0      ← 同事电脑

// ARP 请求(广播帧,全子网都收得到):
//   谁是 192.168.1.1?请告诉 192.168.1.5(我的 MAC 是 xx)
// ARP 应答(单播):
//   我是 192.168.1.1,我的 MAC 是 a4:7b:2c:11:22:33
// 查到的映射缓存起来(几分钟过期),不会每次发包都喊

排查网络时 arp -a 很好用:网关条目缺失或不完整,说明二层不通——网线、交换机、VLAN 划分的问题,跟 IP 配置无关。

一个包的封装与拆封

应用数据往下发,每过一层包一层信封,对端收到再逐层拆开——这就是封装:

┌────────────────────────────────────────────────────────┐
│ 以太网帧头                                              │
│   源 MAC: f0:18:98:aa:bb:cc  目标 MAC: a4:7b:2c:11:22:33│
│ ┌──────────────────────────────────────────────────┐   │
│ │ IP 头                                             │   │
│ │   源 IP: 192.168.1.5   目标 IP: 192.168.1.1       │   │
│ │ ┌────────────────────────────────────────────┐   │   │
│ │ │ TCP 头:源端口 52333 → 目标端口 443          │   │   │
│ │ │ ┌──────────────────────────────────────┐   │   │   │
│ │ │ │ 应用数据(TLS 记录 / HTTP 报文)        │   │   │   │
│ │ │ └──────────────────────────────────────┘   │   │   │
│ │ └────────────────────────────────────────────┘   │   │
│ └──────────────────────────────────────────────────┘   │
└────────────────────────────────────────────────────────┘
接收方按相反顺序拆:每一层只读自己的头,干自己的事

跨网段时,目标 MAC 填谁

这是最容易被面试官追问的点。主机发现目标 IP 不在自己子网(拿子网掩码一算便知),就把帧交给默认网关——注意:IP 头里的目标地址始终是最终目的地,但帧的目标 MAC 填的是网关的 MAC。网关收到后拆掉帧头,查自己的路由表,重新封装,把目标 MAC 换成下一跳的。每一跳 MAC 都在换,IP 头里源和目标从头到尾不变(NAT 场景除外)。

ARP 欺骗:局域网的暗箭

ARP 应答不验证身份,谁喊都信——这给攻击留了门:攻击者不断广播假 ARP 应答,谎称网关 IP 对应自己的 MAC,受害机器的流量就先流经攻击者(中间人),再转发给真网关。防御思路:交换机开动态 ARP 检测、关键机器静态绑定网关 MAC。日常自查:同一台网关的 MAC 在 arp -a 里突然变了,警惕。下一篇进入重头戏:TCP 连接是怎么建立的,为什么偏偏握手三次。

☕
503

10 年全栈工程师 · 503咖啡馆主理人

#MAC地址#ARP协议#封装#网关#ARP欺骗

评论 (0)

热门推荐

连载中 11/22

主从搭建实操:从零配出一主两从

光讲原理不过瘾?手把手搭一主两从:my.cnf 六个参数、复制账号、GTID、CHANGE REPLICATION SOURCE TO、SHOW REPLICA STATUS 验收,附翻车排查清单。

#MySQL#主从复制#GTID#主从搭建#高可用
2026-05-07 · 10100 阅读 · 0 评论 · 0 赞
连载中 16/22

连接池:HikariCP 参数与连接风暴

连接池不是越大越好:8 核机器配 1000 连接反而更慢的数学原理,HikariCP 四个必调参数,maxLifetime 与 wait_timeout 的隐形陷阱。

#MySQL#连接池#HikariCP#maxLifetime#连接风暴
2026-05-10 · 9872 阅读 · 0 评论 · 0 赞
连载中 4/16

缓存穿透:恶意 ID 打穿 MySQL 的四道防线

请求的数据在缓存和数据库里都不存在时,缓存形同虚设。聊聊参数校验、空值缓存、布隆过滤器、限流熔断四道防线的原理与组合打法。

#Redis#缓存穿透#布隆过滤器#高可用
2026-05-16 · 9293 阅读 · 21 评论 · 287 赞