feat(core): the packet capture's table after Java's Lauscher, measured against Java's own tables

captureRows.ts builds Java's rows per frame (Lauscher.datenVorbereiten):
Ethernet; ARP, ICMP or IP; TCP or UDP; the data with Java's protocol
recognition; with addresses and ports or ports only. The comment stays
structured; captureCommentText says it with given words and numbers.

ScenarioNetwork writes Java's finished tables per card (Lauscher.getDaten,
German locale); all runtime runs are recorded again, NatRun has ttlOut.
expectSameCaptures compares both views for every frame. Fixed where the
engine differed: an ARP request's target MAC is the broadcast address,
an ICMP error's identifier and sequence number are 0 (RFC 792), and host
unreachable from a router carries the packet as forwarded. Not taken:
Java's lower-case broadcast address in a reply to 0.0.0.0, and the typo
'Exeeded'. RIP keeps its recordings: Java's staggered router start now
gives a different startup on this machine.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
This commit is contained in:
2026-10-01 15:11:05 +00:00
co-authored by Claude Opus 5.5
parent 0a34f3a4c4
commit 21a404693c
55 changed files with 37423 additions and 1321 deletions
@@ -10,7 +10,7 @@
"targetIp": "10.0.0.1"
},
{
"time": 950,
"time": 952,
"source": "02:00:00:00:03:21",
"destination": "02:00:00:00:03:11",
"arp": 2,
@@ -28,7 +28,7 @@
"sequence": 2
},
{
"time": 1012,
"time": 1013,
"source": "02:00:00:00:03:11",
"destination": "02:00:00:00:03:21",
"icmp": 8,
@@ -48,7 +48,7 @@
"sequence": 0
},
{
"time": 6904,
"time": 6905,
"source": "02:00:00:00:03:21",
"destination": "02:00:00:00:03:11",
"icmp": 0,
@@ -60,7 +60,7 @@
],
"00000000-0000-0000-0000-000000000302": [
{
"time": 837,
"time": 838,
"source": "02:00:00:00:03:11",
"destination": "FF:FF:FF:FF:FF:FF",
"arp": 1,
@@ -68,7 +68,7 @@
"targetIp": "10.0.0.1"
},
{
"time": 839,
"time": 840,
"source": "02:00:00:00:03:21",
"destination": "02:00:00:00:03:11",
"arp": 2,
@@ -86,7 +86,7 @@
"sequence": 2
},
{
"time": 1123,
"time": 1124,
"source": "02:00:00:00:03:11",
"destination": "02:00:00:00:03:21",
"icmp": 8,
@@ -96,7 +96,7 @@
"sequence": 1
},
{
"time": 6569,
"time": 6570,
"source": "02:00:00:00:03:21",
"destination": "02:00:00:00:03:11",
"icmp": 3,
@@ -118,7 +118,7 @@
],
"00000000-0000-0000-0000-000000000302#1": [
{
"time": 1068,
"time": 1069,
"source": "02:00:00:00:03:22",
"destination": "FF:FF:FF:FF:FF:FF",
"arp": 1,
@@ -126,7 +126,7 @@
"targetIp": "20.0.0.9"
},
{
"time": 3818,
"time": 3819,
"source": "02:00:00:00:03:22",
"destination": "FF:FF:FF:FF:FF:FF",
"arp": 1,
@@ -160,7 +160,7 @@
"sequence": 1
},
{
"time": 6792,
"time": 6793,
"source": "02:00:00:00:03:13",
"destination": "02:00:00:00:03:22",
"icmp": 0,
@@ -180,7 +180,7 @@
"targetIp": "20.0.0.9"
},
{
"time": 3874,
"time": 3875,
"source": "02:00:00:00:03:22",
"destination": "FF:FF:FF:FF:FF:FF",
"arp": 1,
@@ -188,7 +188,7 @@
"targetIp": "20.0.0.9"
},
{
"time": 6625,
"time": 6626,
"source": "02:00:00:00:03:22",
"destination": "FF:FF:FF:FF:FF:FF",
"arp": 1,
@@ -196,7 +196,7 @@
"targetIp": "20.0.0.2"
},
{
"time": 6625,
"time": 6626,
"source": "02:00:00:00:03:13",
"destination": "02:00:00:00:03:22",
"arp": 2,
@@ -225,6 +225,794 @@
}
]
},
"rows": {
"00000000-0000-0000-0000-000000000301": [
[
"1",
"02:00:00:00:03:11",
"FF:FF:FF:FF:FF:FF",
"",
"Netzzugang",
"0x806"
],
[
"1",
"10.0.0.2",
"10.0.0.1",
"ARP",
"Vermittlung",
"Suche nach MAC für 10.0.0.1 [op=REQUEST, sender=02:00:00:00:03:11|10.0.0.2, target=FF:FF:FF:FF:FF:FF|10.0.0.1]"
],
[
"2",
"02:00:00:00:03:21",
"02:00:00:00:03:11",
"",
"Netzzugang",
"0x806"
],
[
"2",
"10.0.0.1",
"10.0.0.2",
"ARP",
"Vermittlung",
"MAC ist 02:00:00:00:03:21 [op=REPLY, sender=02:00:00:00:03:21|10.0.0.1, target=02:00:00:00:03:11|10.0.0.2]"
],
[
"3",
"02:00:00:00:03:11",
"02:00:00:00:03:21",
"",
"Netzzugang",
"0x800"
],
[
"3",
"10.0.0.2",
"20.0.0.9",
"ICMP",
"Vermittlung",
"ICMP Echo Request (ping), TTL: 64, Identifier: 2, Seq.-No.: 2"
],
[
"4",
"02:00:00:00:03:11",
"02:00:00:00:03:21",
"",
"Netzzugang",
"0x800"
],
[
"4",
"10.0.0.2",
"20.0.0.2",
"ICMP",
"Vermittlung",
"ICMP Echo Request (ping), TTL: 64, Identifier: 1, Seq.-No.: 1"
],
[
"5",
"02:00:00:00:03:21",
"02:00:00:00:03:11",
"",
"Netzzugang",
"0x800"
],
[
"5",
"10.0.0.1",
"10.0.0.2",
"ICMP",
"Vermittlung",
"ICMP Host Unreachable, TTL: 64, Identifier: 0, Seq.-No.: 0, Payload: [id=1; ttl=63; protocol=1; sender=10.0.0.2; target=20.0.0.9; icmpType=8; icmpCode=0; identifier=2; seqNr=2]"
],
[
"6",
"02:00:00:00:03:21",
"02:00:00:00:03:11",
"",
"Netzzugang",
"0x800"
],
[
"6",
"20.0.0.2",
"10.0.0.2",
"ICMP",
"Vermittlung",
"ICMP Echo Reply (pong), TTL: 63, Identifier: 1, Seq.-No.: 1"
]
],
"00000000-0000-0000-0000-000000000302": [
[
"1",
"02:00:00:00:03:11",
"FF:FF:FF:FF:FF:FF",
"",
"Netzzugang",
"0x806"
],
[
"1",
"10.0.0.2",
"10.0.0.1",
"ARP",
"Vermittlung",
"Suche nach MAC für 10.0.0.1 [op=REQUEST, sender=02:00:00:00:03:11|10.0.0.2, target=FF:FF:FF:FF:FF:FF|10.0.0.1]"
],
[
"2",
"02:00:00:00:03:21",
"02:00:00:00:03:11",
"",
"Netzzugang",
"0x806"
],
[
"2",
"10.0.0.1",
"10.0.0.2",
"ARP",
"Vermittlung",
"MAC ist 02:00:00:00:03:21 [op=REPLY, sender=02:00:00:00:03:21|10.0.0.1, target=02:00:00:00:03:11|10.0.0.2]"
],
[
"3",
"02:00:00:00:03:11",
"02:00:00:00:03:21",
"",
"Netzzugang",
"0x800"
],
[
"3",
"10.0.0.2",
"20.0.0.9",
"ICMP",
"Vermittlung",
"ICMP Echo Request (ping), TTL: 64, Identifier: 2, Seq.-No.: 2"
],
[
"4",
"02:00:00:00:03:11",
"02:00:00:00:03:21",
"",
"Netzzugang",
"0x800"
],
[
"4",
"10.0.0.2",
"20.0.0.2",
"ICMP",
"Vermittlung",
"ICMP Echo Request (ping), TTL: 64, Identifier: 1, Seq.-No.: 1"
],
[
"5",
"02:00:00:00:03:21",
"02:00:00:00:03:11",
"",
"Netzzugang",
"0x800"
],
[
"5",
"10.0.0.1",
"10.0.0.2",
"ICMP",
"Vermittlung",
"ICMP Host Unreachable, TTL: 64, Identifier: 0, Seq.-No.: 0, Payload: [id=1; ttl=63; protocol=1; sender=10.0.0.2; target=20.0.0.9; icmpType=8; icmpCode=0; identifier=2; seqNr=2]"
],
[
"6",
"02:00:00:00:03:21",
"02:00:00:00:03:11",
"",
"Netzzugang",
"0x800"
],
[
"6",
"20.0.0.2",
"10.0.0.2",
"ICMP",
"Vermittlung",
"ICMP Echo Reply (pong), TTL: 63, Identifier: 1, Seq.-No.: 1"
]
],
"00000000-0000-0000-0000-000000000302#1": [
[
"1",
"02:00:00:00:03:22",
"FF:FF:FF:FF:FF:FF",
"",
"Netzzugang",
"0x806"
],
[
"1",
"20.0.0.1",
"20.0.0.9",
"ARP",
"Vermittlung",
"Suche nach MAC für 20.0.0.9 [op=REQUEST, sender=02:00:00:00:03:22|20.0.0.1, target=FF:FF:FF:FF:FF:FF|20.0.0.9]"
],
[
"2",
"02:00:00:00:03:22",
"FF:FF:FF:FF:FF:FF",
"",
"Netzzugang",
"0x806"
],
[
"2",
"20.0.0.1",
"20.0.0.9",
"ARP",
"Vermittlung",
"Suche nach MAC für 20.0.0.9 [op=REQUEST, sender=02:00:00:00:03:22|20.0.0.1, target=FF:FF:FF:FF:FF:FF|20.0.0.9]"
],
[
"3",
"02:00:00:00:03:22",
"FF:FF:FF:FF:FF:FF",
"",
"Netzzugang",
"0x806"
],
[
"3",
"20.0.0.1",
"20.0.0.2",
"ARP",
"Vermittlung",
"Suche nach MAC für 20.0.0.2 [op=REQUEST, sender=02:00:00:00:03:22|20.0.0.1, target=FF:FF:FF:FF:FF:FF|20.0.0.2]"
],
[
"4",
"02:00:00:00:03:13",
"02:00:00:00:03:22",
"",
"Netzzugang",
"0x806"
],
[
"4",
"20.0.0.2",
"20.0.0.1",
"ARP",
"Vermittlung",
"MAC ist 02:00:00:00:03:13 [op=REPLY, sender=02:00:00:00:03:13|20.0.0.2, target=02:00:00:00:03:22|20.0.0.1]"
],
[
"5",
"02:00:00:00:03:22",
"02:00:00:00:03:13",
"",
"Netzzugang",
"0x800"
],
[
"5",
"10.0.0.2",
"20.0.0.2",
"ICMP",
"Vermittlung",
"ICMP Echo Request (ping), TTL: 63, Identifier: 1, Seq.-No.: 1"
],
[
"6",
"02:00:00:00:03:13",
"02:00:00:00:03:22",
"",
"Netzzugang",
"0x800"
],
[
"6",
"20.0.0.2",
"10.0.0.2",
"ICMP",
"Vermittlung",
"ICMP Echo Reply (pong), TTL: 64, Identifier: 1, Seq.-No.: 1"
]
],
"00000000-0000-0000-0000-000000000303": [
[
"1",
"02:00:00:00:03:22",
"FF:FF:FF:FF:FF:FF",
"",
"Netzzugang",
"0x806"
],
[
"1",
"20.0.0.1",
"20.0.0.9",
"ARP",
"Vermittlung",
"Suche nach MAC für 20.0.0.9 [op=REQUEST, sender=02:00:00:00:03:22|20.0.0.1, target=FF:FF:FF:FF:FF:FF|20.0.0.9]"
],
[
"2",
"02:00:00:00:03:22",
"FF:FF:FF:FF:FF:FF",
"",
"Netzzugang",
"0x806"
],
[
"2",
"20.0.0.1",
"20.0.0.9",
"ARP",
"Vermittlung",
"Suche nach MAC für 20.0.0.9 [op=REQUEST, sender=02:00:00:00:03:22|20.0.0.1, target=FF:FF:FF:FF:FF:FF|20.0.0.9]"
],
[
"3",
"02:00:00:00:03:22",
"FF:FF:FF:FF:FF:FF",
"",
"Netzzugang",
"0x806"
],
[
"3",
"20.0.0.1",
"20.0.0.2",
"ARP",
"Vermittlung",
"Suche nach MAC für 20.0.0.2 [op=REQUEST, sender=02:00:00:00:03:22|20.0.0.1, target=FF:FF:FF:FF:FF:FF|20.0.0.2]"
],
[
"4",
"02:00:00:00:03:13",
"02:00:00:00:03:22",
"",
"Netzzugang",
"0x806"
],
[
"4",
"20.0.0.2",
"20.0.0.1",
"ARP",
"Vermittlung",
"MAC ist 02:00:00:00:03:13 [op=REPLY, sender=02:00:00:00:03:13|20.0.0.2, target=02:00:00:00:03:22|20.0.0.1]"
],
[
"5",
"02:00:00:00:03:22",
"02:00:00:00:03:13",
"",
"Netzzugang",
"0x800"
],
[
"5",
"10.0.0.2",
"20.0.0.2",
"ICMP",
"Vermittlung",
"ICMP Echo Request (ping), TTL: 63, Identifier: 1, Seq.-No.: 1"
],
[
"6",
"02:00:00:00:03:13",
"02:00:00:00:03:22",
"",
"Netzzugang",
"0x800"
],
[
"6",
"20.0.0.2",
"10.0.0.2",
"ICMP",
"Vermittlung",
"ICMP Echo Reply (pong), TTL: 64, Identifier: 1, Seq.-No.: 1"
]
]
},
"layeredRows": {
"00000000-0000-0000-0000-000000000301": [
[
"1",
"02:00:00:00:03:11",
"FF:FF:FF:FF:FF:FF",
"",
"Netzzugang",
"0x806"
],
[
"1",
"10.0.0.2",
"10.0.0.1",
"ARP",
"Vermittlung",
"Suche nach MAC für 10.0.0.1 [op=REQUEST, sender=02:00:00:00:03:11|10.0.0.2, target=FF:FF:FF:FF:FF:FF|10.0.0.1]"
],
[
"2",
"02:00:00:00:03:21",
"02:00:00:00:03:11",
"",
"Netzzugang",
"0x806"
],
[
"2",
"10.0.0.1",
"10.0.0.2",
"ARP",
"Vermittlung",
"MAC ist 02:00:00:00:03:21 [op=REPLY, sender=02:00:00:00:03:21|10.0.0.1, target=02:00:00:00:03:11|10.0.0.2]"
],
[
"3",
"02:00:00:00:03:11",
"02:00:00:00:03:21",
"",
"Netzzugang",
"0x800"
],
[
"3",
"10.0.0.2",
"20.0.0.9",
"ICMP",
"Vermittlung",
"ICMP Echo Request (ping), TTL: 64, Identifier: 2, Seq.-No.: 2"
],
[
"4",
"02:00:00:00:03:11",
"02:00:00:00:03:21",
"",
"Netzzugang",
"0x800"
],
[
"4",
"10.0.0.2",
"20.0.0.2",
"ICMP",
"Vermittlung",
"ICMP Echo Request (ping), TTL: 64, Identifier: 1, Seq.-No.: 1"
],
[
"5",
"02:00:00:00:03:21",
"02:00:00:00:03:11",
"",
"Netzzugang",
"0x800"
],
[
"5",
"10.0.0.1",
"10.0.0.2",
"ICMP",
"Vermittlung",
"ICMP Host Unreachable, TTL: 64, Identifier: 0, Seq.-No.: 0, Payload: [id=1; ttl=63; protocol=1; sender=10.0.0.2; target=20.0.0.9; icmpType=8; icmpCode=0; identifier=2; seqNr=2]"
],
[
"6",
"02:00:00:00:03:21",
"02:00:00:00:03:11",
"",
"Netzzugang",
"0x800"
],
[
"6",
"20.0.0.2",
"10.0.0.2",
"ICMP",
"Vermittlung",
"ICMP Echo Reply (pong), TTL: 63, Identifier: 1, Seq.-No.: 1"
]
],
"00000000-0000-0000-0000-000000000302": [
[
"1",
"02:00:00:00:03:11",
"FF:FF:FF:FF:FF:FF",
"",
"Netzzugang",
"0x806"
],
[
"1",
"10.0.0.2",
"10.0.0.1",
"ARP",
"Vermittlung",
"Suche nach MAC für 10.0.0.1 [op=REQUEST, sender=02:00:00:00:03:11|10.0.0.2, target=FF:FF:FF:FF:FF:FF|10.0.0.1]"
],
[
"2",
"02:00:00:00:03:21",
"02:00:00:00:03:11",
"",
"Netzzugang",
"0x806"
],
[
"2",
"10.0.0.1",
"10.0.0.2",
"ARP",
"Vermittlung",
"MAC ist 02:00:00:00:03:21 [op=REPLY, sender=02:00:00:00:03:21|10.0.0.1, target=02:00:00:00:03:11|10.0.0.2]"
],
[
"3",
"02:00:00:00:03:11",
"02:00:00:00:03:21",
"",
"Netzzugang",
"0x800"
],
[
"3",
"10.0.0.2",
"20.0.0.9",
"ICMP",
"Vermittlung",
"ICMP Echo Request (ping), TTL: 64, Identifier: 2, Seq.-No.: 2"
],
[
"4",
"02:00:00:00:03:11",
"02:00:00:00:03:21",
"",
"Netzzugang",
"0x800"
],
[
"4",
"10.0.0.2",
"20.0.0.2",
"ICMP",
"Vermittlung",
"ICMP Echo Request (ping), TTL: 64, Identifier: 1, Seq.-No.: 1"
],
[
"5",
"02:00:00:00:03:21",
"02:00:00:00:03:11",
"",
"Netzzugang",
"0x800"
],
[
"5",
"10.0.0.1",
"10.0.0.2",
"ICMP",
"Vermittlung",
"ICMP Host Unreachable, TTL: 64, Identifier: 0, Seq.-No.: 0, Payload: [id=1; ttl=63; protocol=1; sender=10.0.0.2; target=20.0.0.9; icmpType=8; icmpCode=0; identifier=2; seqNr=2]"
],
[
"6",
"02:00:00:00:03:21",
"02:00:00:00:03:11",
"",
"Netzzugang",
"0x800"
],
[
"6",
"20.0.0.2",
"10.0.0.2",
"ICMP",
"Vermittlung",
"ICMP Echo Reply (pong), TTL: 63, Identifier: 1, Seq.-No.: 1"
]
],
"00000000-0000-0000-0000-000000000302#1": [
[
"1",
"02:00:00:00:03:22",
"FF:FF:FF:FF:FF:FF",
"",
"Netzzugang",
"0x806"
],
[
"1",
"20.0.0.1",
"20.0.0.9",
"ARP",
"Vermittlung",
"Suche nach MAC für 20.0.0.9 [op=REQUEST, sender=02:00:00:00:03:22|20.0.0.1, target=FF:FF:FF:FF:FF:FF|20.0.0.9]"
],
[
"2",
"02:00:00:00:03:22",
"FF:FF:FF:FF:FF:FF",
"",
"Netzzugang",
"0x806"
],
[
"2",
"20.0.0.1",
"20.0.0.9",
"ARP",
"Vermittlung",
"Suche nach MAC für 20.0.0.9 [op=REQUEST, sender=02:00:00:00:03:22|20.0.0.1, target=FF:FF:FF:FF:FF:FF|20.0.0.9]"
],
[
"3",
"02:00:00:00:03:22",
"FF:FF:FF:FF:FF:FF",
"",
"Netzzugang",
"0x806"
],
[
"3",
"20.0.0.1",
"20.0.0.2",
"ARP",
"Vermittlung",
"Suche nach MAC für 20.0.0.2 [op=REQUEST, sender=02:00:00:00:03:22|20.0.0.1, target=FF:FF:FF:FF:FF:FF|20.0.0.2]"
],
[
"4",
"02:00:00:00:03:13",
"02:00:00:00:03:22",
"",
"Netzzugang",
"0x806"
],
[
"4",
"20.0.0.2",
"20.0.0.1",
"ARP",
"Vermittlung",
"MAC ist 02:00:00:00:03:13 [op=REPLY, sender=02:00:00:00:03:13|20.0.0.2, target=02:00:00:00:03:22|20.0.0.1]"
],
[
"5",
"02:00:00:00:03:22",
"02:00:00:00:03:13",
"",
"Netzzugang",
"0x800"
],
[
"5",
"10.0.0.2",
"20.0.0.2",
"ICMP",
"Vermittlung",
"ICMP Echo Request (ping), TTL: 63, Identifier: 1, Seq.-No.: 1"
],
[
"6",
"02:00:00:00:03:13",
"02:00:00:00:03:22",
"",
"Netzzugang",
"0x800"
],
[
"6",
"20.0.0.2",
"10.0.0.2",
"ICMP",
"Vermittlung",
"ICMP Echo Reply (pong), TTL: 64, Identifier: 1, Seq.-No.: 1"
]
],
"00000000-0000-0000-0000-000000000303": [
[
"1",
"02:00:00:00:03:22",
"FF:FF:FF:FF:FF:FF",
"",
"Netzzugang",
"0x806"
],
[
"1",
"20.0.0.1",
"20.0.0.9",
"ARP",
"Vermittlung",
"Suche nach MAC für 20.0.0.9 [op=REQUEST, sender=02:00:00:00:03:22|20.0.0.1, target=FF:FF:FF:FF:FF:FF|20.0.0.9]"
],
[
"2",
"02:00:00:00:03:22",
"FF:FF:FF:FF:FF:FF",
"",
"Netzzugang",
"0x806"
],
[
"2",
"20.0.0.1",
"20.0.0.9",
"ARP",
"Vermittlung",
"Suche nach MAC für 20.0.0.9 [op=REQUEST, sender=02:00:00:00:03:22|20.0.0.1, target=FF:FF:FF:FF:FF:FF|20.0.0.9]"
],
[
"3",
"02:00:00:00:03:22",
"FF:FF:FF:FF:FF:FF",
"",
"Netzzugang",
"0x806"
],
[
"3",
"20.0.0.1",
"20.0.0.2",
"ARP",
"Vermittlung",
"Suche nach MAC für 20.0.0.2 [op=REQUEST, sender=02:00:00:00:03:22|20.0.0.1, target=FF:FF:FF:FF:FF:FF|20.0.0.2]"
],
[
"4",
"02:00:00:00:03:13",
"02:00:00:00:03:22",
"",
"Netzzugang",
"0x806"
],
[
"4",
"20.0.0.2",
"20.0.0.1",
"ARP",
"Vermittlung",
"MAC ist 02:00:00:00:03:13 [op=REPLY, sender=02:00:00:00:03:13|20.0.0.2, target=02:00:00:00:03:22|20.0.0.1]"
],
[
"5",
"02:00:00:00:03:22",
"02:00:00:00:03:13",
"",
"Netzzugang",
"0x800"
],
[
"5",
"10.0.0.2",
"20.0.0.2",
"ICMP",
"Vermittlung",
"ICMP Echo Request (ping), TTL: 63, Identifier: 1, Seq.-No.: 1"
],
[
"6",
"02:00:00:00:03:13",
"02:00:00:00:03:22",
"",
"Netzzugang",
"0x800"
],
[
"6",
"20.0.0.2",
"10.0.0.2",
"ICMP",
"Vermittlung",
"ICMP Echo Reply (pong), TTL: 64, Identifier: 1, Seq.-No.: 1"
]
]
},
"events": [
[
713,
@@ -235,11 +1023,11 @@
"sendeICMP 20.0.0.9 returned "
],
[
955,
956,
"sendProbe 20.0.0.2 called"
],
[
3762,
3763,
"sendProbe 20.0.0.2 returned null"
]
]