LINUX.ORG.RU

Карта трафика


0

0

Доброго времени суток всем.

Есть трафик, снятый снифером и лежащий на диске в виде сетевых пакетов
(файлы по 600 Мб).
Надо составить карту трафика, то есть какие адреса/протоколы/порты
взаимодействовали (кто куда ходил и в каком обьеме). Пробовал
Wireshark-ом (бывший Ethereal), но он сжирает всю память и вылетает с
ошибкой о нехватке памяти. Правда карта у него понравилась.
Написал скрипт на perl-е, который все делает, но он один файл 600 Мб
парсит 18 часов, а таких файлов штук 20. Это неприемлемо.
Есть ли какие-то готовые инструменты, которые умеют это делать быстро?
Wireshark, помню, быстро делал - за какие-то минуты 26 процентов от
600 Мб проглатывал, но вылетал.
anonymous

А если памяти в 4 раза больше поставить для Wiresharkа?

YOGHYK
()
Ответ на: комментарий от scaldov

>А если памяти в 4 раза больше поставить для Wiresharkа?

Дело не в количестве памяти, а в некорректной работе программы с памятью. Сколько памяти не ставь - он все равно всю ее сожрет и выдаст
ошибку.

>ответ очевиден - напиши теперь на Си.

Понятно, что и на С можно написать, и еще на чем-нибудь. Только все это
занимает неслабое время, а надо быстро. Вот я и спрашиваю про готовые 
решения. Зачем тратить время на изобретение велосипеда, если его уже
сделали до меня?

anonymous
()
Ответ на: комментарий от teferiincub

очень сильно это не поможет, хотя да, должен признать, замена в одном из скриптов /^(...)/ на substr() *на глаз* заметно скрипт ускорила (тестов не делал).

berrywizard ★★★★★
()
Ответ на: комментарий от berrywizard

18 часов на 600 МБ это даже для перла как-то медленно. Скорее всего там  косяк. 

например, я как-то читал мегабайт HTML-я в память путем 

my $text='';
while (<>) {
    $text = $text . $_;
};

время работы такого скрипта -- квадрат размера файла. 

lodin ★★★★
()
Ответ на: комментарий от lodin

Кстати, может в этом затык?:
файл пакетов читается tcpdump-ом и в виде текстовых строк передается
скрипту:
/usr/sbin/tcpdump -r file_name -n -v | Script.pl
Возможно просто tcpdump медленно читает. Тогда как его убыстрить?
Если это вообще возможно.

anonymous
()
Ответ на: комментарий от scaldov

Ну, кстати да. Главное не поставить time на оба процесса сразу, а то непонятно будет, который вывод к чему относится.

lodin ★★★★
()
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.