F_Reassembly_FID - Fragment Reassembly (Fragment IDs Differ Between Fragments)
Host and Router
F_Reassembly_FID.seq [-tooloption ...] -pkt F_Reassembly_FID.def
-tooloption : v6eval tool option
None
Tester Target
| |
|-------------------------->|
| Echo Request (1st) |
| Fragment ID = 2999 |
| |
|-------------------------->|
| Echo Request (2nd) |
| Fragment ID = 3000 |
| |
|-------------------------->|
| Echo Request (3rd) |
| Fragment ID = 2999 |
| |
|<--------------------------|
| Neighbor Solicitation |
| |
| |
|-------------------------->|
| Neighbor Advertisement |
| |
| |
|<--------------------------|
| ICMP Error |
| |
| |
v v
1. Send Echo Request (1st fragment)
2. Send Echo Request (2nd fragment)
3. Send Echo Request (3rd fragment)
4. Wait ICMP Error or NS
5. If NS received then send NA, and wait ICMP Error again
6. Receive ICMP Error
Echo Request Data (original) is:
IPv6 Header
Version = 6
Traffic Class = 0
FlowLabel = 0
PayloadLength = 88
NextHeader = 58 (ICMPv6)
SourceAddress = Tester Link Local Address
DestinationAddress = Target Link Local Address
ICMP Echo Request
Type = 128 (Echo Request)
Code = 0
Checksum = (auto)
Identifier = (auto)
SequenceNumber = 0
PayloadData = data repeat{0x1, 40}
data repeat{0x2, 40}
Echo Request Data (1st fragment) is:
IPv6 Header
Version = 6
Traffic Class = 0
FlowLabel = 0
PayloadLength = 40
NextHeader = 44 (Fragment Header)
SourceAddress = Tester Link Local Address
DestinationAddress = Target Link Local Address
Fragment Header
NextHeader = 58 (ICMPv6)
FragmentOffset = 0
MFlag = 1
Identification = 2999
Payload
data = 32 octets from the head of ICMP Echo request
Echo Request Data (2nd fragment) is:
IPv6 Header
Version = 6
Traffic Class = 0
FlowLabel = 0
PayloadLength = 40
NextHeader = 44 (Fragment Header)
SourceAddress = Tester Link Local Address
DestinationAddress = Target Link Local Address
Fragment Header
NextHeader = 58 (ICMPv6)
FragmentOffset = 4
MFlag = 1
Identification = 3000
Payload
data = 32 octets from the back of ICMP Echo request
Echo Request Data (3rd fragment) is:
IPv6 Header
Version = 6
Traffic Class = 0
FlowLabel = 0
PayloadLength = 32
NextHeader = 44 (Fragment Header)
SourceAddress = Tester Link Local Address
DestinationAddress = Target Link Local Address
Fragment Header
NextHeader = 58 (ICMPv6)
FragmentOffset = 8
MFlag = 0
Identification = 2999
Payload
data = 24 octets from the back of ICMP Echo request
PASS: receive ICMPv6 Time Exceeded message, 60 seconds after reception of 1st Fragment
IPv6 Header
Version = 6
Traffic Class = 0
FlowLabel = 0
PayloadLength = 88
NextHeader = 58 (ICMPv6)
SourceAddress = Target Link Local Address
Destination Address = Tester Link Local Address
ICMP Echo Reply
Type = 3 (Time Exceeded)
Code = 1 (Fragment reassembly time exceeded)
Checksum = (auto)
Reserved = 0
PayloadData = (Sent Packet (1st))
RFC 2460 - IPv6 Specification
perldoc V6evalTool