Назад | Перейти на главную страницу

Как эффективно переупорядочить пакеты в файлах PCAP на основе отметки времени?

У меня есть файл PCAP, содержащий много пакетов. Однако они не в порядке на основе метки времени (на самом деле она рандомизирована). Как лучше всего эффективно сортировать пакеты PCAP по метке времени для последующего воспроизведения?

В настоящее время я делаю это через Scapy и Python, как предлагается Вот. Это работает, но очень медленно. Кроме того, он полностью загружает дамп в память, где фактически достаточно временных меток. Я знаю, что сортировка - дорогостоящая операция, но этот метод занимает почти 4 минуты для файла размером 344 МБ, содержащего 778589 пакетов, на современном Core i7.

Я также знаю что Wireshark должен включить "reordercap", однако этот инструмент не включен в текущие сборки Debian и Ubuntu. Прежде чем пытаться собрать Wireshark из исходников, возможно, кто-то имеет опыт работы с этим инструментом и может предложить, какой будет производительность.

Итак, возвращаясь к вопросу: как эффективно сортировать пакеты в файлах PCAP на основе их отметок времени? Память не является ограничением, так как PCAP не будут больше 2 ГБ и доступно достаточно оперативной памяти, но для меня важно время выполнения. Он должен завершиться как можно быстрее.

Заранее спасибо!

У меня была такая же проблема, и на самом деле мой был хуже, потому что мой файл pcap был намного больше вашего, поэтому мне нужен более эффективный способ сортировки его пакетов. я нахожу libtrace который разработан на языке C как хорошее решение. К сожалению, прямых инструментов для выполнения этой задачи нет, но его инструмент tracemerge объединяет два (или более) файла и сортирует пакет. Таким образом, вы должны сначала разделить файл с помощью tracesplit, а затем объединить их с помощью tracemerge.