ARP 协议:是根据已知IP获取目标设备的mac 地址。
通信设备是通过arp 广播获取目标设备的mac 地址。在设备里有一个arp 缓存表,arp缓存表记录了目标IP以及对应的mac 地址。
arp 广播的信息是目标IP和mac地址广播地址(ff-ff-ff-ff-ff-ff)
路由器中有个路由表,路由表里记录的是路由规则。路由规则是指不同网段走不同接口
路由分为:静态路由:由网络工程师手动配置的。灵活性低
默认路由:是一种特殊的静态路由,当所有的静态路由都不满足路由条件时,路由器作出的选择。
如果两个设备不是同一个网段,arp 广播获取的就是路由器mac 地址。数据到了路由器
路由读取的是IP头部
N0和N1之间的通信,局域网通信,N0和N2之间的是跨网通信
一、N0 与 N1 同一局域网通信
- N0 知道 N1 的 IP 后,将自身 IP 与 N1 的 IP 分别和子网掩码做与运算 ,判断二者属于同一网段。
- N0 查看本地 ARP 缓存表,查找 N1 对应的 MAC 地址。
- 若未查到,N0 发送 ARP 广播,同一交换机下所有设备都会收到。
- 其他设备发现目标 IP 不是自己,直接丢弃不响应;只有 N1 发现是自己的 IP,向 N0 回复 ARP 应答。
- N0 收到应答后,将 N1 的 MAC 地址记录到本地 ARP 缓存,并封装数据报文:
- 源 IP:N0
- 目标 IP:N1
- 源 MAC:N0
- 目标 MAC:N1
- 数据包发送到交换机 SW0。
- 交换机读取帧头部,将源 MAC 与入接口记录到 MAC 地址表。
- 交换机根据目标 MAC 查找 MAC 地址表:
- 若未找到,向除入接口外的所有接口广播;
- 目标设备响应后,交换机更新 MAC 地址表,再将数据单播发给 N1。
- N1 收到数据包,完成同一网段内通信。
二、N0 与 N2 跨网段通信
- N0 拿到 N2 的 IP 后做与运算,判断二者不在同一网段 ,于是将数据包发往默认网关(路由器 R0)。
- N0 查找本地 ARP 缓存,获取路由器 F0/0 接口的 MAC 地址,封装数据包:
- 源 IP:N0
- 目标 IP:N2
- 源 MAC:N0
- 目标 MAC:路由器 R0 的 F0/0 接口 MAC
- 数据包到达路由器 R0。
- 路由器解封装后,检查 IP 头部,发现目标 IP 不是自身接口地址,于是查询路由表。
- 根据路由表规则,数据包应从 F0/1 接口转发。
- 转发时,路由器重新封装二层帧:
- 三层 IP 保持不变:源 IP=N0,目标 IP=N2
- 二层 MAC 发生变化:
- 源 MAC 改为 R0 的 F0/1 接口 MAC
- 目标 MAC 改为下一跳设备接口 MAC
- 数据包按照路由条目逐跳转发,经过沿途路由寻址,最终到达 N2 所在网段。
- 数据包送达 N2,完成跨网段通信。

- SNAT:源地址转换 → 内网 → 外网 用
- DNAT:目的地址转换 → 外网 → 内网 用