我听说arp缓存存储在机器和交换机中...这是真的吗?
当数据包需要从机器“A”传输到机器“B”时,意味着我们可以简单地将数据包发送到交换机。由于交换机包含连接到交换机的所有 IP 的 MAC 地址,因此可以简化传输。那么为什么本地机器“A”需要 arp 缓存呢?我看到机器“A”包含机器“B”的 MAC。
答案1
这些缓存并不是一回事。
在第 3 层设备(计算机)中,arp 缓存用于缓存 ip 地址与“拥有”该 ip 地址的 mac 地址之间的关系。
第 2 层设备(交换机)使用 mac 地址缓存来记住哪个 mac 地址可通过交换机上的哪个端口访问。
它被称为 mac 地址表,但经常被错误地称为 arp 缓存。
所以两者都被称为 arp-cache,但它们在网络堆栈的不同层中运行。
更令人困惑的是:可管理交换机和也可以执行第 3 层功能的交换机有两种类型的缓存,因为它们在两个层上运行。
答案2
机器不会向交换机发送数据包,甚至对交换机一无所知。如果在同一个子网中,它只会尝试直接解析目标机器的 mac 地址,否则将其发送到默认网关。然后尝试解析网关的 mac 地址并发送。
出于安全原因和提高效率,交换机会记住从 mac 地址到交换机端口的映射。从机器的角度来看,它的作用与电缆完全相同。