S'il vous plaît trouver un petit fichier pcap ici illustrant mon problème.
J'ai une négociation TCP à trois, suivie de deux ouvertures de session FIX. (FIX est un protocole utilisé dans le trading.) La première connexion FIX (trame 4) est interprétée et analysée très bien par WireShark, mais la deuxième connexion (trame 6) est interprétée comme un TCP segment of a reassembled PDU
.
Cependant, la trame 6 n'est pas un segment TCP d'une PDU réassemblée. Il contient une PDU TCP complète qui doit être interprétée et analysée comme une ouverture de session FIX. J'ai vérifié que les numéros de séquence, les numéros ACK, les longueurs totales IP, etc. sont tous bons.
Pourquoi la trame 6 est-elle interprétée comme un segment TCP d'une PDU réassemblée?
Réponses:
Avoir les hôtes numérotés 0,76 et 0,67 est un peu ahurissant.
Wireshark appelle la trame 6 un "segment TCP d'une PDU réassemblée" car votre implémentation TCP le 10.10.10.67 choisit d'envoyer un ACK sans charge utile (un ACK "nu") plutôt que d'inclure la charge utile qui est envoyée dans la trame 6. avec l'ACK dans la trame 5. (Il s'agit d'un comportement dépendant de la pile OS / IP.) Ceci, à son tour, déclenche un comportement dans le dissecteur TCP pour transférer les charges utiles des multiples segments TCP vers le dissecteur FIX. Pour une raison quelconque, le dissecteur FIX n'interprète pas l'image 6.
Si vous désactivez l'option "Autoriser le sous-dissecteur à décomposer les flux TCP" dans les options du dissecteur TCP, vous constaterez que Wireshark interprète cela différemment:
Voici une discussion de la liste des utilisateurs de wirehark sur la même chose .
la source