ARP报文结构及其工作原理
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立即更换了一块,其硬件地址就改变了)。
本文来自博客园,作者:Jcpeng_std,转载请注明原文链接:https://www.cnblogs.com/JCpeng/p/15240464.html