ARP和RARP协议工作原理

ARP和RARP协议工作原理

MAC地址与IP地址是计算机网络通信中非常重要的两类地址,缺一不可。因为在OSI/RM网络层以上是通过IP地址进行寻址的,而在OSI/RM网络层以下则是通过MAC地址进行寻址的。可以说是两类地址各司其职,共同完成一个完整的计算机网络通信。当然在一些网络通信中,还可能有传输层的"端口"号参与到IP寻址中。


1.ARP工作原理

前面介绍到,ARP协议是用于由节点IP地址解析其MAC地址,然后进行局域网内部通信的。例如要与某主机连接,可以在浏览器或运行窗口中输入其IP地址,然而在局域网内是没有网络层的,网络中的主机设备不能识别IP地址,只识别MAC地址,所以这时就需要ARP协议来转换。ARP协议的基本功能就是通过数据包中的目标节点的IP地址查询目标节点的MAC地址,以便把数据包发送到目标设备中。


ARP的基本工作原理如下:


(1)每台主机都会根据以往在网络中与其他节点的通信,在自己的ARP缓存区(ARP Cache)中建立一个ARP列表,以表示网络中节点IP地址和MAC地址的对应关系。

【说明】ARP缓存表采用了老化机制,在一段时间内如果表中的某一行没有使用(Windows系统的这个时间为2分钟,而Cisco路由器的这个时间为5分钟),就会被删除,这样可以大大减少ARP缓存表的长度,加快查询速度。


(2)当源节点需要将一个数据包发送到目标节点时,会首先检查自己ARP列表中是否存在该包中所包含的目标节点IP地址对应的MAC地址。如果有,则直接将数据包发送到这个MAC地址节点上;如果没有,就向本地网段发起一个ARP请求的广播包,查询此IP地址目标节点对应的MAC地址。此ARP请求数据包里包括源节点的IP地址、硬件地址,以及目标节点的IP地址。


(3)网络中所有的节点在收到这个ARP请求后,会检查数据包中的目标IP地址是否和自己的IP地址一致。如果不相同就忽略此数据包;如果相同,该节点首先将源端的MAC地址和IP地址的对应表项添加到自己的ARP列表中。如果发现ARP表中已经存在该IP地址所对应的MAC地址表项信息,则将其覆盖,然后给源节点发送一个ARP响应数据包,告诉对方自己是它需要查找的MAC地址节点。


(4)源节点在收到这个ARP响应数据包后,将得到的目标节点的IP地址和MAC地址对应表项添加到自己的ARP列表中,并利用此信息开始数据的传输。如果源节点一直没有收到ARP响应数据包,则表示ARP查询失败。


2.RARP工作原理

ARP协议是根据IP地址找其对应的MAC地址,而RARP则是根据MAC地址找其对应IP地址,所以称之为"反向ARP"。具有本地磁盘的系统引导时,一般是从磁盘上的配置文件中读取IP地址,然后即可直接用ARP协议找出与其对应的主机MAC地址。但是无盘机,如X终端或无盘工作站,启动时是通过MAC地址来寻址的,这时就需要通过RARP协议获取IP地址。


RARP的基本工作原理如下:


(1)发送端发送一个本地的RARP广播包,在此广播包中声明自己的MAC地址,并且请求任何收到此请求的RARP服务器分配一个IP地址。


(2)本地网段上的RARP服务器收到此请求后,检查其RARP列表,查找该MAC地址对应的IP地址。如果存在,RARP服务器就给源主机发送一个响应数据包,并将此IP地址提供给对方主机使用;如果不存在,RARP服务器对此不做任何响应。


(3)源端在收到从RARP服务器来的响应信息后,利用得到的IP地址进行通信;如果一直没有收到RARP服务器的响应信息,则表示初始化失败。

你可能感兴趣的:(面试/网络基础)