Je fais du trafic réseau et je souhaite diviser chaque session TCP en une série de demandes et de réponses (les protocoles avec lesquels je travaille fonctionnent de cette façon, comme HTTP ou SSL).
J'avais une supposition simple (ignorer les paquets en panne et renvoyés) - étant donné un bloc de données qui doit être envoyé, il sera envoyé en utilisant les plus grands paquets possibles et le dernier paquet sera soit plus petit que la taille maximale, soit suivi par un paquet de l'autre côté (en ignorant les paquets vides ACK). Donc, dans une session HTTP, je m'attends à voir quelque chose comme (encore une fois, sans tenir compte des acks) -
Paquet 1 - Demande "Get ..."
Paquet 2 - Response, taille 1434
Paquet 3 - Response, taille 1434
Paquet 4 - Response, taille 1434
Paquet 5 - Response, taille 500
C'est ce que j'obtiens sur la plupart des séances, mais il y a au moins une occasion que j'ai vue qui ressemblait à
Paquet 1 - Demande "Get ..."
Paquet 2 - Response, taille 1434
Paquet 3 - Réponse, taille 1080
Paquet 4 - Response, taille 1434
Paquet 5 - Response, taille 500
Pas de retransmissions, de paquets en panne ici ou pas de retards exceptionnels sur le serveur.
Je veux savoir - qu'est-ce qui peut provoquer cela et quand cela se produira-t-il? À quel point mon hypothèse est-elle fausse?
METTRE À JOUR
Je mets un exemple de fichier pcap ici
MISE À JOUR 2
Y compris un tshark
vidage avec les champs pertinents ...
$ 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