ARP(Address Resolution Protocol)协议
是一种解析网络层地址和数据链路层地址之间映射关系的协议。在TCP/IP协议栈中,网络层使用IP地址来标识主机,而数据链路层使用MAC地址来唯一标识网络接口。ARP协议就是通过查询本地ARP缓存表或者广播网络请求,来获取某个IP地址所对应的MAC地址。ARP协议工作在OSI模型的第二层(数据链路层)和第三层(网络层)之间。
当主机需要向网络上的某个目标发送数据包时,它首先会检查本地ARP缓存表中是否已经存储了该目标IP地址所对应的MAC地址。如果没有,主机就会向网络广播一个ARP请求报文,请求所有其他主机和网络设备(如交换机、路由器等)告知该IP地址所对应的MAC地址。如果目标主机在线并且可达,它就会向请求者返回一个ARP响应报文,包含其MAC地址,发送者将该MAC地址存储在本地ARP缓存表中。如果请求未获得响应,则说明目标主机不可达。
ARP协议工作在局域网范围内,因为它需要广播ARP请求以获取MAC地址,而广播是无法跨越不同的物理网络的。在跨越多个网络的情况下,就需要使用ARP的衍生协议,如RARP(逆地址解析协议)和ARP(动态主机配置协议)等。
它的数据包包含以下字段:
- Hardware Type(硬件类型):标识物理网络类型,如以太网(Ethernet)、令牌环网(Token Ring)等,长度为2个字节。
- Protocol Type(协议类型):标识上层协议类型,如IPv4或IPv6,长度为2个字节。
- Hardware Address Length(硬件地址长度):表示MAC地址的长度,以字节为单位。通常为6个字节(以太网)。
- Protocol Address Length(协议地址长度):表示IP地址的长度,以字节为单位。IPv4地址长度为4个字节。
- Operation(操作):指定ARP请求或响应类型,请求类型为1,响应类型为2,长度为2个字节。
- Sender Hardware Address(发送者硬件地址):指定发送方的MAC地址,长度为硬件地址长度。
- Sender Protocol Address(发送者协议地址):指定发送方的IP地址,长度为协议地址长度。
- Target Hardware Address(目标硬件地址):指定目标MAC地址,长度为硬件地址长度。
- Target Protocol Address(目标协议地址):指定目标IP地址,长度为协议地址长度。
在以太网中,ARP数据包被封装在以太网帧中,以太网帧包含帧头和帧体两部分。ARP数据包作为帧体,包含以上字段。帧头包含目标MAC地址、源MAC地址和类型字段,类型字段为0x0806表示该帧是ARP数据包。
ARP实验分析:
PC名 | IP地址 | MAC地址 | 网关 |
---|---|---|---|
pc0 | 192.168.1.1 | 54:89:98:11:3e:01 | 192.168.1.254 |
pc1 | 192.168.1.2 | 192.168.1.254 | |
pc2 | 192.168.2.1 | 192.168.2.254 | |
pc3 | 192.168.2.2 | 192.168.2.254 |
网关192.168.1.254mac地址:00:e0:fc:92:1c:81
1,pc0-ping-pc3,捕获交换机(LSW1)0/0/3接口数据包:
2,查看No.46
opcode:request(0x0001):说明该报文是请求类型
3,查看No.56
opcode:request(0x0001):说明该报文是响应类型