ARP代表地址解析协议,用于从已知IP地址中查找设备的MAC地址。这意味着,源设备已经知道IP地址,但不知道目标设备的MAC地址。需要设备的MAC地址,因为您无法在不知道其MAC地址的情况下与局域网(以太网)中的设备通信。因此,地址解析协议有助于获取目标设备的MAC地址。如下图所示:
2018年上半年网络工程师试题有这么一道题:
24~25、若主机 hostA 的 MAC 地址为 aa-aa-aa-aa-aa-aa,主机 hostB 的 MAC 地址为 bb-bb-bb-bb-bb-bb。 由 hostA 发出的查询 hostB 的 MAC 地址的帧格式如下图所示,则此帧中的目标 MAC 地址为(24),ARP 报文中的目标 MAC 地址为(25)。
目标 MAC 地址 |
源 MAC 地址 |
协议类型 |
ARP 报文 |
CRC |
A. aa-aa-aa-aa-aa-aa B. bb-bb-bb-bb-bb-bb
C. 00-00-00-00-00-00 D. ff-ff-ff-ff-ff-ff
参考答案如下:
24~25、【D】【C】解析 :当主机 A 向本局域网内的主机 B 发送 IP 数据报的时候,就会先查找自己的 ARP 映射表,查 看是否有主机 B 的 IP 地址,如有的话,就继续查找出其对应的硬件地址,在把这个硬件地址写入 MAC 帧中,然后通过局 域网发往这个硬件地址。也有可能找到不到主机 B 的 IP 地址项目,在这种情况下,主机 A 就要运行 ARP 协议,广播 ARP 请求分组,去请求主机 B的 MAC。
看上去也没说明白是什么,就给出了两个答案。但是网上对这个答案争议很大,那么究竟是什么呢?
这是ARP报文的格式,共28字节:
硬件类型:16位字段,用来定义运行ARP的网络类型。每个局域网基于其类型被指派一个整数。例如:以太网的类型为1。ARP可用在任何物理网络上。
协议类型:16位字段,用来定义使用的协议。例如:对IPv4协议这个字段是0800。ARP可用于任何高层协议
硬件长度:8位字段,用来定义物理地址的长度,以字节为单位。例如:对于以太网的值为6。
协议长度:8位字段,用来定义逻辑地址的长度,以字节为单位。例如:对于IPv4协议的值为4。
操作码:16位字段,用来定义报文的类型。已定义的分组类型有两种:ARP请求(1),ARP响应(2)。
源硬件地址:这是一个可变长度字段,用来定义发送方的物理地址。例如:对于以太网这个字段的长度是6字节。
源逻辑地址:这是一个可变长度字段,用来定义发送方的逻辑(IP)地址。例如:对于IP协议这个字段的长度是4字节。
目的硬件地址:这是一个可变长度字段,用来定义目标的物理地址,例如,对以太网来说这个字段位6字节。对于ARP请求报文,这个字段为全0,因为发送方并不知道目标的硬件地址。
目的逻辑地址:这是一个可变长度字段,用来定义目标的逻辑(IP)地址,对于IPv4协议这个字段的长度为4个字节。
或者可以用这张图,更为直观:
首先拿mac做了一个实验:
1.打开wireshark,开始抓包;
2.清空ARP缓存表,以便系统重新发出ARP请求,采用
3.查看抓包结果:
可以看到,282这条是ARP请求报文所在的以太帧,源地址是本机MAC地址,目的地址是广播地址(ff-ff-ff-ff-ff-ff),283这条是ARP报文所在的以太帧,源地址是网关的MAC地址,目的地址是本机MAC地址。
那么,为什么给出的各类答案中既有00-00-00-00-00-00,又有ff-ff-ff-ff-ff-ff这个地址呢?
因为,在很多解析中混淆了ARP Request和以太帧的源地址和目标地址。ARP报文包含源地址和目标地址,而封装ARP报文的以太帧也包含源地址和目标地址。这两组MAC地址是不同的。
首先看ARP Request报文:
可以看出,在以太帧中,目的地址和源地址分别为:ff-ff-ff-ff-ff-ff和本机MAC地址,而ARP请求中,目的地址则是00-00-00-00-00-00,源地址为本机MAC地址.
再来看网关返回的ARP报文:在以太帧和ARP报文中,目的地址为本机MAC地址,源地址为网关IP地址,这里是一样的。
那么再回到这道题目,24问的是请求报文所在帧的目的地址,而不是ARP请求的目的地址,而25问则问的是ARP报文的目的地址,答案也不言而喻了。
所以,遇到这类问题,还是得抓包看看到底是怎么回事,不能盲目听信解析。
参考文献:
https://www.javatpoint.com/address-resolution-protocol
ARP协议(地址解析协议)详解_TABE_的博客-CSDN博客_arp硬件类型有哪些文章来源:https://www.toymoban.com/news/detail-792757.html
ARP报文目的MAC为什么不是广播地址?_水杯爱喝水的博客-CSDN博客_arp的目的mac地址文章来源地址https://www.toymoban.com/news/detail-792757.html
到了这里,关于关于ARP请求报文和ARP报文的源地址和目的地址的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!