地址解析协议(ARP)

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了地址解析协议(ARP)相关的知识,希望对你有一定的参考价值。

一. 作用:

地址解析协议是用来提供ip地址与硬件地址之间的动态映射的

二 . 报文格式:

技术图片

字段 字段说明
以太网目的地址 目的地的硬件地址(mac地址),全为1的话代表是广播地址,电缆上所有以太网接口都要接受此数据帧
-------- --------
以太网源地址 发送方的硬件地址
-------- --------
帧类型 对于arp请求或应答,该字段的值为0x0806
-------- --------
硬件类型 硬件地址类型 1代表以太网地址
-------- --------
协议类型 要映射的协议地址类型 0x800代表IP地址 ,它的值与包含IP数据报的以太网数据帧的类型字段值相同,有意设计的
-------- --------
硬件地址长度 mac地址为6字节
-------- --------
协议地址长度 IP地址为4字节
-------- --------
操作字段 在报文中占2个字节,1表示ARP请求,2表示ARP应答,3表示RARP请求,4表示RARP应答
-------- --------
发送端以太网地址 发送方的硬件地址
-------- --------
发送端ip地址 发送方ip地址
-------- --------
目的端以太网地址 目的端的硬件地址
-------- --------
目的IP地址 目的端ip地址

前三个字段代表的是以太网首部站14字节,后面的字段代表arp请求或应答的数据帧占28字节,这里面有些字段是重复的。

三.arp请求过程

首先明确arp是发生在局域网内的。
当A主机要向B主机发送ip数据报,首先会在本机的arp缓冲表中查看有无此ip所对应的硬件地址,如果有就查出来写入数据报中,如果没有就启动arp进程,在局域网上广播一个arp请求,请求内容大致意思是:
我是ip:xx.xx.xx.xx(A主机的ip)
我的硬件地址是 mac:xx.xx.xx.xx.xx.xx,
我想知道ip:xx.xx.xx.xx(B主机的ip)的硬件地址是多少
局域网上所有主机都会收到这样一个请求
如果存在主机B,主机B就会接受请求,并更新自己的arp缓存,其余的主机会丢弃这个包。主机B将自己的mac地址写入响应包,将数据包类型改为响应类型,将目的地址改为源地址,然后通过单播的方式发送给主机A,主机A接受到响应包会进行更新arp缓存,并将mac地址写入ip数据报。

以上是关于地址解析协议(ARP)的主要内容,如果未能解决你的问题,请参考以下文章

ARP (地址解析协议)

ARP(地址解析协议)协议和RARP协议(逆地址解析协议)

ARP (地址解析协议)

网络层--地址解析协议ARP

ARP(地址解析协议)

TCP/IP详解 卷1:协议—ARP:地址解析协议和RARP:逆地址解析协议