wireshark et tcpdump -r: tailles de fenêtres tcp étranges

Je saisis le trafic http avec tcpdump et je m’intéresse au démarrage lent de TCP et à la manière dont les tailles de fenêtre augmentent:

$ sudo tcpdump -i eth1 -w wget++.tcpdump tcp and port 80 

Lorsque je visualise le fichier de vidage avec Wireshark, la progression des tailles de fenêtre semble normale, à savoir 5840, 5888, 5888, 8576, 11264, etc.

Mais quand je regarde le fichier de vidage via

 $ tcpdump -r wget++.tcpdump -tnN | less 

Je reçois ce qui semble être des tailles de fenêtres insensées (adresses IP omises pour des raisons de concision):

 : S 1069713761:1069713761(0) win 5840  : S 1198053215:1198053215(0) ack 1069713762 win 5672  : . ack 1 win 46  : . 1:1419(1418) ack 1 win 46  : P 1419:2002(583) ack 1 win 46  : . ack 1419 win 133  : . ack 2002 win 178  

Est-il possible d’obtenir des tailles de fenêtre normales / absolues sur la ligne de commande?

Les dimensions des fenêtres sont correctes – elles ne sont pas calibrées.

L’initiateur de la connexion a défini un wscale (facteur d’échelle de la fenêtre) de 7, de sorte que ses valeurs de win suivantes doivent être multipliées par 128 pour obtenir la taille de la fenêtre en octets. Ainsi, le win 46 indique une fenêtre de 5888 octets.

Le destinataire de la connexion a défini une wscale de 6, de sorte que ses valeurs de win doivent être multipliées par 64. Ainsi, le win 133 indique une fenêtre de 8512 octets et le win 178 indique 11392 octets.

De plus, si l’outil (wireshark ou tcpdump, ça n’a pas d’importance) ne voit pas le syn, il doit imprimer la valeur non calibrée, ce qui peut vous tromper