参考
https://baijiahao.baidu.com/s?id=1628211866143540667&wfr=spider&for=pc
ARP基本原理
大家好!我来跟大家聊聊网络中的一个重要的协议——ARP协议(地址解析协议
)
网络要想通信就离不开四个重要的地址:源IP地址,目的IP地址,源MAC地址,目的MAC地址
。
我们可以把这四个地址看作寄邮件时用的姓名和地点。IP地址相当于我们的名字
,MAC地址相当于地理位置
。
现在小编想寄一封信给大家,源IP地址指的就是小编,源MAC地址指的是南京聚策网络实验室,目的IP地址指的是大家,那么目的MAC是什么呢?小编并不知道大家住在哪儿?
而ARP协议
也是如此,通过目的IP地址,解析目的MAC地址
。
如图1-1所示主机A要想访问10.0.0.3。源IP地指的是主机A的IP地址:10.0.0.1/24,目的IP地址指的是:10.0.0.3。
源MAC地址指的是主机A的MAC地址:00-01-02-03-04-AA,目的MAC地址是多少呢?对于主机A而言它并不知道,因此在这儿主机A想要知道10.0.0.3的MAC地址。
于是它会这么做,
第一步:查看主机的ARP缓存表
如图1-2所示看缓存表里面有没有去往目的主机的IP地址
和MAC地址
的一个映射。
如图1-2所示:主机A通过arp -a
这条命令查看主机的缓存表,发现缓存表里面为空。并没有去目的主机的MAC地址,于是它要在网络上广播式
请求.
第二步:源主机广播式请求目标主机的MAC地址
如图1-3所示源主机通过Request报文
在以太网链路上广播式
请求目标主机的MAC地址。
第三步:当其他主机收到主机A发送出来的Request报文后
如图1-4所示主机B发现不是来找自己的
于是它会丢弃
,而主机C发现是来找自己的
于是它会接收
,它会先把源主机
发送过来的Request报文
中的源IP地址和MAC地址
放入自己的缓存表
里面。再回应
源主机自己的MAC地址
第四步:主机响应自己的MAC地址
如图1-5所示主机C会向主机A回应ARP Reply报文
。ARP Reply报文中的源IP地址是主机C的IP地址,目标IP地址是主机A的IP地址,目的MAC地址是主机A的MAC地址,源MAC地址是自己的MAC地址,在这儿ARP Reply报文是通过单播方式进行传送
第五步:收到了目标主机的MAC地址后
如图1-6所示:主机A收到
主机C发送过来的ARP Reply报文
后会放入自己的缓存表
里面。然后主机A和主机C就可以进行后面的通信了
。
ARP的缓存表的默认时间为1200秒
,如果超过了1200秒还没有通信
那么它会在缓存表里面删除
。