ARP协议
网络设备有数据要发送给另一台网络设备时,必须要知道对方的网络层地址(即IP地址)。IP地址由网络层来提供,但是仅有IP地址是不够的,IP数据报文必须封装成帧才能通过数据链路进行发送。数据帧必须要包含目的MAC地址,因此发送端还必须获取到目的MAC地址。通过目的IP地址而获取目的MAC地址的过程是由ARP(Address Resolution Protocol)协议来实现的。
网络设备通过ARP报文来发现目的MAC地址。ARP报文中包含以下字段
:
- Hardware Type表示硬件地址类型,一般为以太网;
- Protocol Type表示三层协议地址类型,一般为IP;
- Hardware Length和Protocol Length为MAC地址和IP地址的长度,单位是字节;
- Operation Code指定了ARP报文的类型,包括ARP request和ARP reply;
- Source Hardware Address指的是发送ARP报文的设备MAC地址;
- Source Protocol Address指的是发送ARP报文的设备IP地址;
- Destination Hardware Address指的是接收者MAC地址,在ARP request报文中,该字段值为0;
- Destination Protocol Address指的是指接收者的IP地址。
网络设备在什么情况下会发送ARP request?
答:源设备在发送数据给目的设备前,会首先查看自身的ARP缓存,查找ARP缓存中是否存在目的设备的IP地址和MAC地址的映射。如果存在则直接使用,如果不存在则会发送ARP request。
网络设备什么时候会产生免费ARP?
答:当网络上的一个设备被分配了IP地址或者IP地址发生变更后,可以通过免费ARP来检查IP地址是否冲突。