You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

两台通过以太网交换机连接的Linux设备是如何互相发现并通信的?

同交换机两台Linux设备首次通信的底层逻辑

核心原因是**ARP(地址解析协议)**完成了IP到MAC的映射,全程不需要二层交换机识别IP地址,完整流程如下:

  • 当你在设备A上首次执行ping 10.0.0.2或ssh userB@10.0.0.2时,系统首先匹配路由表,判定10.0.0.2和自身属于同一个直连子网,需要获取目标IP对应的MAC地址才能封装二层帧。
  • 设备A先查询本地ARP缓存,无对应记录就会发送ARP广播请求:该二层帧的目的MAC为广播地址ff:ff:ff:ff:ff:ff,载荷内容为「我是IP 10.0.0.1,MAC为[设备A的MAC地址],请问IP 10.0.0.2对应的MAC是什么?」
  • 二层交换机收到广播帧后,会向所有除入站口之外的端口泛洪该帧,所有同交换机下的设备都会收到这个请求。
  • 设备B收到ARP请求后,校验到目标IP是自身配置的IP,就会返回ARP单播应答:载荷内容为「我是IP 10.0.0.2,MAC为[设备B的MAC地址]」,该应答的目的MAC直接填设备A的MAC地址。
  • 交换机此前已经通过设备A发送的ARP请求,记录了设备A的MAC对应端口,因此会直接把ARP应答转发给设备A,不会泛洪。
  • 设备A收到应答后,会将10.0.0.2和对应MAC的映射关系存入本地ARP缓存,后续发往该IP的数据包就可以直接封装正确的目的MAC,完成二层转发。

你可以手动验证这个流程:首次通信前在设备A执行arp -n,看不到10.0.0.2的缓存记录,通信完成后再次执行该命令即可看到对应映射条目。

内容的提问来源于stack exchange,提问作者Proto Ukr

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.10.07 14:45:02