Encontre um pequeno arquivo pcap aqui ilustrando meu problema.
Eu tenho um handshake TCP de três vias, seguido por dois logons FIX. (O FIX é um protocolo usado na negociação.) O primeiro logon do FIX (quadro 4) é interpretado e analisado muito bem pelo WireShark, mas o segundo logon (quadro 6) é interpretado como a TCP segment of a reassembled PDU
.
No entanto, o quadro 6 não é um segmento TCP de uma PDU remontada. Ele contém uma PDU TCP completa que deve ser interpretada e analisada como um logon FIX. Eu verifiquei se os números de sequência, números ACK, comprimentos totais de IP etc. são bons.
Por que o quadro 6 é interpretado como um segmento TCP de uma PDU remontada?
Respostas:
Ter os hosts numerados .76 e .67 é um pouco entorpecedor.
O Wireshark está chamando o quadro 6 de "segmento TCP de uma PDU remontada" porque sua implementação de TCP em 10.10.10.67 está optando por enviar uma ACK sem carga útil (uma ACK "nua") em vez de incluir a carga útil que é enviada no quadro 6 com o ACK no quadro 5. (Esse é um comportamento dependente da pilha do OS / IP.) Isso, por sua vez, desencadeia um comportamento no dissector TCP para entregar as cargas úteis dos vários segmentos TCP ao dissector FIX. Por qualquer motivo, o dissector FIX não está interpretando o quadro 6.
Se você desativar a opção "Permitir que o subdissetor desagregue os fluxos TCP" nas opções do dissector TCP, verá que o Wireshark interpreta isso de maneira diferente:
Aqui está uma discussão da lista de usuários do wireshark sobre a mesma coisa .
fonte