ARPAddress Resolution Protocol)中文即:地址解析协议;该协议的主要目的就是将网络层的IP地址解析(翻译)为第二层的MAC地址。
ARP协议在网络中是以广播包的形式进行网络请求;它的工作过程大致是这样的:
在正常的情况下,当数据从一台计算机发送到另一台计算机的时候,依照OSITCP/IP的标准,它会将数据先分割然后再封装成包,数据包的报头会标识源IP地址、源MAC地址、目的IP地址以及目的MAC地址在网络中广播并传输的;但是在这之前发送方会检查在本机的ARP缓存中是否用目的主机的MAC地址表,如果没有则会在网络中以广播的形式发送ARP请求,如果接收方的计算机收到此广播包后,会将自己的MAC地址利用ARP的响应的包传回给发送方,并且在自己的ARP表中更新其发送方的IP地址和MAC地址,当发送方接收到接收方的信息后,首先会将自己的ARP表更新,其次发送方与接收方就可以进行通信了。
说了这么多大家可能有一些混乱了,我来以图形的形式为大家展示一下:
ARP随想_职场 1
ARP随想_ARP_02 2
ARP随想_ARP_03 3
ARP随想_休闲_04 4
 
ARP随想_ARP_05 5
ARP随想_TCP/IP_06 6
ARP随想_TCP/IP_07 7
这样大家是不是对ARP协议有了一个初步的认识了呢?
其实关于ARP请求方式共四种,上面的只是其中一种叫做正向ARP请求,也是最常见的一种,下面我来说说第二种形式:反向ARP
我们都知道正向ARP请求是知道目的IP请求目的MAC,那么反向ARP是知道MAC来求IP地址,这种请求方式非常适用于无盘工作站,因为它无法从自身的操作系统中获得IP地址,所以它会发送广播请求来获得IP地址信息,而RARP服务器则会响应该请求消息为其分配1IP地址(注:这里所谓的RARP服务器指的是BOOTPDHCP服务器)。
ARP的第三种请求方式:是代理ARP
因为ARP无法通过路由器进行网络广播,所以我们必须依靠一个设备来进行跨网段数据的传送,这个设备就是路由器(这台路由器就是所谓的代理),我们要以一台路由器为代理让发送方的ARP请求来确定该路由器的硬件地址,并将数据包发送到默认网关,最后由路由器按照自己的方式来转发数据。
但是如果以这种形式来进行ARP的请求会出现这样一种状况,我刚才说过ARP请求是无法跨网段的,所以只能发送到路由器让路由器去转发,而发送方的ARP缓存表中存放的应该是路由器的硬件地址。也就是说路由器欺骗了发送方的计算机,这种发式也称ARP欺骗。
第四种方式是无故ARP请求;该方式是发送方有的时候会用自己的MAC地址同时来做源和目的,这样做的目的:1、用来检查网络中是否存在重复地址;2、用于发现ARP缓冲区中是否以后发送方的IP地址以便更新此IP地址的MAC地址条目。