ARP协议

  

一:引入

  

当网络设备要发送数据给另一台设备时,必须要知道对方的网络层地址(即IP地址).IP地址由网络层来提供,但是仅有IP地址是不够的,IP数据报文必须封装成帧才能通过数据链路进行发送。数据帧必须包含目的MAC地址,因此发送端还必须获取到目的MAC地址。通过目的IP地址而获取目的MAC地址的过程是由ARP协议来实现的。
ARP协议是TCP/IP协议簇中的重要组成部分,ARP能够通过目的IP地址发现目标设备的MAC地址,从而实现数据链路层的可达性。

  

二:ARP数据包的格式

  

 ARP协议”> <br/>注意:ARP报文不能穿越路由器,不能被转发到其他广播域。<br/>各字段的含义:<br/>硬件类型表示硬件地址类型,一般为以太网<br/>协议类型表示三层协议地址类型,一般为IP <br/>硬件长度和协议为MAC地址和IP地址的长度,单位是字节<br/>操作码制定了ARP报文的类型,包括ARP请求和ARP应答<br/>源硬件地址指的是发送ARP报文的设备MAC地址<br/>源协议地址指的是发送ARP报文的设备IP地址<br/>目的硬件地址指的是接收者MAC地址,在ARPrequest报文中,该字段值为0 <br/>目的协议地址指的是接受者的IP地址</p>
  <h2>三:ARP的工作过程</h2>
  <p> ARP之简单请求应答<br/>当两台计算机在同一个局域网通信,我们以平命令为例,该命令使用的ICMP协议</p>
  <p> <img src=

  

和上面的一样,刚开始PC1并不知道PC2的MAC地址,同样需要发送ARP请求,但是这个局域网里主机很多,怎么唯独获取PC2的MAC呢,①我们想到和一群陌生人交流一样,可以挨着询问一遍,这就是我们要说的广播,首先PC1广播发送询问信息(信息和上一张图介绍的一样),在这个普通交换机上连接的设备都会受到这个PC1发送的询问信息。

  

接下来②需要做的是,所有在这个交换机上的设备需要判断此询问信息,如果各自的IP和要询问的IP不一致,则丢弃,如图生物,路线均丢弃该询问信息,而对于PC2判断该询问信息发现满足一致的要求,则接受,同样的写入PC1的IP和MAC到自己的ARP映射表中。

  

最后,③PC2单播发送应答信息给PC1,告诉PC1自己的IP和MAC地址。

  

四:ARP代理

  

 ARP协议”> <br/>上图中,主机一个需要与主机B通信时,目的IP地址与主机的IP地址位于不同网络,但由于主机一个未设置网关,所以他将会以广播的形式发送ARP请求报文,请求B的MAC地址,但是广播报文无法被路由器转发,所以主机B无法收到主机一个的请求报文。<br/>在路由器上启用代理ARP功能,就可以解决这个问题。启用代理后,路由器接收到这样的请求,会查找路由表,如果存在主机B的路由表项,路由器会将自己的G0/0/0接口的MAC地址回应该ARP Requestrian。主机一个收到ARP应答后,将一路有油漆的G0/0/0接口MAC地址作为目的MAC地址进行数据转发。<h2 class=ARP协议