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?
Respuestas:
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:
Aquí hay una discusión de la lista de usuarios de wireshark sobre lo mismo .
fuente