首页 > 技术文章 > ARP报文结构及其工作原理

JCpeng 2021-09-07 22:08 原文

ARP协议是以太网等数据链路层的基础协议,负责完成IP地址到硬件地址的映射

报文结构

ARP报文结构如下:

物理网络类型

协议类型

物理地址长度

协议地址长度

操作

发送方物理地址

发送方IP地址

目标物理地址

目标IP地址

物理网络类型:也称为硬件类型,指明硬件类型,以太网为1。

协议类型:指明发送者映射到数据链路标识的网络协议的类型,IP对应0x0806.

物理地址长度:MAC地址长度为6,单位字节。

协议地址长度:网络层地址的长度,即IP地址长度为4,单位字节。

操作:操作指明ARP的操作类型,ARP请求为1,ARP响应为2,RARP请求为3,RARP响应为4。

在以太网环境下的ARP报文,硬件地址为48位。

工作原理

每个主机都设有一个ARP高速缓存(ARP cache),里面有本局域网上的各主机和路由器的IP地址到物理地址的映射表(运行md:arp –a可以查看)。

具体的工作过程如下:

(1)假如当主机A要向本局域网中的某个主机B发送IP数据报时,如果在ARP高速缓存中查看有无主机B的IP地址。如有,就在ARP高速缓存中查出其对应的硬件地址,在把这个硬件地址写入MAC帧中,然后通过局域网把该MAC帧发送到此硬件地址。

(2)但是在高速缓存中,也可能查不到主机B的IP地址的项目。可能是主机B才入网,或者是主机A才刚开启,其高速缓存还是空的。这时,主机A会自动运行ARP,然后按照以下步骤找到主机B的硬件地址。

  1)当主机A需要解析一个IP地址对应的MAC地址时,ARP进程在本局域网上会广播发送ARP请求报文

  2)在本局域网上的所有主机上运行的ARP进程都收到此ARP请求报文。当主机B收到主机A发送的ARP请求报文,并看到自己的IP地址后,会进行应答,即向主机A发送ARP响应报文,该报文是单播报文。同时,就把主机A的地址映射写入主机B自己的ARP高速缓存中,方便主机B向主机A发送数据。如图所示:

  3)发起请求的主机A接收到主机B的ARP响应报文后,同样会将响应报文中发送者的IP地址和MAC地址的映射关系写入ARP高速缓存中

ARP把保存在高速缓存中的每一个映射地址项目都设置生存时间,凡是超过生存时间的项目就从高速缓存中删除掉。用于防止存入高速缓存中的主机物理地址突然改变(例如主机B的网络适配器突然坏掉,B立即更换了一块,其硬件地址就改变了)。

推荐阅读