对地址解析协议ARP进一步探讨

之前在讨论MAC地址和IP地址时,顺便对ARP协议做了初步的总结

计网第三章(数据链路层)(四)(MAC地址和IP地址、ARP协议、集线器和交换机)),但是当时对ARP请求的间接交付没有进行详细探讨。

一、间接交付

简单来说直接交付就是在同一个网络里面,而间接交付不在同一个网络里。也就是必须要跨网络进行。

在前面有提到,ARP协议是不能够跨网络进行的,每个ARP缓存表只有本地局域网内的相关MAC地址。当一个主机要给另一个主机发送数据包,中间肯定是进行了多次ARP协议的。

二、间接交付具体过程

假设主机A和主机B之间只隔了一个路由器。现在主机A想要给主机B发送数据,A在自己的ARP缓存表中没有找到主机的IP地址和MAC地址的映射,在经过将B的IP地址和自己的子网掩码相与后,主机A发现主机B并不和自己在一个网络里面。

于是主机A就会先给默认网关发送一个广播ARP请求,源IP地址是自己的IP地址,目的IP地址是默认网关的IP地址,源MAC地址是自己的MAC地址,目的MAC地址是FF-FF-FF-FF-FF-FF。

默认网关收到后给主机A发送一个ARP单播响应报文,目的地址字段为主机A的目的地址字段,报文中有网关自己的IP地址和MAC地址。

这样主机A就会将默认网关的MAC地址和IP地址的映射关系存入自己的ARP缓存表中。

随后,当主机A给主机B发送数据的时候,就会将报文封装发送给默认网关。其中源IP地址是主机A的IP地址,目的IP地址应该属主机B的IP地址,源MAC地址是主机自己的MAC地址,目的MAC地址是默认网关的MAC地址。

默认网关收到后,便会先在自己的ARP表里查找是否有B的MAC地址,如果没有就发送ARP广播请求,如果有就直接转发给主机B。

我们可以看到,间接交付主机A并不知道主机B的MAC地址,它只知道默认网关的MAC地址,出现间接交付的情况时就要将报文交付给默认网关,而默认网关进行后续操作。从这也可以得到,路由器也是有ARP缓存表的。

总结

1、博主起初对主机发送广播帧给默认网关比较迷惑:路由器不是隔离广播域的吗,那么主机发送广播ARP请求帧,路由器收到后不应该就抛弃了吗?

事实上路由器对于广播帧进行的接收不转发操作,比如下图:

对于R1路由器,很明显它连接的两个接口分别连接一个网络,也就是说它有两个广播域,我们不能直接说路由器属于哪个广播域,只能从接口进行说明。路由器的接口0和N1属于一个广播域,接口1和N2属于一个广播域。接口实际上就是在广播域的边界上。

所以对于收到ARP请求广播帧后,路由器并不是进行转发操作,接收后向主机返回ARP响应单播帧是没有问题的。

2、上面的间接交付只是一种比较简单的情况,事实上可能还会有多个路由相连,而路由器与路由器之间一般都会用点对点PPP协议,所以在它们之间的链路上并不会用ARP协议,直接就把报文转发给下一个路由器了。

相关推荐
编程之路,妙趣横生1 天前
IP 协议
计算机网络
笨鸟先飞,勤能补拙2 天前
Web 服务器与计算机网络全景原理
运维·服务器·前端·网络·人工智能·计算机网络·web安全
拾光Ծ2 天前
【Linux网络】数据链路层详解:以太帧与ARP协议 + 代理服务器与内网穿透,内网打洞
计算机网络·内网穿透·数据链路层·arp·代理服务器·内网打洞·以太帧
JZZC22 天前
38.IPv6——静态配置
计算机网络·ipv6
ly76893 天前
计算机网络:从分层模型到 TCP/IP、HTTP 与网络排查
网络·tcp/ip·计算机网络
我爱cope3 天前
【计算机网络 | 物理层5:时分复用、频分复用与波分复用:一条链路如何服务多个用户?】
网络·学习·计算机网络
上岸社社长4 天前
2027届国网计算机类备考指南:时间线、考纲与复习规划(附资料)
计算机网络
四代水门4 天前
三、计算机网络
服务器·计算机网络·asp.net
hxhy005 天前
计算机网络
计算机网络
llllll1525 天前
深入浅出计算机网络:从 TCP 可靠传输到 DNS 解析核心原理
网络协议·tcp/ip·计算机网络