Java wychwytywanie pakietów oraz określanie prędkości

0

Witam,
Piszę właśnie projekt w Java, wykorzystujący bibliotekę jNetPcap do wychwytywania pakietów. Moim problemem jest określenie z jaką prędkością pakiety są odbierane z poszczególnego portu :). Czy jest możliwość taki cel osiągnąć? W ten sposób chciałby określić, pobieranie przez dany proces. Nie mam już pomysłów jak ten problem rozwiązać. Czy posiada ktoś jakieś rady?

Moje próby wyglądały tak:

  1. Odczytanie czasu wystąpienia pakietu o danym IP source i porcie
  2. Wystąpienie kolejnego pakietu z tego samego źródła , odczytanie total byte wygenerowane przez źródło (totalByte)/(actualnyCzas-czasStartuOdmierzania)/1024
    Takie zastosowanie wzoru daje mi błędną prędkość.

Pozdrawiam i czekam na rady :)

0

Generalnie chyba opcja numer dwa. Pytanie tylko czy bardziej niż prędkość całkowita nie interesuje Cię np. prędkość chwilowa w danym kwancie czasu (np. resetowana co 10 sekund)?

0
notexists napisał(a):

Generalnie chyba opcja numer dwa. Pytanie tylko czy bardziej niż prędkość całkowita nie interesuje Cię np. prędkość chwilowa w danym kwancie czasu (np. resetowana co 10 sekund)?

Jakieś szczegóły? :)

0

Z tego co napisałeś wynika, że zbierasz całkowitą szybkość (bierzesz pod uwagę cały czas i cały transfer), czyli w praktyce liczysz szybkość średnią (masz jedną próbkę). Wtedy czas, w którym pakiety nie przychodzą (np. bo pobieranie się jeszcze nie zaczęło lub już skończyło) automatycznie pomniejsza Ci wynik.

Zamiast tego możesz liczyć szybkość chwilową, czyli szybkość w danym momencie, która będzie się zmieniać wraz z tym ile danych przepływa przez ten port w danym momencie działania programu. Określasz sobie pewien kwant czasu (np 10s) i mierzysz ilość danych, która nadpłynęła w tym czasie, wyliczasz średnią, aktualizujesz średnią u użytkownika. Ilość pobranych danych zerujesz i zaczynasz zliczać od nowa przychodzące dane. I tak w kółko co ten czas. W tedy co 10s będziesz otrzymywał szybkość średnią w ciągu ostatnich 10s... Im Twój kwant czasu będzie mniejszy tym wyniki będą lepiej pokazywać szybkość chwilową. Ale będą też bardziej skakać, więc musisz sobie sam dobrać najlepszy dla Ciebie czas...

0

Przepraszam za opóźnienie. Chciałem bardzo podziękować za odpowiedź. Czy na tym poziomie jesteśmy w stanie obliczyć prędkość średnią programu generującego ruch?

0

Prędkość średnia, masz w punkcie 2, tylko nie wiem czemu tam jest /1024? Możesz też spróbować mierzyć tylko ten czas, w którym coś przychodzi (oczywiście przy założeniu pewnej niedokładności), wtedy okres nieprzychodzenia niczego nie będzie Ci zmniejszał szybkości całkowitej (czyli średniej)...

1 użytkowników online, w tym zalogowanych: 0, gości: 1