ARP缓存表
什么是ARP缓存表
用来存储ip地址和对应mac地址的映射关系的表
网卡与缓存表
每块网卡有独立的ARP缓存表
如何存储
当主机收到ARP请求报文或者响应报文时,在满足一些条件后(后续会讲到),会把报文中的senderIP和senderMAC存入ARP缓存表中
存入时,会先查找ARP缓存表中是否有已经有senderIP
- 如果没有
就把它存在最后一条动态条目的后面
- 如果有
不管MAC地址是否和senderMAC相同,都会把原条目删除,在相同位置插入新的ip-mac条目,看起来像是只把mac地址替换掉一样
如何取出
根据IP地址查找MAC地址
作用
短时间内和对端主机有连续的通信需求时,只需要在ARP缓存表中查找对端主机ip地址对应的mac地址即可,不必每通信一次就发一次ARP请求请求mac地址
查看命令
windows系统和linux系统都是
arp -a
条目类型
- 静态条目
静态条目是写死的,没有老化时间,不会刷新
- 动态条目
动态条目是临时储存的,有老化时间,会刷新
动态条目老化时间,Dynamic ARP cache timeout
每条动态条目老化时间相同,但是开启的时间可能不同,到达老化时间而未刷新时,此条条目会从ARP缓存表中删除。在老化时间之内,如果收到arp请求报文或者响应报文且存入此条条目,就会刷新senderIP对应的条目,更新mac地址项(用senderMAC,不管是否相同),且重置老化时间timeout
动态条目最大数量,Dynamic ARP cache size
有些系统会设置动态条目的最大条数,超过最大条数,会相应的让第一条条目被删除,而最新被存入的条目放在最后一条条目后面,比如,依次存入123456…30,当存入第31条时,超过最大条数,那么就会把第1条删除,把第31条放在第30条的后面,变成23456…31