在数据链路层中,用来标识节点的就是其MAC地址。它是局域网中进行网络通信的基础。但是在平常的网络通信操作中,都不是以MAC地址来指定目标节点的,而是以IP地址或NetBiOS名称。这样就存在一个IP地址与MAC地址的对应关系,它们之间的相互解析是通过ARP(Address Resolution Protocol,地址解析协议)或RARP(Reverse Address Resolution Protocol,反向地址解析协议)协议进行的:ARP负责地址解析出MAC地址,适用于有盘网络,而RARP负责从MAC地址解析出IP地址,适用于无盘网络。
MAC地址与IP地址时计算机网络通信中非常重要的两类地址,缺一不可。因为在OSI/RM网络层以上是通过IP地址进行寻址的,而在OSI/RM网络层以下则是通过MAC地址进行寻址的。可以说是两类地址各司其职,共同完成一个完整的计算机网络通信。当然在这一网络通信中,还可能有传输层的“端口”号参与到IP寻址中。
1、ARP工作原理
ARP协议是用于由节点IP地址解析其MAC地址,然后进行局域网内部通信的。例如要与某主机连接,可以在浏览器或运行窗口中输入其IP地址,然而在局域网内是没有网络层的,网络中的主机设备不能识别IP地址,只识别MAC地址,所以这时就需要ARP协议来转换。ARP协议的基本功能就是通过数据包中的目标节点的IP地址查询目标节点的MAC地址,以便把数据包发送到目标设备中。
我们以主机A(192.168.1.5)向主机B(192.168.1.1)发送数据为例。当发送数据时,主机A会在自己的ARP缓存表中寻找是否有目标IP地址。如果找到了,也就知道了目标MAC地址,直接把目标MAC地址写入帧里面发送就可以了;如果在ARP缓存表中没有找到相对应的IP地址,主机A就会在网络上发送一个广播,目标MAC地址“FF.FF.FF.FF.FF.FF”,这表示向同一网段内的所有主机发送出这样的询问:“192.168.1.1的MAC地址是什么?”网络上其他主机并不响应ARP询问,只是主机B接收这个帧的时,才向主机A做出这样的回应:“192.168.1.1的MAC地址时00-aa-00-62-c6-09”。这样,主机A就知道了主机B的MAC地址,它就向主机B发送信息了。同时它还更新了自己的ARP缓存表,下次再向主机B发送信息时,直接从ARP缓存表里查找就可以了。ARP缓存表采用了老化机制,在一段时间内,如果表中的某一行没有使用,就会被删除,这样可以大大减少ARP缓存表的长度,加快查询速度。
ARP的基本工作原理如下:
(1)每台主机都会根据以往在网络中与其他节点的通信,在自己的ARP缓存区(ARP Cache)中建立一个列表,以表示网络中节点IP地址和MAC地址的对应关系。
(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服务器的响应信息,则表示初始化失败。
如果还想浏览更多的内容,欢迎登陆课课家教育或关注公众号【课课家IT精品课程】。
¥699.00
¥299.00
¥399.00
¥399.00