IPv4_FRAGMENTS_01: IP Reconstruct fragments validation
目的
目标主机为了组装网络报文的分片包,网络层协议模块根据这些分片包的四个字段:Identification、Source、Destination、Protocol具有相同的值,来组装它们
也就是目的主机的网络层模块收到分片包后,需要组装成完整的报文,再把数据送到上层,那如何区分这些分片包是来自一条完整的报文呢,就是根据Identification、Source、Destination、Protocol这四个字段的值都相同
测试步骤
- Tester:构造一条ICMP Echo Request报文,发送给DUT,包括:
- 源IP地址是Tester
- 目的IP地址是DUT
- Identification字段设置为id
- Protocol字段设置为ICMP
- Fragment Offset字段设置为0
- Flags字段的MF标志位设置为1
- ICMP报文的前半部分放入IP payload中
- Tester:发送一条IP报文,包括:
- 源IP地址是Tester
- 目的IP地址是DUT
- Identification字段设置为id
- Protocol字段设置为ICMP
- Fragment Offset字段设置为上一个报文的IP payload字节数
- Flags字段的MF标志位设置为0
- ICMP报文的后半部分放入IP payload中
- Tester:监听在网卡上
- DUT:发送ICMP Echo Reply
- Tester:验证ICMP Echo Reply里ICMP首部的Identifier、Sequence Number和Data与发送的两个分片包组成的ICMP Echo Request的相同
从这里能看出,分片包要如何构造了
期望结果
4, DUT:发送ICMP Echo Reply 5, Tester:验证ICMP Echo Reply里ICMP首部的Identifier、Sequence Number和Data与发送的两个分片包组成的ICMP Echo Request的相同
CANoe TC8
参考
Derived from RFC 791 s2.3 p9 Function Description (Fragmentation), RFC 791 s3.2 p29 Discussion (Identification), RFC 1122 s3.3.2 p56 Reassembly (MUST)
上面参考的内容详细解释了分片与重组的思路,不过由于内容太多,我们不在这里展开,后续讲到这两个RFC文档时,再详细说明与分析
IPv4_FRAGMENTS_02: IP Reconstruct fragments, negative test on id
|