Ich bin im Netzwerkverkehr und möchte jede TCP-Sitzung in eine Reihe von Anforderungen und Antworten aufteilen (die Protokolle, mit denen ich arbeite, funktionieren auf diese Weise, z. B. HTTP oder SSL).
Ich hatte eine einfache Annahme (Ignorieren von nicht in der richtigen Reihenfolge befindlichen und erneut gesendeten Paketen): Angesichts eines Datenblocks, der gesendet werden muss, werden die größtmöglichen Pakete gesendet, und das letzte Paket ist entweder kleiner als die maximale Größe oder wird befolgt durch ein Paket von der anderen Seite (ignoriert ACK leere Pakete). In einer HTTP-Sitzung erwarte ich also etwas wie (wieder ohne Rücksicht auf Bestätigungen) -
Paket 1 - Anfrage "Get ..."
Paket 2 - Antwort, Größe 1434
Paket 3 - Antwort, Größe 1434
Paket 4 - Antwort, Größe 1434
Paket 5 - Antwort, Größe 500
Welches ist, was ich auf den meisten Sitzungen bekomme, aber es gibt mindestens eine Gelegenheit, die ich sah, die aussah
Paket 1 - Anfrage "Get ..."
Paket 2 - Antwort, Größe 1434
Paket 3 - Antwort, Größe 1080
Paket 4 - Antwort, Größe 1434
Paket 5 - Antwort, Größe 500
Keine erneuten Übertragungen, nicht ordnungsgemäße Pakete oder keine außergewöhnlichen Verzögerungen auf dem Server.
Ich möchte wissen - was kann das verursachen und wann wird es auftreten? Wie falsch ist meine Annahme?
AKTUALISIEREN
Ich habe ein Beispiel pcap - Datei hier
UPDATE 2
Einschließlich eines tshark
Dumps mit relevanten Feldern ...
$ tshark -r http_1082.pcap -T fields -e frame.number -e frame.len \
-e ip.src -e ip.dst -e tcp.flags.push -e http.request.method \
-e http.request.uri -e http.response.code | head -n 47
1 66 192.168.1.103 206.33.49.126 0
2 62 206.33.49.126 192.168.1.103 0
3 64 192.168.1.103 206.33.49.126 0
4 411 192.168.1.103 206.33.49.126 1 GET /money/.element/script/3.0/video/xmp/xmp_playlistapi.js
5 54 206.33.49.126 192.168.1.103 0
6 1434 206.33.49.126 192.168.1.103 0
7 1434 206.33.49.126 192.168.1.103 0
8 64 192.168.1.103 206.33.49.126 0
9 1434 206.33.49.126 192.168.1.103 0
10 1434 206.33.49.126 192.168.1.103 0
11 1434 206.33.49.126 192.168.1.103 0
12 64 192.168.1.103 206.33.49.126 0
13 1434 206.33.49.126 192.168.1.103 0
14 1434 206.33.49.126 192.168.1.103 0
15 1434 206.33.49.126 192.168.1.103 0
16 1434 206.33.49.126 192.168.1.103 0
17 64 192.168.1.103 206.33.49.126 0
18 1434 206.33.49.126 192.168.1.103 0
19 1434 206.33.49.126 192.168.1.103 0
20 1434 206.33.49.126 192.168.1.103 0
21 1434 206.33.49.126 192.168.1.103 0
22 1434 206.33.49.126 192.168.1.103 0
23 64 192.168.1.103 206.33.49.126 0
24 1434 206.33.49.126 192.168.1.103 0
25 1434 206.33.49.126 192.168.1.103 0
26 1434 206.33.49.126 192.168.1.103 0
27 1434 206.33.49.126 192.168.1.103 0
28 1434 206.33.49.126 192.168.1.103 0
29 1434 206.33.49.126 192.168.1.103 0
30 64 192.168.1.103 206.33.49.126 0
31 1434 206.33.49.126 192.168.1.103 0
32 1434 206.33.49.126 192.168.1.103 0
33 1434 206.33.49.126 192.168.1.103 0
34 1082 206.33.49.126 192.168.1.103 1 <------ Packet in question
35 1434 206.33.49.126 192.168.1.103 0
36 1434 206.33.49.126 192.168.1.103 0
37 1434 206.33.49.126 192.168.1.103 0
38 64 192.168.1.103 206.33.49.126 0
39 1434 206.33.49.126 192.168.1.103 0
40 1434 206.33.49.126 192.168.1.103 0
41 1434 206.33.49.126 192.168.1.103 0
42 1434 206.33.49.126 192.168.1.103 0
43 1434 206.33.49.126 192.168.1.103 0
44 1434 206.33.49.126 192.168.1.103 0
45 1434 206.33.49.126 192.168.1.103 0
46 626 206.33.49.126 192.168.1.103 1 200
47 64 192.168.1.103 206.33.49.126 0