ARP报文各字段含义
ARP报文字段总共有28个字节
1.硬件类型:占2个字节,表明ARP实现在何种类型的网络上。
Ø 值为1:表示以太网。
2.协议类型:占2个字节表示要映射的协议地址类型。
Ø IP:0800
3.硬件地址长度:占1个字节,表示 MAC地址长度,其值为6个字节。
4.协议地址长度:占1个字节,表示IP地址长度,此处值4个字节
5.操作类型 :占2个字节,表示ARP数据包类型。
Ø 值为1表示ARP请求。
Ø 值2表示ARP应答。
6.源MAC地址:占6个字节,表示发送端MAC地址
7.源IP地址:占4个字节,表示发送端IP地址
8.目的以太网地址:占6个字节,表示目标设备的MAC物理地址
9.目的IP地址:占4个字节,表示目标设备的IP地址.
注意:在ARP操作中,有效数据的长度为28个字节,不足以太网的最小长度46字节长度,需要填充字节,填充字节最小长度为18个字节
ARP协议工作过程
1.原理:(ARP协议只使用与局域网中)
- 局域网中,网路中实际传输的是"帧",帧里面是有目标主机的MAC地址的。
- 在以太网中,一个主机和另一个主机直接通信,必须要知道目标主机的MAC地址。但这个目标MAC地址是如何获得的?就是通过ARP(地址解析协议)获得的,所谓的地址解析就是主机在发送帧前将目标IP地址转换成目标MAC地址的过程。
- ARP协议的基本功能就是通过目标设备的IP地址,查询目标设备的MAC地址,以保证通信的顺利进行。
- 点对点的连接不需要ARP协议的
2.工作过程: - 当主机A向本地局域网的某个主机B发送IP数据报时,就现在自己的ARP缓冲表查看有无主机B的IP地址。
- 如果有,就可以查出对应的硬件地址,再将此硬件地址写入MAC帧,然后通过以太网将数据包发送到目的主机中。
- 如果查不到主机B的IP地址的表项。可能是主机B才入网,也可能是主机A刚刚加电。其高速缓冲表还是空的,在这种情况下,主机A就自动运行ARP。
(1)ARP进程在本局域网上广播一个ARP请求分组。ARP请求分组的主要内容是表明:我的IP地址是192.168.9.166,我的硬件地址00:0c:29:e4:6e:e7,我想知道IP地址为192.168.9.133主机的硬件地址。
(2)在本地局域网上的所有主机上运行的ARP进行都收到此ARP请求分组
(3)主机B在ARP请求分组中见到自己的IP地址,就向主机A发送ARP响应分组,并写入自己的硬件地址。其余的所有的主机都不理睬这个ARP请求分组。ARP响应分组的主要内容是表明:“我的IP地址是192.168.9.133,我的硬件地址是09:1c:25:e1:6e:21”,请注意:虽然ARP请求分组是广播发送的,但ARP响应分组是普通的单播,即从一个源地址发送到一个目的地址。
(4)主机A收到主机B的ARP响应后,就在其ARP高速缓冲表中写入主机B的IP—MAC映射关系。
ARP的TTL
就是ARP映射表的寿命,ARP将保存在高速缓冲表中的每一个映射地址表项都设置了TTL(生存时间),只要TTL小于0的项目就从高速缓冲表中删掉。
(ARP的超时值一般为20分钟)
好处:主机A和主机B通信,A的ARP高速缓冲表中保存B的物理地址。但是B的网卡突然坏了,B立即就更换了一块,因此B的硬件地址就改变了。A还要和B继续通信。A在ARP缓冲表中查找到B原先的硬件地址,并使用该硬件地址项B发送数据帧,但是B原先的硬件地址已经失效了,因此A无法找到B。但是过了一段事件,A的ARP高速缓冲表中已经删除了B原先的硬件地址,于是A重新广播发送ARP请求分组,又找到了B。