当设备尝试将给定设备的 IP 地址与 MAC 地址相关联时,它会向连接到同一网络的所有设备发送 ARP 请求。如果我理解正确,搜索设备会使用其 MAC 地址访问其他设备。我的问题是:搜索设备首先如何找到其他设备的 MAC 地址?通过默认网关?
关于ARP请求的问题
当设备尝试将给定设备的 IP 地址与 MAC 地址相关联时,它会向连接到同一网络的所有设备发送 ARP 请求。
对于 IPv4,这是正确的。IPv6 使用邻居发现协议 (NDP)。
搜索设备首先如何找到其他设备的MAC地址?
它没有。ARP 使用链路层广播地址 ( FF-FF-FF-FF-FF-FF
) 将请求发送到段中的所有设备。
虽然广播会中断参与一个段的每个节点,但 NDP 使用多播来限制对那些实际使用 IPv6 的节点的中断。(多播有点类似于广播,但在多播感知网络中,多播转发仅限于那些实际订阅了多播类型的节点。此外,当取消订阅时,可以在本地忽略多播。)
通过默认网关?
默认网关不是也不能用于地址解析。
当设备尝试将给定设备的 IP 地址与 MAC 地址相关联时,它会向连接到同一网络的所有设备发送 ARP 请求。
它实际上是一个尝试发现给定 IPv4 地址(IPv6 使用 NDP)的 MAC 地址的设备。
我的问题是:搜索设备首先如何找到其他设备的 MAC 地址?
尝试获取给定 IPv4 地址的 MAC 地址的设备使用 ARP 来执行此操作。如果 MAC 地址已存在于其 ARP 表中,则完成。如果它还没有 MAC 地址,它会向广播 MAC 地址发出 ARP 请求,广播域中的所有其他主机都会收到它,但只有具有该 IPv4 地址的主机才会响应 ARP 请求。
通过默认网关?
这与配置的网关无关,网关只是广播域中的另一台主机,主机使用 ARP 来获取网关的 MAC 地址,就像广播域中的任何其他主机一样。
如果目标主机在 LAN 网络内:- 当数据包进入 LAYER2 时,OSI arpa 如果发现 ip 在 LAN 网络内,则向 arp 提供有效载荷 ARP 是由发送方 Mac 生成的:- 0.0.0.0 这意味着未知,然后该 arpa 进入 LAYER2 ARPA,ARPA制作了一个Ethernet II帧,其中帧用senader Mac FFFF.FFFF.FFFF封装,意思是广播,然后交给OSI的L1。
如果目标主机是其他网络:- Arp 总是生成到第一个默认网关。