测试目的:
验证DUT是否能够正确地重组IP数据报的分片,并且在标识符不同的情况下不进行重组。
描述:
本测试旨在确保DUT在接收到具有相同源地址、目的地址、协议和不同的标识符的IP数据报分片时,不会将这些分片错误地组合在一起。
测试拓扑:
具体步骤:
-
测试仪(TESTER):构造一个ICMP回显请求。向
<DIface-0>
发送一个IP数据包,包含:- 源地址字段设置为主机1的地址。
- 目的地址字段设置为DUT的地址。
- 标识符字段设置为
<id1>
。 - 协议字段设置为
<ipTypeICMP>
。 - 分片偏移字段设置为零。
- 标志字段,包含:
- MF位设置为1。
- 构造的ICMP数据包的前半部分。
-
测试仪(TESTER):向
<DIface-0>
发送另一个IP数据包,包含:- 源地址字段设置为主机1的地址。
- 目的地址字段设置为DUT的地址。
- 标识符字段设置为
<id2>
。 - 协议字段设置为
<ipTypeICMP>
。 - 分片偏移字段设置为第一个IP数据包中发送的数据大小,以8字节为单位。
- 标志字段,包含:
- MF位设置为0。
- 构造的ICMP数据包的后半部分。
-
测试仪(TESTER):在
<DIface-0>
上监听(最长不超过<ListenTime>
秒)。 -
被测设备(DUT):不发送ICMP回显应答。
-
测试仪(TESTER):发送一个IP数据包到
<DIface-0>
,包含:- 源地址字段设置为主机1的地址。
- 目的地址字段设置为DUT的地址。
- 标识符字段设置为
<id1>
。 - 协议字段设置为
<ipTypeICMP>
。 - 分片偏移字段设置为第一个IP数据包中发送的数据大小,以8字节为单位。
- 标志字段,包含:
- MF位设置为0。
- 构造的ICMP数据包的后半部分。
-
测试仪(TESTER):在
<DIface-0>
上监听(最长不超过<ListenTime>
秒)。 -
被测设备(DUT):发送ICMP回显应答。
-
测试仪(TESTER):验证ICMP回显应答中的标识符、序列号和数据与分片中发送的ICMP回显请求相同。
-
测试仪(TESTER):等待
<ipIniReassembleTimeout>
秒。 -
注意:测试仪(TESTER)必须等待
<ipIniReassembleTimeout>
秒,因为当TESTER发送具有不同标识符的分片时,该分片会被存储在DUT的重组缓冲区中。如果这个分片没有从缓冲区中移除,那么它可能会被误认为是另一个测试用例的fragment-1。因此,需要为这个分片设置一个超时。
通过标准
4. 被测设备(DUT):不发送ICMP回显应答。
7. 被测设备(DUT):发送ICMP回显应答。
8. 测试仪(TESTER):验证ICMP回显应答中的标识符、序列号和数据与分片中发送的ICMP回显请求相同。
测试数据
参考文档:
- RFC 791,特别是关于IP分片和重组的部分。