ARP协议

故事扮演 提交于 2020-01-23 00:57:50
前言

网络设备有数据要发送给另一台网络设备时,必须要知道对方的网络层地址(即IP地址)。IP地址由网络层来提供,但是仅有IP地址是不够的,IP数据报文必须封装成帧才能通过数据链路进行发送。数据帧必须要包含目的MAC地址,因此发送端还必须获取到目的MAC地址。通过目的IP地址而获取目的MAC地址的过程是由ARP(Address Resolution Protocol)协议来实现的。

在这里插入图片描述

ARP数据包格式

这里需要强调的是 hardware type一般是指以太网

在这里插入图片描述
注意:ARP报文不能穿越路由器,不能被转发到其他广播域。

ARP工作过程

以下图为例,主机A需要访问主机C。

1.主机A发送一个数据包给主机C之前,首先要获取主机C的MAC地址。
但此时我们用arp -a查看arp表。发现没有数据,于是我们的第一个包就需要发一个广播包请求主机C mac地址

在这里插入图片描述

2.主级A发送一个请求包,请求包一般都是广播的数据帧,所以目的mac地址为全F,源ip地址,源mac地址也都包含的ARP数据包里。
在这里插入图片描述

3.主级C收到广播包之后,将包中在这里源头ip、源mac地址记录到arp表中,并回复一个单播包给主级A,该包源ip源mac都是是主级C的。
在这里插入图片描述

ARP代理

位于不同网络的网络设备在不配置网关的情况下,能够通过ARP代理实现相互通信。需要了解的是,这样目的ip地址所对应的mac地址是作为ARP代理的路由器的mac地址
在这里插入图片描述

免费ARP

当主机A配置好ip地址的时候,主机会向外发送一个免费ARP,源ip、目的ip都是主机A,源mac地址也是主机A,目的mac全F,作为广播帧发送出去,当收到的mac地址和源mac地址不一样的时候,就说明该网络中存在相同ip的主机。
在这里插入图片描述

总结

1.网络设备在什么情况下会发送ARP request?
知道对方ip地址,但不知道对方mac地址,即arp表里没有对方mac地址的时候。

2.网络设备什么时候会产生免费ARP?
通常,它发生在系统引导期间进行接口配置的时候。即刚刚配置好ip后,不知道网络中是否是否存在相同的ip地址的时候。

易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!