[TOC]
ARP(Address Resolution Protocol,RFC 826)是根据IP地址获取物理地址的一个TCP/IP协议。主机通过将ARP请求广播到网络上的所有主机并接收返回消息来确定目标IP地址的物理地址,同时将IP地址和硬件地址存入本机ARP缓存中,下次请求时直接查询ARP缓存。
物理地址通常是由硬件来实现的,例如以太网的物理地址被写入到网卡中,任何一块网卡的物理地址是唯一的
物理地址的长度和格式取决于具体的网络,以太网的物理地址是6字节地址物理地址可以是单播地址、多播地址或广播地址。
逻辑地址与物理设备本身没有关联, 逻辑地址可以是单播地址、多播地址和广播地址。
目前Internet上的IPv4协议逻辑地址是32位的IP地址, IPv6地址有128位长
逻辑地址是在网络层使用的,但数据包是在物理网络传递。主机或路由器是通过物理地址来识别的,因此将一个数据包传递到一个主机或路由器要进行寻址,需要将一个逻辑地址映射到相应的物理地址。
地址解析就是主机在发送帧前将目的逻辑地址转换成目的物理地址的过程。
手工创建IP地址与物理地址的映射关系,建立映射表。当已知IP地址时,通过查找映射表得到对应的物理地址。
局限性: 主机更换了网卡,也就改变了主机的物理地址。当主机从一个网络移到另一个网络时,物理地址没变,但IP地址改变了。·要适应这些变化,会增大维护静态映射表的开销。
在使用TCP/IP协议的以太网中,ARP(Address Resolution Protocol)协议完成将IP地址映射到MAC地址的过程,逆地址解析协议RARP(Reverse Address Resolution Protocol)将物理地址映射为IP地址
硬件类型:16bit,定义运行ARP的网络类型,如以太网的硬件类型是1。
协议类型:16bit,定义使用ARP的高层协议,如对于IPv4协议,该字段的值是Ox0800。
硬件长度:8bit,以字节为单位的物理地址长度,如以太网硬件地址长度为6。
协议长度:8bit,以字节为单位的逻辑地址的长度,对于IPv4,该字段为4。
操作码:16bit,1表示ARP请求,2表示ARP应答。
发送端硬件地址:变长字段,对于以太网该字段长度是6字节
发送端逻辑地址:变长字段,对于IPv4地址,该字段长度为4字节。
目的端硬件地址:变长字段,对于ARP请求报文,该字段全为0
目的端逻辑地址:变长字段,定义目标逻辑地址。
ARP数据报直接封装在数据链路层的帧中
当主机A通过ARP请求得到B的物理地址后就将“IP地址—MAC地址”的绑定信息存储在高速缓存中。对于后续发往E的分组,可以通过缓存得到物理地址 当ARP被询问一个已知IP地址节点的MAC地址时,先在ARP缓存表查看,若存在,就直接返回MAC地址,若不存在,才发送ARP请求向局域网查询。
静态项目一直保留在缓存中,直到重新启动计算机为止。
动态项目随时间推移自动添加和删除,每个动态ARP缓存项的潜在生命周期是10分钟。 新加到缓存中的项目带有时间戳,如果某个项目添加后2分钟内没有再使用,则此项目过期并从ARP缓存中删除; 如果某个项目已在使用,则又收到2分钟的生命周期; 如果某个项目始终在使用,则会另外收到2分钟的生命周期,一直到10分钟的最长生命周期。
arp命令用于对本地arp缓存进行操作,不会发送ARP请求