1、基本概念:
ARP协议名为地址解析协议(Address Resolution Protocol),作用是通过IP地址来得到MAC地址。
2、ARP数据包格式:
Hradware Type:硬件类型,以太网
Protocol Type:表示三层协议的类型,一般是IP
Hradware Length:硬件长度
Protocol Length:协议长度
Operation Code:ARP报文的类型,Request(请求)/Reply(回复)
Source Hardware Address(Sender MAC address):源MAC地址
Source Protocol Address(Sender IP address):源IP地址
Destination Hardware Address(Target MAC address):目的MAC地址
Destination Protocol Address(Target IP address):目的IP地址
ARP报文不能穿越路由器,不能转发到其他广播域
3、ARP工作原理
我们知道了目标主机的ip地址,想和它通信,我们就发送一个ARP请求报文,广播给此网段的所有主机,如果某主机IP和目标IP(Target IP address)一样,那么目标主机就会reply一个ARP回复报文,告诉想和它通信的主机自己的MAC地址。然后目标主机的IP地址和MAC地址都会被写入到本机的ARP缓存表里面,后续如果还需要和目标主机通信,那不就不用再去ARP解析了。当然,ARP缓存表的表项是有老化时间的,一般5~20分钟。过了老化时间就需要从新发送arp请求去获取mac地址。
ARP缓存表存在着静态条目和动态条目,如下图所示:
其中,类型列的“动态”表示使用ARP请求广播动态获取到的条目,“静态”表示是手工配置和维护的ARP表。静态条目无老化时间,会一直存在,如果想增加静态条目,可以使用命令arp -s IP地址 MAC地址来添加。
4、ARP协议的工作层
ARP协议工作在哪一层?在《TCP/IP详解》里面把ARP协议归到网络层。查阅了一些文章,网上大多数是把ARP协议放到网络层。也有人说在OSI七层模型里面ARP协议属于数据链路层;也有人说这个不用太过追究,把它归到哪层(指网络层或数据链路层)都可以。
我先持保留意见,等我再去研读研读各层的工作原理和流程再来发表发表意见!