Come stimare il throughput TCP tra i server

Come stimare il throughput TCP tra i server

Nataliya Oteir Leggi 8 minuti

Avete appena acquistato un server con un canale dedicato garantito a 1Gbit/s (o più) e siete delusi nello scoprire che i trasferimenti di file non sono così veloci come avevate previsto. Prima di scrivere al supporto tecnico e cercare problemi di rete, provate a valutare l'effettivo throughput TCP da un host all'altro.

I fattori più importanti per il successo del trasferimento di dati via TCP sono due:

  • Dimensione della finestra TCP - è il numero di byte che una delle due parti accetta senza conferma;
  • Ritardo circolare di trasmissione-ricezione (latenza) - il tempo necessario per inviare un pacchetto e confermarne la consegna.
  • Conoscere entrambe le cose consente di calcolare la massima larghezza di banda possibile che può essere condivisa tra due host, indipendentemente dalla larghezza di banda.

La formula per calcolare la larghezza di banda TCP

Transput TCP (bit/s) = Dimensione della finestra TCP (bit) / Latenza di andata e ritorno (s)

Comprendiamo il tutto con un semplice esempio. Disponiamo di un collegamento Ethernet gigabit tra i server con una latenza circolare di 30 ms. Dobbiamo inviare un file di grandi dimensioni da un server a un altro server via FTP. Quale larghezza di banda reale possiamo aspettarci?

Prima di tutto è necessario convertire la dimensione della finestra TCP da byte a bit. In questo caso, utilizzeremo la dimensione della finestra TCP standard di Windows di 64 KB = 65 536 B = 65 536 * 8 = 524 288 bit.

Poi bisogna prendere la dimensione della finestra TCP in bit e dividerla per la latenza circolare del canale, espressa in secondi. Ai fini di questi calcoli, 30 ms si trasformano in 0,030 s.

Trasporto TCP massimo = 524.288 bit / 0,030 s = 17.476.266 bps = 17,4 Mbps

Anche se c'è una connessione Ethernet gigabit tra i due server, non ci si può aspettare più di 17 Mbit/s durante il trasferimento dei file.

Come possiamo rendere la rete più veloce? La risposta è ovvia: aumentare le dimensioni della finestra TCP e/o ridurre il ritardo del segnale.

Negoziare una finestra TCP più grande richiede la configurazione manuale individuale di ogni server. Questo, a sua volta, porta alla seguente domanda: qual è la dimensione ottimale della finestra TCP? Per scoprirlo, è necessario fare un calcolo inverso basato sulla larghezza di banda.

La formula per calcolare la dimensione ottimale della finestra TCP

Dimensione finestra TCP (byte) = Dimensione finestra TCP (bit) / 8 = Larghezza di banda (bit/s) * Latenza di andata e ritorno (s) / 8

Nell'esempio precedente per una rotta gigabit Ethernet tra server con una latenza circolare di 30 ms, si ottiene il seguente valore:

1.000.000.000 di bit/s * 0,030 s = 30.000.000 di bit / 8 = 3.750.000 byte.

In altre parole, se si configurano entrambi i server per una finestra TCP di 3.750 KB, la connessione FTP riempirà completamente la larghezza di banda e raggiungerà un'ampiezza di banda di 1 Gbit/s.

È bene sapere che l'aumento della dimensione della finestra TCP ha degli svantaggi.

In primo luogo, richiederà una maggiore quantità di memoria per il buffering dei server, necessaria per memorizzare i dati non confermati nel caso in cui siano presenti.

In secondo luogo, un aumento della dimensione della finestra TCP può comportare un maggior numero di pacchetti persi, che a loro volta richiedono il reinvio di un'intera finestra. Questo può avere un impatto negativo sulle prestazioni. Per risolvere questo problema, lo stack TCP/IP del server può attivare l'opzione "riconoscimento selettivo", che è disattivata per impostazione predefinita.

Per risolvere il problema, è possibile collocare degli acceleratori WAN, ovvero dei pedali di accelerazione della rete globale, a entrambe le estremità della linea. Possono fare quanto segue:

  • aprire una finestra TCP allargata;
  • offrono la possibilità di ottimizzare finemente il protocollo TCP (ad esempio, il riconoscimento selettivo solo tra i pedali del gas);
  • non richiedono particolari accorgimenti.
  • non richiedono una configurazione speciale del server o memoria buffer aggiuntiva;
  • possono utilizzare funzioni speciali del livello applicativo del modello OSI (livello 7 - accesso ai servizi di rete) per ridurre il ritardo circolare.

Latenza

Volete ridurre il ritardo del segnale? Si può fare in linea di principio? Poiché non possiamo superare la velocità della luce, non possiamo influenzare il tempo che un segnale impiega a percorrere una certa distanza. Il modo migliore per ottimizzare un intero sistema è quello di installare un acceleratore WAN a ogni estremità della linea, che trasmetta i pacchetti TCP ricevuti al server locale, "imbrogliandolo" così sulla reale velocità di trasferimento dei dati. Invece di attendere una risposta in stallo dal server remoto, il server locale riceve un riscontro istantaneo dal pedale dell'acceleratore. In questo modo si evita di dover regolare la dimensione della finestra TCP sui server stessi. Una coppia di dispositivi WAAS utilizza una finestra TCP di dimensioni maggiori e riconoscimenti selettivi sull'intero segmento di linea.

Inoltre, WAAS epura efficacemente un flusso TCP dai dati ridondanti, fornendo un livello di compressione (compression) estremamente elevato. Ogni pedale del gas ricorda i dati visualizzati in precedenza. Se un frammento duplicato si ripresenta, viene rimosso e sostituito da un piccolo tag di 2 byte. Questo piccolo segno viene riconosciuto dal pedale del gas remoto, che inserisce il frammento di dati originale al suo posto prima di inviare il traffico al server locale.

Il risultato comprovato dell'ottimizzazione è un throughput più elevato tra i server senza alcuna messa a punto speciale del TCP dei server locali.

Formula per il calcolo del ritardo massimo consentito per un dato throughput

Esempio. Su un sito tra due server remoti, è necessario garantire un throughput FTP di 10 Gbps utilizzando una finestra TCP di dimensioni standard (64KB). Qual è il ritardo massimo del segnale consentito?

Latenza di andata e ritorno (ms) = dimensione della finestra TCP (bit) / larghezza di banda richiesta (bps)

524.288 bit / 10.000.000 bps = 52,4 microsecondi

Cosa fare?

In linea di massima, non è necessario aumentare la finestra TCP o installare dei booster WAN. Basta usare il multithreading e si può usare il canale al 100% della sua larghezza di banda!

Quanto è stato utile questo post?

Clicca su una stella per votarla!
Рейтинг: 0/5 - 0 голосов