Как изменить диапазон меток времени файла .pcap?

Проблема

Мне нужно изменить файл .pcap, захваченный за 5 минут, чтобы он имитировал файл .pcap, захваченный за 20 минут. Проблема в том, что я не знаю, как это сделать.

Пример

Чтобы проиллюстрировать проблему, предположим, что у меня есть файл .pcap с 4 захваченными пакетами p1-p4 и t в качестве времени начала, так что:

  • p1 отправляется в t+ 0 минут
  • p2 отправляется в t+ 1 мин.
  • p3 отправляется в t+ 2 минуты
  • p4 отправляется в t+ 3 минуты

Я хочу, чтобы полученный файл .pcap содержал те же четыре пакета, но с отметками времени, масштабированными (от 5 минут до 20 минут), чтобы они представляли следующее:

  • p1 отправляется в t+ 0 минут
  • p2 отправляется в t+ 4 минуты
  • p3 отправляется в t+ 8 минут
  • p4 отправляется в t+ 12 минут

Пробное решение(я)

  • editcap, однако единственный вариант, который я смог здесь найти, — настроить все временные метки на установленное значение с помощью параметра -t.

Задний план

Я использую tcpreplay для воспроизведения сценария, в котором пользователь просматривает веб-страницу. Я одновременно ввожу несколько пакетов, которые зависят от файла .pcap, который я воспроизвел, т. е. пакеты вводятся путем мониторинга воспроизводимого трафика в реальном времени и последующей корректировки отправляемых пакетов. Вся эта трассировка трафика, то есть как воспроизведенный трафик, так и введенные пакеты, перехватывается с использованием tcpdump. Поскольку есть много больших файлов .pcap, которые я хочу воспроизвести, я использую параметр tcpreplay --multiplier, чтобы ускорить процесс. Однако это означает, что окончательный захват представляет собой сжатую версию исходного файла .pcap. Я хотел бы «растянуть» вновь созданный .pcap, чтобы он был того же размера, что и оригинал.


person Thijs van Ede    schedule 17.08.2017    source источник


Ответы (1)


Этого можно добиться с помощью Wireshark, используя его функцию "Time Shift".

Предполагая, что отметка времени для пакета 1 равна 2017-08-17 12:00:00.000000, выберите пакет 1, затем выберите "Edit -> Time Shift..." и установите время для пакета 1 на 2017-08-17 12:00:00.000000 (т. е. не изменяйте это время) . Щелкните поле рядом с "... затем установите пакет" и введите 2 в качестве номера пакета и 2017-08-17 12:04:00.000000 в качестве метки времени. Вы заметите, что он также указывает "и экстраполировать время для всех остальных пакетов", что вам и нужно. Нажмите Применить.

На этом этапе временные метки должны быть скорректированы в соответствии с вашими пожеланиями, хотя компонент доли секунды может оказаться не совсем одинаковым для всех пакетов, и по какой-то причине даже компонент доли секунды пакета 1 не точно то, что было указано изначально. Если вы действительно хотите сохранить исходный компонент доли секунды, вам придется настраивать по одному пакету за раз. Учитывая, что нужно настроить только 4 пакета, это должно быть осуществимо. Я мог бы предложить заполнить отчет об ошибке Wireshark для ошибочной корректировки доли секунды.

person Christopher Maynard    schedule 17.08.2017