NetTraceдокументация

Содержимое потока

Данные TCP- или UDP-потока целиком, в порядке передачи, без заголовков пакетов.

Примечание. Функция появится в версии 1.1.0. В версии 1.0.1 её ещё нет.

Панель собирает полезную нагрузку всех пакетов потока в один непрерывный текст — так, как его видели приложения на обеих сторонах.

Содержимое HTTP-потока: запрос клиента и ответ сервера HTTP-поток: синим — запрос клиента, зелёным с отступом — ответ сервера.

Открыть

  • Контекстное меню пакета или поля → «Содержимое потока»;
  • кнопка «Содержимое» в карточке потока;
  • Анализ → Содержимое потока;
  • контекстное меню в панелях «Потоки» и «Соединения».

Что делает сборка

TCP-сегменты приходят не обязательно по порядку и могут повторяться. NetTrace восстанавливает исходный поток байт:

Ситуация Что происходит
Повторная передача Дубликат отбрасывается
Сегменты перекрываются Уже показанные байты не повторяются
Сегмент пришёл раньше предыдущего Ждёт своей очереди и встаёт на место
Сегмент потерян На его месте строка [потеряно N: эти сегменты не попали в захват]
Пакет обрезан длиной захвата Строка [не захвачено N: пакет обрезан длиной захвата]

Для UDP датаграммы показываются по порядку появления, как есть.

Управление

Элемент Действие
Оба направления / Клиент → сервер / Сервер → клиент Что показывать
Текст / Hex Вид данных
Значок копирования Копирует всё загруженное в буфер обмена
Сохранить… Записывает данные потока в файл
Щелчок по строке Выбирает в списке пакет, из которого эта строка

Направления различаются цветом и отступом: строки сервера сдвинуты вправо. Подсказка при наведении показывает номер пакета и направление.

Текстовый вид

Байты показываются как текст в кодировке UTF-8. Всё, что не является видимым символом, заменяется обозначением:

В данных На экране
Управляющий байт \x00, \x1b
Байт, недопустимый в UTF-8 \xff
Одиночный возврат каретки \r
Невидимые и переворачивающие текст символы Unicode \u{202E}, \u{200B}

Это защита от подмены: данные из сети не могут выглядеть на экране иначе, чем они есть на самом деле.

Строки длиннее 256 символов переносятся.

Hex-вид

Тот же поток в hex-виде

По 16 байт в строке: смещение, байты, ASCII. Смещение — позиция в показанных данных, а не в пакете.

Сохранение в файл

«Сохранить…» записывает данные выбранного направления в двоичный файл — без заголовков пакетов, в порядке передачи. Так можно извлечь переданный файл или тело ответа.

  • Сохранение доступно после окончания индексирования.
  • Потерянные и обрезанные участки в файл не попадают. Если такие были, программа сообщит, сколько байт отсутствует: файл в этом случае неполный.

Большие потоки

Панель загружает поток частями по мере прокрутки и держит в памяти не больше 8 МБ или 200 тысяч строк. Когда предел достигнут:

  • Следующая часть — показать данные дальше;
  • С начала — вернуться к началу потока.

Чтобы получить поток целиком, сохраните его в файл — на сохранение предел не действует.

Во время живого захвата

Панель дополняется по мере поступления пакетов. Внизу видно «Ожидание новых данных захвата…», пока новых пакетов потока нет.

Чего панель не делает

  • Не расшифровывает TLS: для зашифрованных потоков видны байты записей TLS, а не данные приложения.
  • Не распаковывает gzip и не разбирает HTTP chunked — показываются байты как они переданы.
  • Не выполняет и не открывает содержимое.