1

У меня есть pcap трафика SCTP и предложение фильтра, которое соответствует полезной нагрузке в определенных пакетах. Я хочу посчитать, сколько таких полезных нагрузок существует. Однако некоторые пакеты содержат несколько полезных нагрузок (алгоритм Nagle), поэтому они могут соответствовать фильтру дважды или более. Поэтому я получаю только нижнюю границу от фильтрации, затем проверяю количество совпадающих пакетов.

Есть ли способ в Wireshark подсчитать общее количество совпадений фильтра, а не количество пакетов, которые соответствуют фильтру?

1 ответ1

1

ОБНОВЛЕНИЕ: учитывая выражение фильтра, представленное ниже, а именно s1ap.procedureCode eq 9 , решение CLI, вероятно, должно быть изменено примерно так:

tshark -r file.pcap -Y "s1ap.procedureCode eq 9" -T fields -e s1ap.procedureCode | sed 's/,/\n/g' | grep "^9" | wc -l

По grep ИНГ для 9 конкретно, не считать строки , в которых s1ap.procedureCode содержит другие значения , кроме 9 в том же пакете, но вы до сих пор сосчитать все вхождения 9, даже если более чем один появляется в том же пакете.

И в этом случае я не думаю, что метод I/O Graph будет работать надежно, потому что вы можете считать только поля, но вы хотите считать поля только для определенных значений поля.

ОРИГИНАЛЬНЫЙ ответ следует ниже, где у меня не было информации о желаемом выражении фильтра отображения.


Если ваш SCTP-фильтр представляет собой поле SCTP, то для этого проще всего воспользоваться инструментами командной строки, такими как tshark, sed и wc. Например:

tshark -r file.pcap -Y "sctp.filter" -T fields -e frame.number -e sctp.filter | sed 's/,/\n/g' | wc -l

ПРИМЕЧАНИЕ. Замените sctp.filter на выбранный вами фильтр дисплея SCTP.

Если вы действительно хотите использовать Wireshark, то вы можете сделать это с помощью графика ввода / вывода, но IMO, это так же хорошо, как решение CLI. Для моего теста вот что я сделал, чтобы получить тот же результат, что и ответ, который я получил выше:

Из "Статистика -> График ввода / вывода -> '+':

  1. Введите произвольное имя для вашего графика
  2. Введите ваш фильтр отображения
  3. Измените ось Y на « COUNT FIELDS (Y Field) »
  4. Введите свой фильтр дисплея снова в поле Y
  5. Обязательно включите свой график с галочкой
  6. Отключить все остальные графики
  7. Установите интервал до 10 мин (максимум)
  8. Выберите Копировать
  9. Вставить данные в программу электронных таблиц

Если продолжительность ваших пакетов меньше 10 минут, у вас будет заголовок и одна запись, которая будет числом вхождений вашего фильтра, независимо от количества пакетов. Если продолжительность ваших пакетов превышает 10 минут, вам нужно будет суммировать вхождения, чтобы получить общую сумму.

Наконец, если ваш фильтр SCTP - это не просто поле SCTP, а более сложная конструкция, то я не уверен, как это решить, но размещение вашего точного фильтра может помочь мне (или кому-то еще) найти решение.

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .