Come la maggior parte dei problemi di prestazioni, è complicato. La quantità di larghezza di banda ottenuta da ciascuna attività è una complessa interazione tra molte cose, a diversi livelli dello stack di rete. Anche senza modellare. Un elenco incompleto:
- Pianificatore della CPU per quando le attività (e i gestori di interrupt del driver) possono accedere alla CPU
- Quanto velocemente le attività ottengono i propri dati, possibilmente limitate da colli di bottiglia o contese
- Quale disciplina di accodamento è in uso, essenzialmente uno scheduler di pacchetti
- Dettagli sui driver, come il numero di code TX hardware e il modo in cui selezionano i flussi
- Comportamento del protocollo TCP, se un flusso raggiunge il controllo della congestione, potrebbe rimanere lento mentre la larghezza di banda è limitata
- Tutte le precedenti considerazioni per i sistemi remoti che ricevono i flussi
- Se tutte le tue connessioni non sono dirette allo stesso destinatario, l'altro end potrebbe avere un impatto maggiore di your fine
Molti di questi non stanno ottimizzando per la "correttezza" della larghezza di banda uguale, ma altri criteri. Il controllo della congestione TCP preferirebbe avere un po' di goodput piuttosto che subire un collasso congestizio.
E non dimenticare anche che probabilmente lo sei non l'unico della rete in un dato momento, quindi devi anche includere router, switch, ecc. tra "qui" e "là".
Se questa è più di una curiosità, una soluzione il più veloce possibile è ottenere più larghezza di banda.
Oppure, eseguire QoS, modellare o limitare le applicazioni può impostare quote per un comportamento complessivo migliore, qualunque sia il mezzo migliore. Ma questo non è più il più veloce possibile, scegli i vincitori e i perdenti in base alla politica.