网络通信中的报文中带有对方主机的MAC地址,但是我们只知道对方主机的IP,对方的MAC地址是怎么获取到的呢?

如题,我知道MAC地址可以通过ARP协议广播来获取,但是ARP不是只在局域网内广播吗?比如我要给百度服务器发信息,百度服务器和我的PC并不在同一个局域网中,那是怎么获取到百度服务器的MAC地址的吗?

阅读 6.1k
2 个回答

ARP只在局域网内有效。

你根本不需要知道局域网外目的主机的MAC地址...你需要知道的是下一跳的MAC地址,比如在你的这种情况下就是局域网网关的MAC地址...

所以你发出报文的元组信息是

源MAC=你自己的MAC 目的MAC=网关MAC 源IP=你自己IP 目的IP=百度服务器IP

只有在你不知道网关的MAC时,才会用ARP去请求网关的MAC。

补充一下,当最后一跳的路由器到百度服务器时,路由器会发ARP包,获得百度服务器的MAC地址。

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进