ARP协议属于网络层还是数据链路层?

2025-04-08 22:35:04
推荐回答(1个)
回答1:

很多教科书和培训教材上,都把ARP协议划分到网络层。我想主要的原因在于ARP协议属于TCP/IP协议簇,而在TCP/IP模型中,所有定义的协议至少是在网际层(或称网络层,IP层)。

但是,按照OSI的标准,当数据向下传递时,每层会加上自己的信息,各层互不干扰.这样当网络层的IP包进入链路层时,链路层该如何加这个头部的目标信息呢?它要依靠ARP协议来完成.显然如何加链路头并不是网络层的功能.而且,ARP协议工作时,并不使用IP的包头。所以也有很多人说,ARP是链路层的。

可以说,在TCP/IP模型中,ARP协议属于IP层;在OSI模型中,ARP协议属于链路层。

在sniffer软件中,捕获协议数据时,如果使用IP地址是无法捕获到ARP包的,因为IP地址是ARP协议的载荷,不在包头中。但ARP协议的载荷中,也并不包含任何上层的IP数据包。所以,构造和使用ARP协议的主体理解IP地址。从这个角度考虑,将ARP协议划分到IP层也有一定道理。

我觉得逻辑上应该处于链路层,但是在抓包的时候,ARP和RARP的数据包是封装在链路层的数据包里