Sommario

Introduzione

Premesse

Panoramica del problema

Prodotto Bandwidth-Delay

Verifica

Soluzione

Come comunicare il tempo di andata e ritorno (RTT) tra due località?

Introduzione

Questo documento descrive il problema associato alla rete ad alta velocità e ad alta latenza. Deriva una formula dal BDP per calcolare l'utilizzo reale della larghezza di banda in una determinata condizione.

Premesse

Un numero crescente di aziende ha o sta costruendo centri dati geograficamente distribuiti e interconnette i centri dati tramite collegamenti ad alta velocità. Le esigenze di un migliore utilizzo della larghezza di banda sono in aumento.

Il prodotto Bandwidth- Delay (BDP) è stato pubblicato su Internet per diversi anni. Tuttavia, non ci sono esempi reali su come si presenti la questione. La formula BDP è incentrata sulle dimensioni delle finestre TCP. Non ci dà modo di calcolare il possibile utilizzo della larghezza di banda in base alla distanza. Questo documento offre una breve spiegazione del BDP e illustra il problema e la soluzione. In questo articolo viene inoltre derivata una formula per calcolare l'utilizzo della larghezza di banda in una determinata condizione.

Panoramica del problema

La vostra azienda ha due centri dati. L'azienda esegue il backup dei dati business critical da un data center a un altro. L'amministratore di backup ha segnalato che non è possibile completare il backup entro la finestra di backup a causa di un rallentamento della rete. L'amministratore di rete ha il compito di analizzare il problema di lentezza della rete. Conosci questi fattori:

- Questi due centri dati sono distanti 1000 km.

- Questi centri dati sono interconnessi tramite un collegamento a 1 Gbps.

Al termine dell'indagine, hai notato quanto segue:

- Larghezza di banda disponibile sufficiente.

- Non sono presenti problemi hardware o software di rete.

- L'applicazione di backup utilizza solo una larghezza di banda di circa 10 Mbps, anche il resto della larghezza di banda di 990 Mbps è gratuito.

- L'applicazione di backup utilizza TCP per trasferire i dati.

Prodotto Bandwidth-Delay

Per rispondere alla domanda se l'applicazione di backup utilizza solo 10 Mbps, viene introdotto il prodotto BDP (Bandwidth-Delay Product).

BDP si limita ad affermare che:

BDP (bit) = total_available_bandwidth (bit/sec) x round_trip_time (sec)

oppure, poiché RWIN/BDP è generalmente in byte e la latenza è misurata in millisecondi:

BDP (byte) = total_available_bandwidth (KB/sec) x round_trip_time (ms)

Ciò significa che la finestra TCP è un buffer che determina la quantità di dati che è possibile trasferire prima che il server si arresti e attenda le conferme dei pacchetti ricevuti. Il throughput è in sostanza vincolato dal BDP. Se il BDP (o RWIN) è inferiore al prodotto della latenza e della larghezza di banda disponibile, non è possibile compilare la riga in quanto il client non è in grado di inviare le conferme di avvenuta ricezione abbastanza velocemente. Una trasmissione non può superare il valore (RWIN / latenza), quindi la finestra TCP (RWIN) deve essere sufficientemente grande da contenere il valore di maximum_available_bandwidth x maximum_anticipaded_delay.

Con la formula precedente. La formula di calcolo della larghezza di banda derivata è:

Utilizzo larghezza di banda (Kbps)=BDP(byte)/RTT(ms) * 8

Nota: Questa formula calcola l'utilizzo massimo della larghezza di banda teorica. Non prende in considerazione il tempo di trasmissione dei pacchetti del sistema operativo in quanto comporta molti fattori, ad esempio memoria disponibile, driver NIC, velocità della scheda NIC locale, cache o talvolta anche velocità del disco. Di conseguenza, quando le dimensioni delle finestre TCP sono grandi, la larghezza di banda calcolata sarà maggiore di quella effettiva. Quando le dimensioni della finestra TCP sono molto grandi, lo scostamento può essere anche grande.

Con la formula derivata, è possibile rispondere alla domanda sul motivo per cui l'applicazione di backup può utilizzare solo 10Mbps eseguendo il calcolo riportato di seguito.

- In generale, l'RTT per 1000 km è di circa 15. Quindi RTT=15 ms

- Per impostazione predefinita, il sistema operativo Windows 2003 ha dimensioni pari a 17.520 byte. Quindi BDP=17.520 byte

- Inserire questi numeri nella formula:

Utilizzo larghezza di banda (Kbps) =17520/15*8.

Il risultato è 9344 Kbps o 9,344 Mbps. 9,344 Mbps più intestazione TCP e IP. Il risultato finale è di circa 10 Mbps.

Verifica

In qualità di amministratore di rete, in teoria hai risposto alla domanda. Ora dovete confermare la teoria nel mondo reale.

Per confermare la teoria, è possibile utilizzare qualsiasi strumento di test delle prestazioni di rete. Si è deciso di eseguire iperf per dimostrare il problema e la risoluzione.

Questa è la configurazione lab:

1. Server nel centro dati 1 con indirizzo IP 10.10.1.1.

2. Un client nel centro dati 2 con indirizzo IP 172.16.2.1.

La topologia è quella mostrata nell'immagine:

Attenersi alla procedura seguente per verificare:

1. Eseguire iperf3 -s -p 5001 su 10.10.1.1 per renderlo un server e metterlo in ascolto sulla porta TCP 5001.

2. Per eseguire il test con le dimensioni predefinite della finestra TCP di 17.520 byte. Eseguire iperf3 -c 10.10.1.1 -i 1 -t 360 -w 17520 -p 5001 su 172.16.2.1 per renderlo un client. Questo comando indica a iperf di connettersi al server sulla porta 5001, viene eseguito per 360 secondi e segnala l'utilizzo della larghezza di banda ogni 1 secondo con le finestre TCP di 17.520 byte.

3. Per verificare le dimensioni della finestra TCP, ad esempio 6.553.500 byte, eseguire iperf3 -c 10.10.1.1 -i 1 -t 360 -w 6553500 -p 5001

Questo è il risultato del test di laboratorio con la dimensione predefinita della finestra TCP di 17.520 byte. L'utilizzo della larghezza di banda è di circa 10 Mbps.

C:\Tools>iperf3.exe  -c 10.10.1.1  -t 360  -p 5001 -i 1 -w 17520

Connecting to host 10.10.1.1, port 5001

[  4] local 172.16.2.1 port 49650 connected to 10.10.1.1 port 5001

[ ID] Interval           Transfer     Bandwidth

[ ID] Interval           Transfer     Bandwidth

[  4]   0.00-1.00   sec  1.30 MBytes  10.9 Mbits/sec

[  4]   1.00-2.02   sec   919 KBytes  7.41 Mbits/sec

[  4]   2.02-3.02   sec  1.28 MBytes  10.7 Mbits/sec

[  4]   3.02-4.02   sec  1.14 MBytes  9.59 Mbits/sec

[  4]   4.02-5.01   sec  1.24 MBytes  10.4 Mbits/sec

[  4]   5.01-6.01   sec  1.33 MBytes  11.3 Mbits/sec

[  4]   6.01-7.01   sec  1.15 MBytes  9.65 Mbits/sec

[  4]   7.01-8.01   sec  1.12 MBytes  9.36 Mbits/sec

[  4]   8.01-9.01   sec  1.22 MBytes  10.3 Mbits/sec

[  4]   9.01-10.01  sec  1.13 MBytes  9.49 Mbits/sec

[  4]  10.01-11.01  sec  1.30 MBytes  10.8 Mbits/sec

[  4]  11.01-12.01  sec  1.17 MBytes  9.84 Mbits/sec

[  4]  12.01-13.01  sec  1.13 MBytes  9.48 Mbits/sec

[  4]  13.01-14.01  sec  1.28 MBytes  10.7 Mbits/sec

[  4]  14.01-15.01  sec  1.40 MBytes  11.8 Mbits/sec

[  4]  15.01-16.01  sec  1.24 MBytes  10.4 Mbits/sec

[  4]  16.01-17.01  sec  1.30 MBytes  10.9 Mbits/sec

[  4]  17.01-18.01  sec  1.17 MBytes  9.78 Mbits/sec

Questo è il risultato del test di laboratorio con finestra TCP da 6.553.500 byte. L'utilizzo della larghezza di banda è di circa 200 Mbps.

C:\Tools>iperf3.exe  -c 10.10.1.1  -t 360  -p 5001 -i 1 -w 6553500

Connecting to host 10.10.1.1, port 5001

[  4] local 172.16.2.1 port 61492 connected to 10.10.1.1 port 5001

[ ID] Interval           Transfer     Bandwidth

[  4]   0.00-1.00   sec  29.1 MBytes   244 Mbits/sec

[  4]   1.00-2.00   sec  25.4 MBytes   213 Mbits/sec

[  4]   2.00-3.00   sec  26.9 MBytes   226 Mbits/sec

[  4]   3.00-4.00   sec  18.2 MBytes   152 Mbits/sec

[  4]   4.00-5.00   sec  25.8 MBytes   217 Mbits/sec

[  4]   5.00-6.00   sec  28.8 MBytes   241 Mbits/sec

[  4]   6.00-7.00   sec  26.1 MBytes   219 Mbits/sec

[  4]   7.00-8.00   sec  21.1 MBytes   177 Mbits/sec

[  4]   8.00-9.00   sec  22.5 MBytes   189 Mbits/sec

[  4]   9.00-9.42   sec  9.54 MBytes   190 Mbits/sec

Soluzione

Dal punto di vista dello sviluppo software, il multithreading per l'esecuzione di più sessioni TCP simultanee può migliorare l'utilizzo della larghezza di banda. Tuttavia, non è possibile per l'amministratore di rete o di sistema modificare il codice sorgente. È possibile ottimizzare il sistema operativo.

La RFC 1323 definisce più estensioni TCP per il protocollo TCP ad alte prestazioni. Sono incluse l'opzione di scala finestra e l'ACK selettivo. Sono implementati dai principali sistemi operativi. Tuttavia, per impostazione predefinita, alcuni sistemi operativi li disabilitano anche se lo stack TCP/IP viene scritto per supportarli.

- Per impostazione predefinita, questi sistemi operativi disabilitano RFC1323: Windows 2000, Windows 2003, Windows XP e Linux con kernel precedente alla versione 2.6.8.

Se il problema si verifica nel sistema Microsoft Windows, seguire questo collegamento per ottimizzare il protocollo TCP. https://support.microsoft.com/en-au/kb/224829.

Per altri sistemi operativi, consultare la documentazione del fornitore per informazioni su come configurarli.

- Per impostazione predefinita, questi sistemi operativi abilitano RFC1323: Windows 2008 e versioni successive, Windows Vista e versioni successive, Linux con kernel 2.6.8 e versioni successive. Potrebbe essere necessario applicare patch per migliorare queste funzioni. In alcune circostanze, si desidera disattivarle. Per informazioni su come disabilitarli, consultare la documentazione del fornitore.

- Alcuni accessori sono costruiti su sistemi operativi Microsoft Windows 2000, Windows 2003 o incorporati. ad esempio NAS, hardware per la sanità. Consultare la documentazione del fornitore per verificare se RFC1323 è abilitato o meno.

Come comunicare il tempo di andata e ritorno (RTT) tra due località?

In generale, RTT è associato alla distanza. Nella tabella seguente vengono elencati la distanza e i relativi RTT. È inoltre possibile utilizzare il comando ping test per avere un'idea del formato RTT in condizioni di rete normali.

Distanza (KM)

RTT (ms)

1,000

15

4,000

50

8,000

120

Nota: Qui sopra è solo una guida, il tempo reale RTT può essere variare. Inoltre, la tecnologia utilizzata incide sulla latenza. Ad esempio, la latenza 3G può essere frequentemente di 100 ms indipendentemente dalla distanza. È vero anche per il satellite.