Перейти к содержимому
Калькуляторы

Специфичная задача для сниффера

Добрый день.

Задача. Снять сниффером на сервере отправляемый траффик. Снять на клиенте получаемый от сервера траффик, а затем сравнить их и понять сколько пакетов потеряно, сколько фрагментировано и т.п.

Понятно, что можно это сделать с помощью tcpdump, но уж очень проблематично, на мой взгляд. Может быть кто-нибудь знает более удобные утилиты для решения подобных задач. В идеале было видеть все изменения в реальном времени. Естественно основной интерес представляют *nix системы.

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

в wireshark что-то похожее было

Изменено пользователем XeonVs

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

 

wireshark - это ethereal для виндузятников, вообще-то

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

wireshark - это ethereal для виндузятников, вообще-то

И то, и другое есть как и под форточки, так и под никсы. В чём соль вашего высказывания?

Изменено пользователем qwertzy

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

>wireshark - это ethereal для виндузятников, вообще-то

 

эээ... вообще-то его просто переименовали(формально форкнули). Порт под винду тут ни при чём

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

Как эта функция называется в wireshark? Искал - ничего не нашел похожего.

Изменено пользователем mschedrin

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

tcpflow для снятия сессий может подойти лучше

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

Как эта функция называется в wireshark? Искал - ничего не нашел похожего.
Какая конкретно функция? Включаете сниффер - он начинает сниффить. Это то, что Вы просили. Или Вы чего-то недоговариваете? ;)

Чтобы несколько проще было ориентироваться в сравнении траффиков - убедитесь, что время на клиенте и сервере засинхронизировано.

Ну, или и там, и там - tcpdump в текстовый файл и потом каким-нибудь diff-ом сравнивать. Это, конечно, будет не real-time...

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

tcpflow для снятия сессий может подойти лучше
Нужно сниффить udp траффик. С ним tcpflow работает? Судя по названию - нет :)

 

Как эта функция называется в wireshark? Искал - ничего не нашел похожего.
Какая конкретно функция? Включаете сниффер - он начинает сниффить. Это то, что Вы просили. Или Вы чего-то недоговариваете? ;)

Чтобы несколько проще было ориентироваться в сравнении траффиков - убедитесь, что время на клиенте и сервере засинхронизировано.

Ну, или и там, и там - tcpdump в текстовый файл и потом каким-нибудь diff-ом сравнивать. Это, конечно, будет не real-time...

Я же написал в первом сообщении, что я понимаю как это сделать с помощью tcpdump и спрашивал как можно решить данную задачу более элегантно.

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

посмотри в сторону pcapdiff, tpcat. сравнивают два pcap файлы с двух "сторон"

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

посмотри в сторону pcapdiff, tpcat. сравнивают два pcap файлы с двух "сторон"
Спасибо, звучит интересно.

 

Если сравнивать два pcap файла обычным diff то могут вылезти пролемы с чексуммами. Если сетевуха отправителя сама рассчитывает чексуммы пакета, то в дампе мы увидим мусор вместо правильного CRC. Таким образом отличаться будут все пакеты, найти реальные отличия будет проблематично.

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

а почему должны различаться crc для одного и того же пакета, рассчитанных сетевой или программно? сетевой быстрее, программно медленнее - но результат то один...не?

 

удп пакеты как-то нужно сопоставлять, для удп - чексумма самый надёжный вариант. pcapdiff - питон скрипт, сопоставление по crc можно заблокировать.

 

ps. в wireshark есть statistics -> conversation list -> udp. отображение полученных/переданных данных по ип/портам...

Изменено пользователем loginrl103

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

а почему должны различаться crc для одного и того же пакета, рассчитанных сетевой или программно? сетевой быстрее, программно медленнее - но результат то один...не?

 

удп пакеты как-то нужно сопоставлять, для удп - чексумма самый надёжный вариант. pcapdiff - питон скрипт, сопоставление по crc можно заблокировать.

 

ps. в wireshark есть statistics -> conversation list -> udp. отображение полученных/переданных данных по ип/портам...

Когда сетевая карта поддерживает расчет crc, то CPU уже не производит расчет суммы.

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

а почему должны различаться crc для одного и того же пакета, рассчитанных сетевой или программно? сетевой быстрее, программно медленнее - но результат то один...не?

 

удп пакеты как-то нужно сопоставлять, для удп - чексумма самый надёжный вариант. pcapdiff - питон скрипт, сопоставление по crc можно заблокировать.

 

ps. в wireshark есть statistics -> conversation list -> udp. отображение полученных/переданных данных по ип/портам...

Когда сетевая карта поддерживает расчет crc, то CPU уже не производит расчет суммы.

это я знаю, вопрос был насчёт "Если сетевуха отправителя сама рассчитывает чексуммы пакета, то в дампе мы увидим мусор вместо правильного CRC" - почему crc должны быть разной для аппаратно и программно рассчитанных?

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

Потому что снифер получает исходящие пакеты ДО сетевой карты.

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

до сетевой карты? телепатически из воздуха?)

он получает карты ИЗ драйвера сетевой карты, ДО обработки пакетов сетевой подсистемой; crc должен быть одним и тем же в случае расчёта как программно так и аппаратно.

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

2loginrl103

Речь об исходящем трафике. crc ещё не рассчитан, это сделает сетевая карта перед отправкой пакета.

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

Задача. Снять сниффером на сервере отправляемый траффик. Снять на клиенте получаемый от сервера траффик, а затем сравнить их и понять сколько пакетов потеряно, сколько фрагментировано и т.п. ...

С таким общим подходом придется разрабатывать собственный универсальный инструмент (например, на основе известных утилит).

Чтобы правильно подобрать или создать инструмент надо уточнить суть проблемы. К примеру может и iperf будет достаточно чтобы локализовать неисправность.

 

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

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

Задача. Снять сниффером на сервере отправляемый траффик. Снять на клиенте получаемый от сервера траффик, а затем сравнить их и понять сколько пакетов потеряно, сколько фрагментировано и т.п. ...

С таким общим подходом придется разрабатывать собственный универсальный инструмент (например, на основе известных утилит).

Чтобы правильно подобрать или создать инструмент надо уточнить суть проблемы. К примеру может и iperf будет достаточно чтобы локализовать неисправность.

 

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

Суть проблемы. Доставка мультикаста от стримера до клиента через транзитного провайдера проходит не совсем гладко. Потерь через unicast нет. Нужно разобраться - либо это стример что-то неправильно отсылает либо в сети провайдера что-то происходит не так. Если предложите что-то более простое и настолько же надежное - буду рад. Вариант приехать с ноутом к стримеру и воткнуться в него напрямую не предлагать.

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

Суть проблемы. Доставка мультикаста от стримера до клиента через транзитного провайдера проходит не совсем гладко. ...

Тогда Вам сюда

http://forum.nag.ru/forum/index.php?showtopic=52471

 

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

На самом деле проблем нет. Делаете дампы. Потом преобразуете их в текстовый формат тем же tcpdump'ом на одном компе (чтобы не было разных форматов от разных версий) убрав временную информацию. Итого два текстовых файла. Сравниваете каким нибудь визуальным diffом под виндой. Ну или натуральный diff под никсами. Места расхождения покажет.

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

2loginrl103

а pcap точно сработает до расчёт crc?
для исходящих данных с offload tx-checksumming: on конечно до расчёта.
Изменено пользователем voron

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.

Гость
Ответить в тему...

×   Вставлено в виде отформатированного текста.   Вставить в виде обычного текста

  Разрешено не более 75 смайлов.

×   Ваша ссылка была автоматически встроена.   Отобразить как ссылку

×   Ваш предыдущий контент был восстановлен.   Очистить редактор

×   Вы не можете вставить изображения напрямую. Загрузите или вставьте изображения по ссылке.