В настоящее время я делаю это, чтобы прочитать файл захвата сети:
tshark -r myfile icmp
Он печатает только ICMP-пакеты, которые являются протоколом поверх IP (не UDP или TCP).
Но myfile
- это большой файл с большим количеством HTTP-трафика. Я обнаружил, что tshark
требуется много времени для обработки этого файла, и причина в том, что он полностью обрабатывает все пакеты TCP, даже разбирает данные HTTP. Я понял это, потому что он печатает сообщения об ошибках, связанных с рассечением HTTP.
Так как я знаю, что ICMP-пакеты, которые я хочу, никогда не находятся внутри TCP, я попробовал это:
tshark -r myfile 'not tcp and icmp'
tshark -r myfile -2 -R 'not tcp' icmp
Но tshark все еще анализирует HTTP-пакеты (опять же, я знаю это, потому что вижу сообщения об ошибках HTTP-анализатора).
Я хочу сэкономить время (и избежать сбоев из-за ошибок анализатора), не разбирая протоколы более высокого уровня, когда протокол более низкого уровня не совпадает.
Я знаю, что мог бы разделить мои файлы захвата по протоколу, но это не так практично, потому что точные вещи, на которые я хочу посмотреть, не известны заранее.
Я также попробовал опцию -O
для включения определенных диссекторов, но это заставляет tshark
печатать полные многострочные детали для каждого пакета, что не является тем, что я хочу.
Как я могу заставить tshark
пропускать рассечение пакетов от определенных протоколов нижнего уровня?
Я использую tshark 1.10.6, но я мог бы использовать более новые версии, если это необходимо.