同一个网络里的设备互相通信,靠的是地址加上一个物理层标识。发送的时候,设备先按目标地址在自己的记录里查对应的物理标识,查到就直接发过去;查不到就向整个网络发一次询问,持有这个地址的设备会回应,之后这条对应关系就被记下来,下次直接用。这套流程与代理IP的转发是两回事,各管一段。每次通信都要走这一步,平时完全感觉不到它的存在。
这套机制为什么只在同一个网络里有效
它依赖一次面向全网的询问,而这个询问不会跨越网络边界。跨网络通信要走另一套流程,由网络设备按地址决定往哪个方向转发。所以同一套机制在两种场景下的作用范围完全不同。代理IP的转发发生在更外层,不参与这一步。这套询问还带有广播开销,网络里设备多、问得又频繁的时候,会占掉一部分带宽。所以设备多的网络里,减少不必要的询问对整体速度也有帮助,这一点在排查慢的问题时也要一并看一眼。
这套查询只在本网络内有效,出了边界就换成另一套流程。
记录下来的对应关系有有效期,过期之后要重新问一次。这样设备换网卡或者换位置之后,旧的记录会自动失效,不需要手工清理。代理IP环境下如果设备的位置变了,本地这套记录也跟着更新,不影响对外通信。有效期通常不长,以分钟计,网络里的变化不用人工干预就能自动跟上。
- 先查记录,查到直接发,查不到才向全网问一次
- 问出来的对应关系会被记下,下次直接用
- 记录有有效期,过期自动失效,不用手工清
这套查询只在本网络里传播,不跨边界。
本地找人和跨网络转发是两套流程。分开看,排查时就不会把两件事混在一起。
