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 地址记录到自己的缓存表中.