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