前言
网络设备有数据要发送给另一台网络设备时,必须要知道对方的网络层地址(即IP地址)。IP地址由网络层来提供,但是仅有IP地址是不够的,IP数据报文必须封装成帧才能通过数据链路进行发送。数据帧必须要包含目的MAC地址,因此发送端还必须获取到目的MAC地址。通过目的IP地址而获取目的MAC地址的过程是由ARP(Address Resolution Protocol)协议来实现的。
一、ARP访问流程
1、数据链路层在进行数据封装时,需要目的MAC地址,如果可以在ARP缓存表中查看到对应目的IP映射的MAC地址,可以直接进行访问,如果不在缓存表中的话,进行第二步。
2、不在ARP缓存表中时,通过广播形式访问,目的MAC地址全为1。
3、主机B接收到广播报文,比较目的IP地址,如果是一样,先将源MAC地址,IP地址记录在ARP缓存表中,并单播发给主机A,说我就是你要找的。
4、主机A接收到主机B的应答之后,把MAC地址、IP地址保存缓存表中,并将数据与MAC地址封装发给主机B,主机B收到后,把地址和mac地址记录缓存表中。
二、ARP报文介绍
Hardware type | 硬件类型,标识链路层协议 |
---|---|
Protocol type | 协议类型,标识网络层协议 |
Hardware size | 硬件地址大小,标识MAC地址长度,这里是6个字节(48bit) |
Protocol size | 协议地址大小,标识IP地址长度,这里是4个字节(32bit) |
Opcode | 操作代码,标识ARP数据包类型,1表示请求,2表示回应 |
Sender MAC address | 源MAC |
Sender IP address | 源IP |
Target MAC address | 目的MAC |
Target IP address | 目的IP |
总结
了解ARP寻址过程
查看ARP报文格式、介绍