¿Por qué WireShark cree que este marco es un segmento TCP de una PDU reensamblada?

9

Por favor, encontrar un pequeño archivo pcap aquí ilustrar mi problema.

Tengo un protocolo de enlace TCP de tres vías, seguido de dos inicios de sesión FIX. (FIX es un protocolo utilizado en el comercio). El primer inicio de sesión FIX (marco 4) es interpretado y analizado perfectamente por WireShark, pero el segundo inicio de sesión (marco 6) se interpreta como a TCP segment of a reassembled PDU.

Sin embargo, la trama 6 no es un segmento TCP de una PDU reensamblada. Contiene una PDU TCP completa que debe interpretarse y analizarse como un inicio de sesión FIX. He comprobado que los números de secuencia, los números ACK, las longitudes totales de IP, etc., están todos bien.

¿Por qué se interpreta el marco 6 como un segmento TCP de una PDU reensamblada?

Randomblue
fuente
¿Hay algún problema que tengas debido a esto?
Nathan C
1
Sí, estoy generando todos estos cuadros, y claramente hay algo mal con lo que hice.
Randomblue
1
Sugeriría encarecidamente incluir los detalles más destacados de los cuadros 4 y 6 (y quizás cuadros adyacentes) en su pregunta. El enlace al archivo pcap es excelente, pero solo una pequeña minoría de lectores se inclinará a descargarlo y verlo.
Skyhawk
A primera vista, nada que pueda encontrar. El segmento 4 no está fragmentado. El marco 6 es del destino y usted dice que este marco 6 debe interpretarse como la respuesta del servidor del marco 4. es decir, el inicio de sesión FIX debe hacerse allí. Derecha.
Soham Chakraborty

Respuestas:

15

Tener los hosts numerados .76 y .67 es un poco aturdidor.

Wireshark está llamando a la trama 6 un "segmento TCP de una PDU reensamblada" porque su implementación TCP en 10.10.10.67 está optando por enviar un ACK sin carga útil (un ACK "desnudo") en lugar de incluir la carga útil que se envía en la trama 6 con el ACK en la trama 5. (Este es un comportamiento dependiente de la pila OS / IP). Esto, a su vez, desencadena un comportamiento en el disector TCP para transferir las cargas de los múltiples segmentos TCP al disector FIX. Por alguna razón, el disector FIX no está interpretando el marco 6.

Si desactiva la opción "Permitir que el subdissector desegrese las secuencias TCP" en las opciones del disector TCP, encontrará que Wireshark interpreta esto de manera diferente:

Captura de pantalla de Wireshark

Aquí hay una discusión de la lista de usuarios de wireshark sobre lo mismo .

Evan Anderson
fuente