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):说明该报文是响应类型
发表评论