Пожалуйста, найдите небольшой файл pcap здесь, иллюстрирующий мою проблему.
У меня есть трехстороннее рукопожатие TCP, а затем два входа FIX. (FIX - это протокол, используемый в торговле.) Первый вход в FIX (кадр 4) интерпретируется и анализируется WireShark очень хорошо, а второй вход в систему (кадр 6) интерпретируется как a TCP segment of a reassembled PDU
.
Однако кадр 6 не является сегментом TCP повторно собранного PDU. Он содержит полный PDU TCP, который должен интерпретироваться и анализироваться как вход FIX. Я проверил, что порядковые номера, номера ACK, общая длина IP и т. Д. Все в порядке.
Почему кадр 6 интерпретируется как сегмент TCP повторно собранного PDU?
Ответы:
Нумерация хостов 0,76 и 0,67 немного ошеломляет.
Wireshark называет кадр 6 «TCP-сегментом повторно собранного PDU», потому что ваша реализация TCP 10.10.10.67 предпочитает отправлять ACK без полезной нагрузки («голый» ACK), а не включать полезную нагрузку, отправляемую в кадре 6 с ACK в кадре 5. (Это поведение, зависящее от стека OS / IP.) Это, в свою очередь, вызывает поведение в диссекторе TCP для передачи полезных нагрузок от нескольких сегментов TCP к диссектору FIX. По какой-то причине диссектор FIX не интерпретирует кадр 6.
Если вы отключите опцию «Разрешить субдиссектору десегментировать потоки TCP» в настройках диссектора TCP, вы обнаружите, что Wireshark интерпретирует это по-другому:
Вот некоторые обсуждения из списка пользователей Wireshark о том же .
источник