MAC地址相关问题主机A和主机B不在同一个IP网络中,通过路由器R互连。A给B发送数据之前,为了获得B的MAC地址,发送了ARP请求。A收到的ARP响应中能够得知R的MAC地址还是得知B的MAC地址?

主机A和主机B不在同一个IP网络中,通过路由器R互连。A给B发送数据之前,为了获得B的MAC地址,发送了ARP请求。A收到的ARP响应中能够得知R的MAC地址还是得知B的MAC地址?

当然是R的
跨网段ARP失效
跨网只能通过IP通信,不再能通过MAC直接进行通信

如果不在同一个IP网络,A就不会发送ARP请求去询问B。ARP是在同一个网络内,通过广播的方式查询主机。
你这个场景的运行过程如下:

  1. A检查B的地址,发现不在同一IP网络,就检查自己的路由表
  2. 如果路由表里没有B的静态路由,就将数据帧发送给网关,也就是路由器R
  3. 因为路由器R和A属于同一个网络,A于是检查自己有没有R的MAC地址
  4. 如果没有,A会发送ARP请求查询路由器R的MAC地址
  5. 得到R的MAC地址后,A发送的数据包会包上R的MAC地址,里面的IP头依然是B的IP地址。
  6. 路由器R收到A发来的数据包,解开帧头,发现IP头是B,再路由给B。
  7. 反过来的过程一样。

同网段的目的ip才直接发出arp去请求mac地址,跨网段去请求网关的mac地址。就像邮局分拣邮件,是本局投送的才留下,安排投送。不是本局的邮件,要送到上级局去处理。