https://blog.csdn.net/weixin_43762939/article/details/91352663
这是上一篇简单介绍了同一个局域网下ARP协议实现过程
上一篇简述了ARP协议的过程,但有个前提:必须是同一个网络下。
不同网络下两台主机通信,看图:
主机A IP地址是IP1 物理地址是 HA1;
主机2 IP地址是IP2, 物理地址是HA2;
主机A与主机2不在同一个局域网下,当主机A的IP数据报想要跨局域网发送给主机2
1.先将数据报IP1|IP2发送给同一个局域网下的路由器R1(路由器由于要转发主机A的数据报因此会有两个IP地址,两个MAC地址记为IP3,IP4,HA3,HA4;
2.路由器R1然后根据IP数据报的目的地址,选择合适的路由器R2再转发,路由器R2是连接另一个局域网的,由此可见ARP协议如果想知道不同局域网下主机的MAC地址,必须得有路由器作为中间桥梁转发。
而在实际中,我们根本不用管这些,因为IP地址到MAC地址的解析是自动解析的,主机的用户对这种地址解析过程是不知道的。
我们可以在cmd下查询ARP高速缓存表:
四种典型的ARP情况
- 同一个网络下net1 主机1想要和主机2通信,主机1先把IP数据报发送到自己的MAC网卡上,在通过ARP映射表直接发送到主机2的网卡上,在上传到网络层。
- 发送方是主机1,想要发给net2网络下的主机3,先将IP数据报发送给router,剩下的工作交给路由器来完成
- 路由器router想要发送给主机3,则它在Net2下广播一个请求,寻找主机3
- 路由器router想要发送给主机4,垮了另一个路由器,则先将IP数据报发送给位于Net3网络下的路由器,接下来交给路由器来完成。