ARP,地址解析协议,其根本目的是根据对方的IP地址请求对方的MAC地址,填入待发送的报文的目的MAC地址字段中从网卡上发送出去。这不是我们今天要讲的重点!
当主机收到ARP请求时,首先要做的并不是回复ARP响应告诉对方自己的MAC地址,而是把ARP请求报文中的源IP和源MAC存入自己的ARP缓存表中作为一条动态条目。这也不是我们今天要讲的重点!
我们今天讲的重点是在CANoe中添加的网络节点,如何在CAPL程序中模拟它的ARP缓存表存储和更新动态条目的一些脚本编写思路。目的有如下几点:
- 有助于加深了解ARP缓存表的工作原理
- 具象化展示ARP缓存表存储和更新动态条目的行为
- 作为被测件来验证测试ARP缓存表的脚本的正确性
下面进入正题!
假设:
1、DUT的ARP缓存表最多可以缓存5条动态entry,按照从早到晚的顺序是:
-- 1---192.168.0.1---02:00:00:00:00:01
-- 2---192.168.0.2---02:00:00:00:00:02
-- 3---192.168.0.3---02:00:00:00:00:03
-- 4---192.168.0.4---02:00:00:00:00:04
-- 5---192.168.0.5---02:00:00:00:00:05
2、动态条目存入DUT的ARP缓存表的方式有两种:更新、新增
2.1、更新:当DUT接收到的ARP请求或响应报文的源IP地址在ARP缓存表中存在时,会把已经存在的条目更新为源IP-源MAC