Address Resolution Protocol (ARP协议)

一起聊聊ARP协议

称为一名合格的工程师,了解TCP/IP是必须的,ARP协议是网络层中非常重要的一个协议,掌握ARP协议也是非常必要的。

为什么会有ARP协议?

只要确定了IP地址,就可以向IP地址发送IP数据报。然而,在底层数据链路层,进行实际通信时必须知道每个IP地址对应的MAC地址。

工作在数据链路层, 就得用MAC地址。

由于网络层下一层是数据链路层,在数据链路层需要知道MAC地址。由于知道IP地址通过DNS 域名解析服务器获取IP地址,通过IP地址获取MAC地址,这就是 ARP协议。ARP协议用于找到MAC地址。

ARP协议 工作原理

  • 主机A通过广播发送一个ARP请求包。ARP请求包中包含了想要了解其MAC地址的主机IP地址。
  • 广播的包可以被同一个链路上所有的主机或路由器接受。
  • 若ARP请求包中的目标IP地址与自己的IP地址一致,那么这个节点就将自己的MAC地址塞入ARP响应包返回给主机A。

ARP协议 提高效率 缓存

根据ARP可以动态地进行地址解析,因此只要有IP,无需知道MAC地址,也可以实现链路内的IP通信。

若每发送一个IP数据报都要进行一次ARP请求以此确定MAC地址,那会造成必要的网络流量。因此把获取到的MAC地址缓存一段时间。

接受ARP请求的那个主机可以从ARP请求包中获取发送端主机IP和MAC地址。

RARP (Reverse Address Resolution Protocol)

RARP是将ARP反过来,从MAC地址定位IP地址的一种协议。
用途:例如将打印机服务器等小型嵌入式设备接入到网络时。

平常我们可以通过个人电脑设置IP地址,也可以通过DHCP自动分配获取IP地址。然而对于嵌入式设备时,会遇到没有任何输入接口或无法通过DHCP动态获取IP的情况。

在类似情况下,就可以使用RARP。需要架设一台RARP服务器,从而在这个服务器上注册设备的MAC地址及其IP地址。然后再将这个设备接入到网络,插电启动设备时,该设备会发送一条我的MAC地址是***,请告诉我,我的IP地址是什么?的请求信息。RARP服务器接到这个消息后返回类似于MAC地址为***的设备,IP地址为***"的信息给这个设备。而设备就根据从RARP服务器所收到的应答信息设置自己的IP地址。

参考文献
https://mp.weixin.qq.com/s?__biz=MzAxOTc0NzExNg==&mid=2665513160&idx=1&sn=d938db4f1a2d62514b57e92fd8d3d749&scene=21#wechat_redirect
《图解TCP/IP》

xpisme wechat
微信号