关于ARP请求报文和ARP报文的源地址和目的地址

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字节:

关于ARP请求报文和ARP报文的源地址和目的地址_第1张图片

硬件类型: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个字节。
或者可以用这张图,更为直观:

关于ARP请求报文和ARP报文的源地址和目的地址_第2张图片

 首先拿mac做了一个实验:

1.打开wireshark,开始抓包;

2.清空ARP缓存表,以便系统重新发出ARP请求,采用

3.查看抓包结果:

关于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硬件类型有哪些

ARP报文目的MAC为什么不是广播地址?_水杯爱喝水的博客-CSDN博客_arp的目的mac地址

你可能感兴趣的:(软考,arp,网络,服务器,网络协议)