网络基础——ARP协议

ARP协议是“Address  Resolution  Protocol”(地址解析协议)的缩写。在局域网中,网络上实际上传输的是“帧”,帧里面是有目标主机的Mac地址的。在以太网中,一个主机要和另一个主机进行直接通信,必须要知道目标主机的Mac地址。但这个目标Mac地址是如何获得的呢?它就是通过地址解析协议获得的。所谓的“地址解析”,就是主机在发送帧前将目标IP地址转换成目标Mac地址的过程。ARP协议的基本功能就是通过目标设备的IP地址,查询目标设备的Mac地址,以保证通信的顺利进行。

需要强调的是,ARP不是一个单纯的数据链路层的协议,而是一个介于数据链路层和网络层之间的协议。

  • ARP的作用

ARP协议的作用是建立了主机IP地址和Mac地址的映射关系。在网络通讯时,源主机的应用程序知道目标主机的IP地址和端口号,却不知道目标主机的硬件地址。数据包首先是被网卡接收到再去处理上层协议的,如果接收到的数据包的硬件地址与本机不符,则在数据链路层被直接丢弃。因此在通讯前必须获得目标主机的硬件地址。

  • ARP协议的工作流程

                                

源主机发送ARP请求,询问“IP地址是1.1.1.2的主机的硬件地址是多少”,并将这个请求广播到本地网段。目的主机接收到广播的ARP请求,发现其中的IP地址与本机相符,则发送一个ARP应答数据包给源主机,将自己的硬件地址填写在应答包中。

每台主机都维护一个ARP缓存表,可以用arp  -a命令查看:

            

缓存表中的表项有过期时间,一般为20分钟。如果20分钟内没有再次使用某个表项,则该表项失效,下次还要发ARP请求来获得目的主机的硬件地址。

使用缓存表是为了提高局域网的运行效率。表项有过期时间而不是一直有效,是为了避免无效表项占用资源,从而达到节约资源的目的。

  • ARP数据报的格式

                    

源MAC地址。目的MAC地址在以太网首部和ARP请求中各出现一次,对于链路层为以太网的情况是多余的,但如果数据链路层是其他类型的网络,则有可能是必要的。

硬件类型指的是数据链路层网络类型,1位以太网;协议类型指的是要转换的地址类型,0x0800为IP地址;硬件地址长度对于以太网地址是6字节;协议地址长度对于IP地址为4字节;op字段为1表示ARP请求,op字段为2表示ARP应答。



猜你喜欢

转载自blog.csdn.net/cecilia3333/article/details/80441926