- ARP协议属于网络层协议
- 当一台主机把以太网数据帧发送到位于同一局域网上的另一台主机,是根据mac地址来确定接口的。
- ARP协议是为了解决在一个LAN中,主机A有主机B的IP地址,但没有主机B的MAC地址的问题
1. 应用场景:
当一个LAN里面有主机A(IP: 192.168.1.1)和主机B(IP: 192.168.1.2),此时:主机A请求发起TCP连接到主机B。
- 当主机A需要发送报文到主机B(IP:192.168.1.2),主机A查看自己的Arp表(arp -a可查看),有就用Arp表的主机B的mac地址。
- 没有主机B的IP地址对应的MAC地址,这个时候主机A会发一个ARP请求报文(广播)
- 主机B和这个LAN内的其他主机收到了这个Arp广播报文,主机B会回复ARP应答报文(包含主机B的IP地址和MAC地址)给主机A(单播),其他主机不响应。
- 主机A会把主机B的IP和MAC地址存入ARP表(有超时删除机制)
2. ARP报文格式
ARP报文格式
主机A在LAN内广播ARP报文,LAN内的主机B回复ARP响应报文。
- 以太网目的地址:全为1代表广播地址,发到LAN内所有的主机
- 以太网源地址:发送端(主机A)的MAC地址
- 帧类型:ARP请求/应答报文;帧类型为 0x0806
- 硬件类型: 0001代表以太网
- 协议类型:0800代表IPV4协议
- 硬件地址长度:发送端的 MAC 地址长度。
- 协议地址长度:发送端的协议地址长度,一般是 IP 协议,对应的 IP 地址长度, 就是 0000 0100
- op字段: ARP请求为1,ARP应答为2,RARP请求为3,RARP应答为4。
- 发送端以太网地址:发送端(主机A)的 MAC 地址。
- 发送端 IP 地址:发送端(主机A)的 IP 地址。
- 目的以太网地址:目标端(主机B)的 MAC 地址。全0
- 目的IP 地址:目标端(主机B)的 IP 地址。
3. ARP报文抓包
- ARP请求报文:主机A(192.168.1.1)发送到LAN内的主机B(192.168.1.123)
- ARP响应报文
- 静态ARP
是指IP地址和MAC地址之间有固定的映射关系,是由手动配置生成。