feat(core): traceroute and tcpdump after Java, measured against Java

TerminalRun adds nine stories: traceroute in the LAN, through the router,
unreachable, without a route, to no one, to the host itself, errors and
Ctrl+C; tcpdump on two hosts. traceroute counts failures across hops as
Java does and takes an error that carries its probe; tcpdump tells each
frame's highest capture row with its time of day, at once.

Departures from Java: traceroute tells its summary before the end mark
(Java after it, where its window shows no text) and calls a host at the
20th hop reached. arpsend is not built.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
This commit is contained in:
2026-10-02 10:46:18 +00:00
co-authored by Claude Opus 5.5
parent 495c449ef2
commit a867c33d64
16 changed files with 11983 additions and 16 deletions
@@ -0,0 +1,127 @@
{
"frames": {
"00000000-0000-0000-0000-000000000401": [],
"00000000-0000-0000-0000-000000000402": [],
"00000000-0000-0000-0000-000000000403": [],
"00000000-0000-0000-0000-000000000404": [],
"00000000-0000-0000-0000-000000000405": [],
"00000000-0000-0000-0000-000000000405#1": [],
"00000000-0000-0000-0000-000000000406": []
},
"rows": {
"00000000-0000-0000-0000-000000000401": [],
"00000000-0000-0000-0000-000000000402": [],
"00000000-0000-0000-0000-000000000403": [],
"00000000-0000-0000-0000-000000000404": [],
"00000000-0000-0000-0000-000000000405": [],
"00000000-0000-0000-0000-000000000405#1": [],
"00000000-0000-0000-0000-000000000406": []
},
"layeredRows": {
"00000000-0000-0000-0000-000000000401": [],
"00000000-0000-0000-0000-000000000402": [],
"00000000-0000-0000-0000-000000000403": [],
"00000000-0000-0000-0000-000000000404": [],
"00000000-0000-0000-0000-000000000405": [],
"00000000-0000-0000-0000-000000000405#1": [],
"00000000-0000-0000-0000-000000000406": []
},
"acts": [
[
500,
"00000000-0000-0000-0000-000000000401",
"traceroute 192.168.0.20"
],
[
1500,
"00000000-0000-0000-0000-000000000401",
"traceroute localhost"
]
],
"events": [
[
501,
"00000000-0000-0000-0000-000000000401",
"call",
"traceroute 192.168.0.20"
],
[
502,
"00000000-0000-0000-0000-000000000401",
"busy",
"true"
],
[
502,
"00000000-0000-0000-0000-000000000401",
"text",
"Verbindung nach 192.168.0.20 wird bestimmt (max. 20 Stationen).\n"
],
[
502,
"00000000-0000-0000-0000-000000000401",
"text",
" 1 "
],
[
507,
"00000000-0000-0000-0000-000000000401",
"text",
"127.0.0.1"
],
[
507,
"00000000-0000-0000-0000-000000000401",
"busy",
"false"
],
[
507,
"00000000-0000-0000-0000-000000000401",
"text",
"\n\n192.168.0.20 wurde nach einem Sprung (hop) erreicht."
],
[
1500,
"00000000-0000-0000-0000-000000000401",
"call",
"traceroute localhost"
],
[
1501,
"00000000-0000-0000-0000-000000000401",
"busy",
"true"
],
[
1501,
"00000000-0000-0000-0000-000000000401",
"text",
"Verbindung nach localhost (127.0.0.1) wird bestimmt (max. 20 Stationen).\n"
],
[
1501,
"00000000-0000-0000-0000-000000000401",
"text",
" 1 "
],
[
1501,
"00000000-0000-0000-0000-000000000401",
"text",
"127.0.0.1"
],
[
1501,
"00000000-0000-0000-0000-000000000401",
"busy",
"false"
],
[
1502,
"00000000-0000-0000-0000-000000000401",
"text",
"\n\nlocalhost wurde nach einem Sprung (hop) erreicht."
]
]
}