ARP 协议
ARP 协议
ARP
ARP
: 地址解析协议,用于已知一台设备 IP 地址时,获取对方的硬件地址信息,从而进行数据链路层的封装.
ARP 协议本身没有一个独立的协议号.
网络层协议.
数据发送之前发送数据帧,要有源目 MAC 地址.
ARP 报文格式
Hardware Type
: 硬件地址类型,以太网,值为 1
.
Protocol Type
: 协议地址类型,IP 协议,值为 0x0800
.
Hardware length
: MAC 地址长度,单位是字节,值为 6
.
Protocol length
: IP 地址长度,单位是字节,值为 4
.
Operation code
: 表示 ARP 报文的类型.
ARP Request
: 值为1
.ARP Reply
: 值为2
.
Source hardware address
: 源 MAC 地址.
Source protocol address
: 源 IP 地址.
Destination hardware address
: 目的 MAC 地址.
Destination protocol address
: 目的 IP 地址.
Eternet_II Header 0x0806: ARP 协议
ARP 缓存表
ARP 缓存表:用来存放 IP 地址以及 MAC 地址的对应关系.
华为设备 ARP 缓存表老化时间 1200s (20min)
PC>arp -a |
ARP 工作过程
ARP 请求:源主机的 ARP 缓存表中不存在目的主机的 MAC 地址,此时源主机会发送 ARP Request 报文来请求目的主机的 MAC 地址,此数据帧中的目的 MAC 地址字段为广播.
ARP 响应:跟源主机处于同一个广播域的同一个设备都会收到广播形式的 ARP Request 报文,收到报文后,会查看 ARP 报文头部中的目的 IP 和自己是否一致.
如果相同,则目的主机会将 ARP Request 报文中的源 IP 地址和源 MAC 地址记录到自己的 ARP 缓存表中,并通过 ARP Reply 响应.
如果不同,记录 ARP 表项后,丢弃请求报文.
当源主机收到目的主机发来的 ARP Reply 报文后,会检查数据帧中的目的 MAC 和 ARP 中的 IP 地址是否为自己的 IP 地址和 MAC 地址,如果相同,源主机会将报文中的源 IP 地址和源 MAC 地址记录到自己的缓存表中.