test(java-oracle): TcpRun records TCP as Java FILIUS runs it

Three stories of socket calls on tcp-lan's network (exchange, closedPort,
lostData): every frame with TCP flags and numbers, when each call started,
returned or failed, and each socket's states. Network building and the
packet log move from DhcpRun to ScenarioNetwork.

Measured: 3 RTT per attempt (8250 ms at 90 %), an orderly close after a
failed send, TIME_WAIT of 3 RTT, the passive side closing by itself on FIN,
one SYN only (Java's retry loop ends after the first timeout).

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
This commit is contained in:
2026-09-30 11:08:43 +00:00
co-authored by Claude Opus 5.5
parent ed437f9b5c
commit cd3c6a432c
8 changed files with 1740 additions and 385 deletions
@@ -0,0 +1,368 @@
{
"frames": {
"00000000-0000-0000-0000-000000000101": [
{
"time": 854,
"source": "02:00:00:00:01:12",
"destination": "FF:FF:FF:FF:FF:FF",
"arp": 1,
"senderIp": "192.168.0.20",
"targetIp": "192.168.0.10"
},
{
"time": 855,
"source": "02:00:00:00:01:11",
"destination": "02:00:00:00:01:12",
"arp": 2,
"senderIp": "192.168.0.10",
"targetIp": "192.168.0.20"
},
{
"time": 1083,
"source": "02:00:00:00:01:12",
"destination": "02:00:00:00:01:11",
"sourceIp": "192.168.0.20",
"destinationIp": "192.168.0.10",
"protocol": 6,
"sourcePort": 61897,
"destinationPort": 80,
"payload": null,
"tcpFlags": "S",
"sequence": 2000000,
"acknowledgement": 0
},
{
"time": 1084,
"source": "02:00:00:00:01:11",
"destination": "02:00:00:00:01:12",
"sourceIp": "192.168.0.10",
"destinationIp": "192.168.0.20",
"protocol": 6,
"sourcePort": 80,
"destinationPort": 61897,
"payload": null,
"tcpFlags": "SA",
"sequence": 1000000,
"acknowledgement": 2000001
},
{
"time": 1307,
"source": "02:00:00:00:01:12",
"destination": "02:00:00:00:01:11",
"sourceIp": "192.168.0.20",
"destinationIp": "192.168.0.10",
"protocol": 6,
"sourcePort": 61897,
"destinationPort": 80,
"payload": null,
"tcpFlags": "A",
"sequence": 2000001,
"acknowledgement": 1000001
},
{
"time": 26579,
"source": "02:00:00:00:01:12",
"destination": "02:00:00:00:01:11",
"sourceIp": "192.168.0.20",
"destinationIp": "192.168.0.10",
"protocol": 6,
"sourcePort": 61897,
"destinationPort": 80,
"payload": null,
"tcpFlags": "F",
"sequence": 2000009,
"acknowledgement": 0
},
{
"time": 26579,
"source": "02:00:00:00:01:11",
"destination": "02:00:00:00:01:12",
"sourceIp": "192.168.0.10",
"destinationIp": "192.168.0.20",
"protocol": 6,
"sourcePort": 80,
"destinationPort": 61897,
"payload": null,
"tcpFlags": "A",
"sequence": 1000001,
"acknowledgement": 2000010
},
{
"time": 26635,
"source": "02:00:00:00:01:11",
"destination": "02:00:00:00:01:12",
"sourceIp": "192.168.0.10",
"destinationIp": "192.168.0.20",
"protocol": 6,
"sourcePort": 80,
"destinationPort": 61897,
"payload": null,
"tcpFlags": "F",
"sequence": 1000001,
"acknowledgement": 0
},
{
"time": 26858,
"source": "02:00:00:00:01:12",
"destination": "02:00:00:00:01:11",
"sourceIp": "192.168.0.20",
"destinationIp": "192.168.0.10",
"protocol": 6,
"sourcePort": 61897,
"destinationPort": 80,
"payload": null,
"tcpFlags": "A",
"sequence": 2000010,
"acknowledgement": 1000002
}
],
"00000000-0000-0000-0000-000000000102": [
{
"time": 731,
"source": "02:00:00:00:01:12",
"destination": "FF:FF:FF:FF:FF:FF",
"arp": 1,
"senderIp": "192.168.0.20",
"targetIp": "192.168.0.10"
},
{
"time": 967,
"source": "02:00:00:00:01:11",
"destination": "02:00:00:00:01:12",
"arp": 2,
"senderIp": "192.168.0.10",
"targetIp": "192.168.0.20"
},
{
"time": 969,
"source": "02:00:00:00:01:12",
"destination": "02:00:00:00:01:11",
"sourceIp": "192.168.0.20",
"destinationIp": "192.168.0.10",
"protocol": 6,
"sourcePort": 61897,
"destinationPort": 80,
"payload": null,
"tcpFlags": "S",
"sequence": 2000000,
"acknowledgement": 0
},
{
"time": 1196,
"source": "02:00:00:00:01:11",
"destination": "02:00:00:00:01:12",
"sourceIp": "192.168.0.10",
"destinationIp": "192.168.0.20",
"protocol": 6,
"sourcePort": 80,
"destinationPort": 61897,
"payload": null,
"tcpFlags": "SA",
"sequence": 1000000,
"acknowledgement": 2000001
},
{
"time": 1196,
"source": "02:00:00:00:01:12",
"destination": "02:00:00:00:01:11",
"sourceIp": "192.168.0.20",
"destinationIp": "192.168.0.10",
"protocol": 6,
"sourcePort": 61897,
"destinationPort": 80,
"payload": null,
"tcpFlags": "A",
"sequence": 2000001,
"acknowledgement": 1000001
},
{
"time": 1717,
"source": "02:00:00:00:01:12",
"destination": "02:00:00:00:01:11",
"sourceIp": "192.168.0.20",
"destinationIp": "192.168.0.10",
"protocol": 6,
"sourcePort": 61897,
"destinationPort": 80,
"payload": "verloren",
"tcpFlags": "P",
"sequence": 2000001,
"acknowledgement": 0
},
{
"time": 9967,
"source": "02:00:00:00:01:12",
"destination": "02:00:00:00:01:11",
"sourceIp": "192.168.0.20",
"destinationIp": "192.168.0.10",
"protocol": 6,
"sourcePort": 61897,
"destinationPort": 80,
"payload": "verloren",
"tcpFlags": "P",
"sequence": 2000001,
"acknowledgement": 0
},
{
"time": 18217,
"source": "02:00:00:00:01:12",
"destination": "02:00:00:00:01:11",
"sourceIp": "192.168.0.20",
"destinationIp": "192.168.0.10",
"protocol": 6,
"sourcePort": 61897,
"destinationPort": 80,
"payload": "verloren",
"tcpFlags": "P",
"sequence": 2000001,
"acknowledgement": 0
},
{
"time": 26467,
"source": "02:00:00:00:01:12",
"destination": "02:00:00:00:01:11",
"sourceIp": "192.168.0.20",
"destinationIp": "192.168.0.10",
"protocol": 6,
"sourcePort": 61897,
"destinationPort": 80,
"payload": null,
"tcpFlags": "F",
"sequence": 2000009,
"acknowledgement": 0
},
{
"time": 26691,
"source": "02:00:00:00:01:11",
"destination": "02:00:00:00:01:12",
"sourceIp": "192.168.0.10",
"destinationIp": "192.168.0.20",
"protocol": 6,
"sourcePort": 80,
"destinationPort": 61897,
"payload": null,
"tcpFlags": "A",
"sequence": 1000001,
"acknowledgement": 2000010
},
{
"time": 26746,
"source": "02:00:00:00:01:11",
"destination": "02:00:00:00:01:12",
"sourceIp": "192.168.0.10",
"destinationIp": "192.168.0.20",
"protocol": 6,
"sourcePort": 80,
"destinationPort": 61897,
"payload": null,
"tcpFlags": "F",
"sequence": 1000001,
"acknowledgement": 0
},
{
"time": 26747,
"source": "02:00:00:00:01:12",
"destination": "02:00:00:00:01:11",
"sourceIp": "192.168.0.20",
"destinationIp": "192.168.0.10",
"protocol": 6,
"sourcePort": 61897,
"destinationPort": 80,
"payload": null,
"tcpFlags": "A",
"sequence": 2000010,
"acknowledgement": 1000002
}
],
"00000000-0000-0000-0000-000000000103": [
{
"time": 854,
"source": "02:00:00:00:01:12",
"destination": "FF:FF:FF:FF:FF:FF",
"arp": 1,
"senderIp": "192.168.0.20",
"targetIp": "192.168.0.10"
}
]
},
"events": [
[
215,
"server oeffnen called"
],
[
715,
"client verbinden called"
],
[
1216,
"client verbinden returned"
],
[
1317,
"server oeffnen returned"
],
[
1716,
"loss on"
],
[
1716,
"client senden called"
],
[
26467,
"client senden failed TimeOutException"
],
[
26467,
"loss off"
]
],
"states": {
"client": [
[
715,
"CLOSED"
],
[
727,
"SYN_SENT"
],
[
1197,
"ESTABLISHED"
],
[
26469,
"FIN_WAIT_1"
],
[
26692,
"FIN_WAIT_2"
],
[
26747,
"TIME_WAIT"
],
[
34997,
"CLOSED"
]
],
"server": [
[
1317,
"ESTABLISHED"
],
[
26580,
"LAST_ACK"
],
[
26858,
"CLOSED"
]
]
}
}