Loading...
墨滴

jasonj333

2021/08/19  阅读:29  主题:红绯

ICMPv4_ERROR_01-05

ICMPv4_ERROR_01: Avoid the infinite loop for ICMP message error

目的

DUT在接收到ICMP参数问题消息时,不应该发送ICMP消息报告这条ICMP消息,这样做的目的是为了避免无限循环

测试步骤

  1. Tester发指令给DUT,让其接下来发送一条ICMP Echo Request给Tester
  2. Tester在网卡上监听
  3. DUT发送一条ICMP Echo Request Message
  4. Tester发送一条ICMP Parameter Problem Message给DUT
  5. Tester在网卡上监听
  6. DUT没有发送ICMP Parameter Problem Message

期望结果

3, DUT发送一条ICMP Echo Request Message
6, DUT没有发送ICMP Parameter Problem Message

CANoe TC8

对于一般的数据包,如果协议头部中参数出错,一般都会回复icmp参数问题报文给源主机,但是如果是icmp参数问题消息,就不需要回复,以免无限循环

ICMPv4_ERROR_02: ICMP messages are only sent for fragment 0

目的

DUT在接收到一条MF = 1的ICMP Echo Request Message时,DUT又没有收到后续的IP包,DUT需要回复ICMP参数问题消息

测试步骤

  1. Tester构造一条MF = 1的ICMP Echo Request Message,发送给DUT
  2. Tester:在网卡上监听
  3. DUT发送一条ICMP Parameter Problem Message
  4. Tester确认收到DUT发来的ICMP Parameter Problem Message

期望结果

3, DUT发送一条ICMP Echo Request Message
4, Tester确认接收到的ICMP Parameter Problem Message,包含了错误参数的头部信息

CANoe TC8

这里我们可以看出哪个参数错误了?MF标志位值为1,表明后面应该还有分片报文,可是最终DUT并没有收到后续的分片包,这就有问题了

ICMPv4_ERROR_03: ICMP messages are not sent when fragment not 0

目的

和02的case唯一的差别是,当Tester发送完ICMP Echo Request(MF = 1)后,Tester紧接着又发了一条IP包,这样DUT就不认为参数错误,就不会回复ICMP参数问题消息了

测试步骤

  1. Tester构造一条MF = 1的ICMP Echo Request Message,发送给DUT
  2. Tester构造一条MF = 0的IP包,发给DUT
  3. Tester在网卡上监听
  4. DUT没有发送ICMP参数问题报文,而是回了一条ICMP Echo Response

期望结果

4, DUT:不发送ICMP参数问题报文,而是回复ICMP Echo Response Message

CANoe TC8

02和03的区别看懂了吗?相当于是把一条icmp echo request切成两个包,02只发了一个,DUT检测到有问题就回复了icmp参数问题消息,而03把这两条都都发了,DUT可以成功组装,不存在参数问题,也就不会反馈icmp参数问题了

ICMPv4_ERROR_04: ICMP messages are not sent for broadcast address

目的

DUT接收到广播ICMP Echo Request报文时,不会发送ICMP参数问题消息

测试步骤

  1. Tester构造一条广播ICMP Echo Request Message,发送给DUT
  2. Tester在网卡上监听
  3. DUT没有发送ICMP参数问题报文,而是回了一条ICMP Echo Response

期望结果

3, DUT不发送ICMP参数问题报文,而是回复ICMP Echo Response Message

CANoe TC8

这条case没什么问题,就是对于目的IP是广播IP的报文,不会报错

ICMPv4_ERROR_05: Uknown ICMP message types are ignored

目的

DUT接收到字段Type无效的ICMP报文时,只会安静地丢弃

测试步骤

  1. Tester构造一条字段Type无效的ICMP报文时,发送给DUT
  2. Tester在网卡上监听
  3. DUT不会发送任何的ICMP报文

期望结果

3, DUT:不会发送任何的ICMP报文

CANoe TC8

对于ICMP头部里的字段Type值无效的ICMP报文,DUT不会有任何的回复,连ICMP参数问题消息都不会回复,只会把这条ICMP报文丢弃而已


jasonj333

2021/08/19  阅读:29  主题:红绯

作者介绍

jasonj333