Почему WireShark считает, что этот кадр является сегментом TCP пересобранного PDU

9

Пожалуйста, найдите небольшой файл 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?

Randomblue
источник
Есть ли проблема, которую вы испытываете из-за этого?
Натан C
1
Да, я генерирую все эти кадры, и с тем, что я сделал, явно что-то не так.
Randomblue
1
Я настоятельно рекомендую включить в ваш вопрос существенные детали кадров 4 и 6 (и, возможно, смежные кадры). Ссылка на файл pcap отличная, но только крошечное меньшинство читателей будет склонно реально загрузить и просмотреть его.
Skyhawk
На первый взгляд ничего не могу найти. Сегмент 4 не фрагментирован. Кадр 6 от пункта назначения, и вы говорите, что этот кадр 6 следует интерпретировать как ответ сервера на кадр 4. т.е. вход в систему FIX должен выполняться там. правильно.
Сохам Чакраборти

Ответы:

15

Нумерация хостов 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

Вот некоторые обсуждения из списка пользователей Wireshark о том же .

Эван Андерсон
источник