TcpRun loses exactly one frame (loseFirst: the card's output buffer drops it; the sender's packet log still shows it, as with setDrop) in three new stories: lostSynAck, lostFin, lostLastFin. Measured: Java never repeats a SYN+ACK or a FIN. The server gives a handshake up after one timeout (3 RTT) and closes with a FIN from SYN_RCVD (its boundary check sometimes lets it wait twice; it means once). After its FIN a socket waits at most five times, each wait ended by a segment or the timeout; then it is gone. The core does the same (TCP_CLOSING_WAITS, with TIME_WAIT in the loop) and shows CLOSED where Java leaves the state standing (a named Java bug). One departure: a repeated SYN in SYN_RCVD gets the SYN+ACK once more and the wait starts anew; Java closes there, but its client never repeats the SYN. lostSynAck is compared up to the second SYN (JAVA_UNTIL); the rest is an engine test. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
269 lines
6.2 KiB
JSON
269 lines
6.2 KiB
JSON
{
|
|
"frames": {
|
|
"00000000-0000-0000-0000-000000000101": [
|
|
{
|
|
"time": 856,
|
|
"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": 858,
|
|
"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": 1086,
|
|
"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": 54938,
|
|
"destinationPort": 80,
|
|
"payload": null,
|
|
"tcpFlags": "S",
|
|
"sequence": 2000000,
|
|
"acknowledgement": 0
|
|
},
|
|
{
|
|
"time": 1088,
|
|
"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": 54938,
|
|
"payload": null,
|
|
"tcpFlags": "SA",
|
|
"sequence": 1000000,
|
|
"acknowledgement": 2000001
|
|
},
|
|
{
|
|
"time": 1311,
|
|
"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": 54938,
|
|
"destinationPort": 80,
|
|
"payload": null,
|
|
"tcpFlags": "A",
|
|
"sequence": 2000001,
|
|
"acknowledgement": 1000001
|
|
},
|
|
{
|
|
"time": 1834,
|
|
"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": 54938,
|
|
"destinationPort": 80,
|
|
"payload": null,
|
|
"tcpFlags": "F",
|
|
"sequence": 2000001,
|
|
"acknowledgement": 0
|
|
},
|
|
{
|
|
"time": 1834,
|
|
"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": 54938,
|
|
"payload": null,
|
|
"tcpFlags": "A",
|
|
"sequence": 1000001,
|
|
"acknowledgement": 2000002
|
|
},
|
|
{
|
|
"time": 1890,
|
|
"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": 54938,
|
|
"payload": null,
|
|
"tcpFlags": "F",
|
|
"sequence": 1000001,
|
|
"acknowledgement": 0
|
|
}
|
|
],
|
|
"00000000-0000-0000-0000-000000000102": [
|
|
{
|
|
"time": 734,
|
|
"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": 970,
|
|
"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": 972,
|
|
"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": 54938,
|
|
"destinationPort": 80,
|
|
"payload": null,
|
|
"tcpFlags": "S",
|
|
"sequence": 2000000,
|
|
"acknowledgement": 0
|
|
},
|
|
{
|
|
"time": 1199,
|
|
"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": 54938,
|
|
"payload": null,
|
|
"tcpFlags": "SA",
|
|
"sequence": 1000000,
|
|
"acknowledgement": 2000001
|
|
},
|
|
{
|
|
"time": 1200,
|
|
"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": 54938,
|
|
"destinationPort": 80,
|
|
"payload": null,
|
|
"tcpFlags": "A",
|
|
"sequence": 2000001,
|
|
"acknowledgement": 1000001
|
|
},
|
|
{
|
|
"time": 1722,
|
|
"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": 54938,
|
|
"destinationPort": 80,
|
|
"payload": null,
|
|
"tcpFlags": "F",
|
|
"sequence": 2000001,
|
|
"acknowledgement": 0
|
|
},
|
|
{
|
|
"time": 1946,
|
|
"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": 54938,
|
|
"payload": null,
|
|
"tcpFlags": "A",
|
|
"sequence": 1000001,
|
|
"acknowledgement": 2000002
|
|
}
|
|
],
|
|
"00000000-0000-0000-0000-000000000103": [
|
|
{
|
|
"time": 856,
|
|
"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": [
|
|
[
|
|
219,
|
|
"server oeffnen called"
|
|
],
|
|
[
|
|
720,
|
|
"client verbinden called"
|
|
],
|
|
[
|
|
1221,
|
|
"client verbinden returned"
|
|
],
|
|
[
|
|
1321,
|
|
"server oeffnen returned"
|
|
],
|
|
[
|
|
1721,
|
|
"client schliessen called"
|
|
],
|
|
[
|
|
1721,
|
|
"client schliessen returned"
|
|
],
|
|
[
|
|
1890,
|
|
"lost FIN"
|
|
]
|
|
],
|
|
"states": {
|
|
"client": [
|
|
[
|
|
720,
|
|
"CLOSED"
|
|
],
|
|
[
|
|
731,
|
|
"SYN_SENT"
|
|
],
|
|
[
|
|
1201,
|
|
"ESTABLISHED"
|
|
],
|
|
[
|
|
1724,
|
|
"FIN_WAIT_1"
|
|
],
|
|
[
|
|
1947,
|
|
"FIN_WAIT_2"
|
|
]
|
|
],
|
|
"server": [
|
|
[
|
|
1322,
|
|
"ESTABLISHED"
|
|
],
|
|
[
|
|
1835,
|
|
"LAST_ACK"
|
|
]
|
|
]
|
|
}
|
|
}
|