Как найти потерю пакета в Wireshark? - PullRequest
7 голосов
/ 30 июня 2009

Мне нужно проверить потерю пакетов для приложения FTP. Я использовал анализатор пакетов Wireshark и получил TCP Stream.

Как найти потерю пакетов при использовании Wireshark?

Ответы [ 2 ]

6 голосов
/ 13 ноября 2010

Потери пакетов и другие связанные метрики, такие как частота ошибок по битам (BER), могут быть трудно или невозможно эмпирически увидеть, глядя на дампы в Wireshark, в зависимости от того, какой слой вы хотите посмотреть. И многое из этого сильно зависит от того, какие протоколы вы используете и какое программное обеспечение / встроенное ПО реализует его.

У меня был именно такой опыт, например, с маршрутизаторами Wi-Fi. Мне нужно было эмпирически проверить BER данной Wi-Fi-ссылки. Но оказывается, что 802.11 имеет систему ретрансляции на основе CRC, подобную TCP, которая все происходит на канальном уровне.

Так, например, вы можете отправить пакет UDP с устройства Wi-Fi A на устройство B. Wi-Fi. В процессе передачи пара битов переворачивается, устройство B видит, что CRC неверен, и отправляет запрос на ретранслировать. Пакет отправляется снова и снова поврежден. Однако с третьей попытки пакет проходит нормально.

Исходя из этого, вы надеетесь увидеть какую-то метрику потери пакетов, верно? Ну, к сожалению, нет. Весь этот обмен происходит ниже Wireshark. Все, что он видит, - это успешную отправку UDP-пакета, но для его получения требуется в три раза больше времени, чем обычно. (Мне пришлось внести изменения в ядро, чтобы отправить уведомление, когда произошли ошибки CRC на канальном уровне. Это был беспорядок!)

0 голосов
/ 30 июня 2009

[Zr40 указывает ниже на то, что эта часть неправильна: чтобы расширить мой комментарий - Wireshark действительно сообщает вам количество пропущенных пакетов в строке состояния внизу (я только что запустил пример захвата, и он говорит: Показано: 65 Помечено: 0 Удалено: 0 "), но я не уверен, получите ли вы те же результаты из этого, в зависимости от того, с какой стороны вы его запускаете.]

В этом случае - я полагаю, вам нужно запустить Wireshark на каждом конце и посмотреть статистику пакетов (количество пакетов A-> B, B-> A) и сравнить различия. Вы не можете полагаться на попытки TCP и т. Д., Поскольку это не обязательно означает, что пакет потерян.

Кроме того, вам нужно будет настроить фильтр захвата только для FTP, если вы не хотите, чтобы ваша статистика была искажена другими вещами, такими как ARP, поиск DNS и т. Д.

...