Я использую tshark для вывода удобочитаемого текста из TCP-пакетов. Я делаю это с полем data.text. Например, мои переключатели tshark.exe включают:
-o data.show_as_text:TRUE -T fields -e data.text
Это прекрасно работает для большинства пакетов. Проблема возникает, когда пакет повторно передается отправителем. В этих случаях data.text всегда пуст.
При анализе трафика в Wireshark я вижу, что повторно переданные кадры TCP (они помечены как [Повторная передача TCP] и содержат примечание «Этот кадр является (предположительно) повторной передачей») вообще не включают поле данных — Wireshark не реконструирует это (хотя у меня включена опция анализа данных как текста). Вместо этого эти кадры имеют поле «Повторно переданные данные TCP-сегмента» (tcp.segment_data), которое не содержит проанализированного текста.
Это ошибка с tshark/wireshark? Почему для этих пакетов не создается поле данных? Есть ли другой способ получить текст из повторно переданных TCP-пакетов, или это мой единственный вариант вручную расшифровать шестнадцатеричный код tcp.segment_data для повторно переданных пакетов?
TCP-соединение, которое я отслеживаю, часто повторно передает пакеты, поэтому в данный момент мне не хватает важных данных.