arp查询mac地址中ip从哪里获取?
12 个回答
“前文讲过arp缓存表和mac地址表,现在总结下它们的相同和不同
”
不同
定义
- arp缓存表是主机用来缓存其他主机的ip地址和mac地址的映射关系的表
- mac地址表是交换机用来缓存连接在各端口的主机的源mac地址和端口号的映射关系的表
作用
- arp缓存表是数据包在二层封装时需要目的mac地址时查找的表
- mac地址表是数据帧经过交换机时需要转发到对应端口时查找的表
存入方式
- arp缓存表是主机接收arp请求报文或arp响应报文时存入senderIP和senderMAC
- mac地址表是交换机端口接收到任意数据帧时存入源mac地址和端口号
溢出
- arp缓存表溢出时会依次往前推,把第一个存入的删除,最新的存在最后
- mac地址表溢出时不会存入
其他
- arp缓存表不能存自己的ip地址
- mac地址表不能存广播mac地址ff:ff:ff:ff:ff:ff
相同
定时器
它们存入的条目或项都有独立的定时器
老化
它们存入的条目或项的定时器归零时都会被删除
更新
它们存入时如果有匹配项会更新且重启定时器
题主可能没有对ARP协议的交互原理有深入的理解,才出现了这个问题:
知道arp根据ip(B的ip)能获取mac(B的mac),那么在局域网中ip(B的ip)从哪里获取呢,获取B的ip协议是什么呢?
这个问题其实是一个伪问题,因为A问B的ARP过程中,A和B最终都拿到了对方的IP和MAC信息。为了方便你的理解,这里我们通过图解的方式来进行==>
在这个拓扑里面,PC1和PC2处在同一个局域网里面,PC1要与PC2通信,则需要发起ARP广博请求:

根据上图我们看到,PC1发送的请求广播包同时被其他主机收到,然后PC3和PC4收到之后(发现不是问自己)则丢弃。 而PC2收到之后,根据请求包里面的信息(有自己的IP地址),判断是给自己的,所以不会做丢弃动作,而是返回ARP回应包。
那么,ARP回应包是如何处理的?这里需要特别关注ARP请求包的内容,在上面的图解里面,ARP请求包的完整信息是: 我的IP地址是IP1,MAC地址是MAC1,请问谁是PC2,你的IP2对应的MAC地址是多少?
简单来说, ARP请求首先有"自我介绍",然后才是询问 。这样的话,PC2在收到请求之后,就可以将PC1的IP和MAC映射信息存储在本地的【ARP缓存表】,既然知道PC1在哪里,就可以返回ARP单播回应包

这张图我们需要得到两个信息:
①被询问者PC2提前生成了ARP映射信息,然后才是询问者PC1;
②询问者和发送者最终的ARP表里面都有各自的IP和MAC地址信息。
【相关推荐】
新浪微博: @拼客学院陈鑫杰
微信公众号:拼客院长陈鑫杰