Perché WireShark pensa che questo frame sia un segmento TCP di una PDU riassemblata


9

Si prega di trovare un piccolo file pcap qui che illustra il mio problema.

Ho un handshake TCP a tre vie, seguito da due accessi FIX. (FIX è un protocollo utilizzato nel trading.) Il primo accesso FIX (frame 4) viene interpretato e analizzato correttamente da WireShark, ma il secondo accesso (frame 6) viene interpretato come a TCP segment of a reassembled PDU.

Tuttavia, il frame 6 non è un segmento TCP di una PDU riassemblata. Contiene una PDU TCP completa che deve essere interpretata e analizzata come accesso FIX. Ho verificato che i numeri di sequenza, i numeri ACK, le lunghezze totali IP, ecc. Siano tutti validi.

Perché il frame 6 viene interpretato come un segmento TCP di una PDU riassemblata?


C'è un problema che stai riscontrando a causa di questo?
Nathan C,

1
Sì, sto generando tutti questi frame e c'è chiaramente qualcosa di sbagliato in quello che ho fatto.
Randomblue,

1
Suggerirei vivamente di includere i dettagli salienti dei frame 4 e 6 (e forse dei frame adiacenti) nella tua domanda. Il collegamento al file pcap è eccezionale, ma solo una piccola minoranza di lettori sarà incline a scaricarlo e visualizzarlo.
Skyhawk,

A prima vista, non riesco a trovare nulla. Il segmento 4 non è frammentato. Il frame 6 proviene dalla destinazione e stai dicendo che questo frame 6 dovrebbe essere interpretato come la risposta del server del frame 4. vale a dire che l'accesso FIX dovrebbe essere fatto lì. destra.
Soham Chakraborty,

Risposte:


15

Avere gli host numerati .76 e .67 è un po 'assordante.

Wireshark chiama il frame 6 un "segmento TCP di una PDU riassemblata" perché l'implementazione TCP il 10.10.10.67 ha scelto di inviare un ACK senza payload (un ACK "nudo") anziché includere il payload che viene inviato nel frame 6 con ACK nel frame 5. (Questo è un comportamento dipendente dallo stack OS / IP.) Ciò, a sua volta, attiva un comportamento nel dissettore TCP per trasferire i payload dai più segmenti TCP al dissettore FIX. Per qualsiasi motivo, il dissettore FIX non sta interpretando il frame 6.

Se si disattiva l'opzione "Consenti al subdissector di desegmentare i flussi TCP" nelle opzioni del dissettore TCP, Wireshark lo interpreta in modo diverso:

Schermata di Wireshark

Ecco alcune discussioni dall'elenco degli utenti di WireShark sulla stessa cosa .

Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.