Domanda

Sto scrivendo un programma e sono in grado di impostare la sua produttività (il numero di bit per secondo invia attraverso la rete) per qualsiasi tasso auguro. Tuttavia, mi piacerebbe impostare più in alto possibile, a patto che il resto del traffico sulla rete non è fortemente influenzato.

Il problema è, non ho una buona metrica per misurare tale impatto. Ho pensato a quelle seguenti, ma nessuno dei due è davvero "completo":

  1. Aumento del tempo medio di ritardo per un pacchetto
  2. Aumento della perdita di pacchetti
  3. Aumento jitter
  4. aumento del tempo medio necessario per le operazioni di tcp per completare (il download di file tramite HTTP)

C'è una metrica standard? Hai altre idee su come misurare un impatto applicazione sulla rete?

btw - Ho un completo controllo sulla rete, e può prendere qualunque misura che voglio per calcolare tale metrica.

Grazie,

Rouli

È stato utile?

Soluzione

Diverse reti si comportano in modi diversi, come si supera la larghezza di banda. La maggior parte di loro hanno una successione di cattiveria lungo le linee:

  1. Jitter inizierà a sparare attraverso il tetto come alcuni pacchetti devono essere ritrasmessi o coda (ad esempio collisioni ethernet half-duplex o wireless). Latenza media salirà un po '.
  2. latenza media Come sovrasaturazione continua (o a livelli più elevati di sovrasaturazione) passerà attraverso il tetto come praticamente tutti i pacchetti vengono accodati o ritrasmesso. Questo può essere limitato se le dimensioni della coda sono di piccole dimensioni.
  3. La perdita di pacchetti aumenterà le code troppo pieno. Più alto si guida la larghezza di banda, verranno persi i più pacchetti. A seconda dell'hardware, jitter e latenza può o non può tornare indietro verso il basso.

Se qualche forma di QoS è in uso, diversi flussi di pacchetti possono vedere questi effetti in maniera indipendente. Per esempio, si può essere il pompaggio di banda 3x sulla connessione app e vedere relativamente poco cambiamento nel tempo di ping. Quindi è necessario misurare con i pacchetti della vostra applicazione.

(1) e (2) non possono verificarsi in una data rete. (3) sarà sempre accadere, non importa quale. Tutti e tre possono, purtroppo, si verificano anche anche quando si è in nessun posto vicino al limite di larghezza di banda.

Altri suggerimenti

Traffic Engineering è un campo piuttosto complessa. è probabilmente un buon punto di partenza per questo problema.

Questa è una di quelle domande che potrebbe essere difficile rispondere a livello di codice. In applicazioni che ho visto permettono questo tipo di limitazione, è sempre stato un opzione di configurazione. E 'generalmente troppo difficile da sapere sulla rete del proprio utente, qualsiasi ipotesi si fanno sarà probabilmente sbagliata.

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top