Podejrzewam, że mój serwer ma ogromną liczbę żądań HTTP od swoich klientów. Chcę zmierzyć wielkość ruchu HTTP. Jak mogę to zrobić za pomocą Wireshark? A może istnieje alternatywne rozwiązanie przy użyciu innego narzędzia?
Tak wygląda pojedynczy ruch http żądanie / odpowiedź w Wireshark. Ping jest generowany przez WinAPI funciton :: InternetCheckConnection ()
alt text http://yowindow.com/shared/ping.png
Pakiety ping powinny używać typu ICMP 8 (echo) lub 0 (odpowiedź echa), aby można było użyć filtra przechwytywania:
icmp
oraz filtr wyświetlania:
icmp.type == 8 || icmp.type == 0
W przypadku HTTP można użyć filtra przechwytywania:
tcp port 80
lub filtr wyświetlania:
tcp.port == 80
lub:
http
Zauważ, że filtr httpnie jest równoważny dwóm pozostałym, które obejmują pakiety uzgadniania i zakończenia.
Jeśli chcesz zmierzyć liczbę połączeń, a nie ilość danych, możesz ograniczyć filtry przechwytywania lub wyświetlania do jednej strony komunikacji. Na przykład, aby przechwycić tylko pakiety wysłane do portu 80, użyj:
Przepraszam, zapomniałem podać szczegóły żądania „ping”. Jest to sposób pingowania w systemie Windows. Wygląda na to, że icmp nie ma związku z moją sprawą.
par
Zobacz zrzut ekranu ping w Wireshark, który właśnie załączyłem
par
Zmieniłem pytanie z „ping” na „http”, więc odpowiedź nie ma sensu w kontekście, ale daje +1, ponieważ jest to dobra odpowiedź na ping.
Kiedy to robię, wyświetlam 0, otrzymuję 45 000 i odwiedzam strony internetowe, jakieś pomysły? Patrzę na Wi-Fi: en0
SuperUberDuper
7
To nie jest ping. Ping, jak już powiedział outis, jest żądaniem echa ICMP. Twój ślad wyświetla nawiązanie i natychmiastowe zakończenie połączenia HTTP i to właśnie InternetCheckConnection()działa. Adres IP, o którym mowa, 77.222.43.228, rozwiązuje problem pod adresem http://repkasoft.com/ , który, jak sądzę, jest adresem URL, który przekazujesz InternetCheckConnection().
Możesz filtrować ruch przy użyciu tego adresu IP, używając filtra przechwytywania lub wyświetlania host == 77.222.43.228.
Używając Wireshark 1.2+, uruchomiłbym ten plik wsadowy:
:: Script to save a wireshark trace
:: tshark -D to get interface id
@echo off
C:
cd C:\Temp\NetTracing
set PATH=%PATH%;C:\Program Files\Wireshark
echo Tracing host 127.1 or 172.1.1.1 or 10.0.0.1
tshark.exe -i 4 -a duration:900 -S -f "tcp port 80" -w trace.cap
Po prostu użyj takiego filtra DisplayFilter
http
:źródło
To nie jest ping. Ping, jak już powiedział outis, jest żądaniem echa ICMP. Twój ślad wyświetla nawiązanie i natychmiastowe zakończenie połączenia HTTP i to właśnie
InternetCheckConnection()
działa. Adres IP, o którym mowa, 77.222.43.228, rozwiązuje problem pod adresem http://repkasoft.com/ , który, jak sądzę, jest adresem URL, który przekazujeszInternetCheckConnection()
.Możesz filtrować ruch przy użyciu tego adresu IP, używając filtra przechwytywania lub wyświetlania
host == 77.222.43.228
.źródło
Używając Wireshark 1.2+, uruchomiłbym ten plik wsadowy:
źródło