近期开始写新的内容,主要是为了解决一些计算机网络小白们的一些奇葩问题和常见误区。
我们都知道,ARP协议主要是用来实现IP地址到MAC地址的解析的。一个数据包在二层网络中转发,必须知道对端的MAC地址才可以,如何通过IP地址找到对端的MAC地址呢?这就需要ARP协议了,ARP协议,即Address Resolution Protocol,地址解析协议,可以实现已知IP地址的情况下查找IP地址对应的MAC地址的问题。
然而,对于一个非ARP协议的数据包,一般情况下也封装有发送者的IP地址和MAC地址,这样不就也可以学习到一个IP地址和MAC地址的对应关系了吗?
很遗憾,这样的想法很美好,但是并不能够实现。事实情况是,主机并不会把该IP地址和MAC地址的对应关系加入到ARP表项中。
因此,ARP表项只能通过下列方式获得:
1、静态ARP
可以通过手动的方式,将ARP表项写入设备,这样写入的ARP表项优先级要高于动态ARP设备,还可以防止ARP欺骗攻击,但是缺点是比较麻烦。
2、ARP请求报文
当主机接受到一个其他机器发送的ARP请求报文时,就会学习到该机器的IP地址和MAC地址的对应关系,同时也会写入自身的ARP表项。
3、ARP应答报文
当设备收到一个ARP请求报文,同时发现报文询问的是自己的MAC地址时,就会发送一个ARP应答报文,发送ARP请求报文的设备会收到该ARP应答报文,从而学习到该应答报文发送者的MAC地址。
4、免费ARP报文
同时,还有一种ARP报文,及其容易被人们所忽略,那就是免费ARP报文,这种报文主要用于向网络中宣告自己的MAC地址。在VRRP等场景中会用到。
原创不易,转载请说明出处,原文链接:
https://blog.csdn.net/weixin_40228200/article/details/118197259
计算机网络误区——可以通过非ARP报文(正常数据包)学习ARP表项吗?
最新推荐文章于 2022-10-02 21:42:10 发布