TCP/IP地址解析协议--ARP(一)

ARP协议是一个全面的动态地址解析协议,用于匹配IP地址与下面的数据链路层地址。这个协议最初为以太网开发,现在扩展至允许IP在多种多样的二层技术上使用。

注意我们描述的ARP方法用于解析IPv4的单播地址。IPv4的组播地址或是IPv6的地址会使用不同的解析方法。

ARP地址规范和一般操作

当IP网络中的源设备要发送一个IP数据报时,ARP事务就开始了。首先,确定目的设备是在本地网上还是远程网上。如果是本地网上,ARP会立即向目的设备发送数据报;如果在远程网上,则将数据包发送至物理网络的路由器上进行转发。不管是哪种方式,ARP首先都要确定报文在本地网上的直接目的设备IP地址。数据报打包好后,发送至ARP软件进行地址解析。

ARP的基本操作是在本地网上传输请求/响应消息。由需要发送IP数据报的源设备发送一个包含目的设备信息的广播,然后目的设备向源设备回复一个单播消息,告诉源设备它的硬件地址。

ARP报文类型和地址名称

在整个传输过程中,需要注意的是ARP的请求/响应报文,一个从源设备发向目的设备,一个从目的设备发向源设备。对于每个ARP报文来说,发送方和目标方的身份在各个报文中是不同的:

Ø  请求:对于最初的请求,发送方是源设备,即要发送IP数据报的设备,而目标方为目的设备。

Ø  响应:对于请求的回复,发送方是目的设备,而源设备成为了目标方。

任何报文中的这两方都涉及到两个地址:二层地址(如以太网地址)和三层地址(通常为IP地址),因此各个报文中都包含了四个地址:

Ø  发送方硬件地址:ARP报文中发送方的二层地址

Ø  发送方协议地址:ARP报文中发送方的三层地址

Ø  目标方硬件地址:ARP报文中目标方的二层地址

Ø  目标方协议地址:ARP报文中目标方的三层地址

这些地址在ARP报文格式中都有一个固定的位置。

ARP一般操作

1.源设备检查缓存:源设备会首先检查其缓存表来确定是否有目的设备的解析地址。如果有,则直接跳到最后一步。

2.源设备生成一个ARP请求报文:源设备生成ARP请求报文。将数据链路层的地址作为发送方的硬件地址,IP地址作为发送方的协议地址,并在报文中填入目的设备的IP地址作为目标方协议地址。

3.源地址在本地网上广播ARP请求报文。

4.本地设备处理ARP请求报文:本地网上的各个设备都会收到这个报文,然后各个设备会查看是否与目标方协议地址相匹配,不匹配的设备会丢弃报文并不再采取其它行动。

5.目的设备生成ARP响应报文:IP地址与报文的目标方协议地址相匹配的设备会生成一个ARP响应报文。目的设备会利用ARP请求报文中的发送方硬件地址和发送方协议地址字段,将它们分别作为响应报文中的目标方硬件地址和目标方协议地址,然后将其自身的二层地址填入发送方硬件地址字段,IP地址填入发送方协议地址字段。

6.目的设备更新ARP缓存:如果源设备现在要向目的设备发送一个IP数据报,目的设备很有可能需要向源设备发送一个响应。所以目的设备也会在其ARP缓存表中增加一个条目来记录发送ARP请求的源设备的硬件地址和IP地址。

7.目的设备发送ARP响应报文:目的设备开始发送ARP响应报文,但响应报文是以单播形式发送至源设备的。

8.源设备处理ARP响应报文:源设备处理目的设备发送的响应报文,它会将发送方的硬件地址作为目的设备的二层地址储存起来,用于发送其IP数据报。

9.源设备更新ARP缓存:源设备利用发送方协议和发送方硬件地址来更新其ARP缓存表,以在未来向该设备发送消息时使用。

本文转自广州虹科“虹科汽车电子”微信公众号

发布了17 篇原创文章 · 获赞 74 · 访问量 1万+

猜你喜欢

转载自blog.csdn.net/HongkeTraining/article/details/91413086