对地址解析协议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协议,直接就把报文转发给下一个路由器了。

相关推荐
为思念酝酿的痛18 小时前
数据链路层--帧传输与链路控制
网络·网络协议·计算机网络·数据链路层
程序员z719 小时前
【从0开始学计算机网络】| HTTP 协议的进化史
网络协议·计算机网络·http
为思念酝酿的痛1 天前
NAT技术--网络地址转换原理
网络·计算机网络·智能路由器
沫璃染墨3 天前
从零入门计算机网络系列(一):计算机网络初识——从网络发展史到TCP/IP协议》
linux·网络·网络协议·tcp/ip·计算机网络
洋不写bug5 天前
初识网络通信,网络发展背景,TCP/IP五层模型简介
计算机网络·网络编程·协议·ip·端口号·tcp/ip模型·网络发展背景
流浪0016 天前
计算机网络篇3:端口号与 socket:数据到达主机后,如何找到目标进程?
计算机网络·udp·tcp·端口·网络字节序
欣欣之王来了6 天前
5G网络基础:5G的核心特性,eMBB、uRLLC、mMTC的应用场景
网络·学习·计算机网络·安全·教程
道尔柯南6 天前
从 0 到 1 理解计算机网络:从网络基础到 Socket 编程
网络·计算机网络
沙漠之主9 天前
计算机二级考试备考全攻略:从报名到通关
计算机网络·面试
欣欣之王来了9 天前
5G的行业应用:工业互联网、车联网、智慧医疗中的网络支撑
网络·学习·计算机网络·安全·教程