2013-04-15 31 views
6

Ho creato un codice Java che misura il ritardo, la dimensione del pacchetto e la larghezza di banda.Come calcolare la latenza

Qual è l'equazione necessaria per calcolare la latenza?

Questo è quello che sto attualmente in uso, ma sicuri è corretto:

//latency = packetsize/delay + bandwidth 
System.out.println("latency is " + (len*2)/(duration + transferRateMb)); 

EDIT la lunghezza è moltiplicato per 2 per dare il valore corretto in byte

durata è il tempo impiegato per la ping per completare la velocità di trasferimento

è dato da

double transferRateMb = ((len*524288.0)/(duration/ 1000000000.0)) ; //amount of data in megabytes transferred in 1 second. 

Ho letto varie guide, e non li capisco, questo è solo un requisito semplice per un progetto

anche questo sarà eseguito 20 volte e la media presa

tutte le idee?

+1

Spero '(duration + transferRateMb)' dandovi il doppio valore e [---> Latenza e larghezza di banda] (http://wirelesstechnol.wordpress.com/2010/07/09/latency-and-bandwidth/) e ho già chiesto [---> come calcolare il tempo di pacchetto dalla latenza e dalla larghezza di banda] (http://stackoverflow.com/questions/8682702/how-to-calculate-packet-time-from-latency-bandwidth) – Smit

+0

La latenza è il più colpito dalla congestione della rete, che varierà molto nel tempo e la latenza in una direzione probabilmente non corrisponderà alla latenza di ritorno. Non esiste un modo reale per ottenere una formula per dirti quale sia la latenza. Ecco perché abbiamo strumenti come SLA IP per misurare continuamente la latenza effettiva. –

risposta

0

Misuro sempre la latenza. La latenza media di solito non è molto interessante, quello che devi veramente sapere è quanto male può essere la latenza, ad es. 1 su 100, 1 su 1000 o peggio. Per fare questo è necessario misurare ogni singola latenza e campionarla (o mantenere il massimo) Questo sarà molto più alto del calcolo, ad es. potrebbe facilmente essere 10x

In breve, non è possibile calcolare la latenza a cui dovresti preoccuparti, devi misurarla.

+0

Grazie ho intenzione di eseguire i test 20 volte e prendere la media, come posso misurare la latenza? – user2065929

+0

Suggerisco di eseguire il test più volte ignorando i primi 20.000 oi primi 2 secondi (per consentire il test di scaldarsi) Usando un timestamp nel messaggio e confrontandolo con un timestamp all'arrivo si registra per quanto tempo ogni messaggio ha preso Se ne misurate altri 10.000 potete ottenere una tessera del 99% ragionevole e se misurate 1.000.000 ottenete una tessera del 99,9% ragionevole. Per ottenere i percentili, ordina i risultati, ad es. in un int [] e prendi il valore medio per il 50%, la dimensione * 9/10 per il 90%, la dimensione * 99/100 per il 99% e la dimensione * 999/1000 per il 99,9% –

+0

ok, sarebbe la mia equazione va bene per il calcolo? – user2065929