Inhoud

Inleiding

Achtergrondinformatie

Overzicht van de kwestie

Product met bandbreedtes en vertragingen

Verifiëren

Oplossing

Hoe vertelt u een Ronde Trip Time (RTT) tussen twee locaties?

Inleiding

Dit document beschrijft de kwestie die aan hogesnelheidsnetwerk is gekoppeld. Het leidt een formule uit BDP af om het reële bandbreedtegebruik in een bepaalde conditie te berekenen.

Achtergrondinformatie

Aangezien een groeiend aantal ondernemingen geografisch verspreide datacenters heeft of momenteel bouwt en de datacenters via een snelle verbinding met elkaar verbindt. De behoefte om de bandbreedte beter te gebruiken neemt toe.

Het Bandwidth-Delay Product (BDP) wordt sinds enkele jaren op het internet gepubliceerd. Er is echter geen voorbeeld in de echte wereld van hoe de kwestie eruit ziet. De BDP-formule richt zich op de grootte van TCP-vensters. Het geeft ons geen manier om het mogelijke bandbreedtegebruik te berekenen gebaseerd op afstand. Dit document legt het BDP kort uit en toont de kwestie en de oplossing. Dit artikel leidt ook een formule af om het bandbreedtegebruik in een bepaalde conditie te berekenen.

Overzicht van de kwestie

Uw bedrijf heeft twee datacenters. Uw bedrijf back-up van bedrijfskritieke gegevens van één datacenter naar een ander datacenter. De back-upbeheerder meldde dat de back-up niet binnen het back-upvenster kan worden voltooid vanwege netwerkvertraging. Als netwerk admin, wordt u toegewezen om het probleem van de netwerkvertraging te onderzoeken. U kent deze factoren:

- Deze twee datacenters zijn 1000KM uit elkaar.

- Deze datacenters zijn onderling verbonden via een 1 Gbps verbinding.

Tijdens het onderzoek is het je opgevallen:

- Er is genoeg beschikbare bandbreedte.

- Er zijn geen problemen met netwerkhardware of software.

- De reservetoepassing gebruikt slechts ongeveer 10 Mbps bandbreedte zelfs de rest van 90 Mbps bandbreedte is vrij.

- De reservetoepassing gebruikt TCP om gegevens over te brengen.

Product met bandbreedtes en vertragingen

Om de vraag van de reservetoepassing te beantwoorden gebruikt slechts 10 Mbps, het introduceert het Bandwidth-Delay Product (BDP).

BDP verklaart simpelweg dat:

BDP (bits) = total_available_bandbreedte (bits/sec) x round_trip_time (sec)

of, omdat RWIN/BDP normaal in bytes is, en de latentie wordt gemeten in milliseconden:

BDP (bytes) = totaal_beschikbaar_bandbreedte (KBytes/sec) x round_trip_time (ms)

Dit betekent dat het TCP-venster een buffer is die bepaalt hoeveel gegevens kunnen worden overgebracht voordat de server stopt en wacht op ontvangstbevestiging van ontvangen pakketten. De productie is in essentie gebonden aan het BDP. Als het BDP (of RWIN) lager is dan het product van de latentie en beschikbare bandbreedte, kunt u de regel niet invullen omdat de client geen bevestiging snel genoeg kan terugsturen. Een transmissie kan de (RWIN / latency) waarde niet overschrijden, dus moet het TCP-venster (RWIN) groot genoeg zijn om de maximum_available_bandbreedte x maximum_anticipated_vertraging te gebruiken.

Met bovenstaande formule. De afgeleide bandbreedte-berekeningsformule is:

Bandbreedtegebruik (Kbps)=BDP(bytes)/RTT(ms) * 8

Opmerking: Deze formule berekent max. theoretisch bandbreedtegebruik. Hiermee wordt de pakkettransmissietijd van OS niet in aanmerking genomen omdat deze veel factoren omvat, bijvoorbeeld het beschikbare geheugen, de NIC-stuurprogramma, de lokale NIC-snelheid, het cache of soms zelfs de disksnelheid. Als resultaat hiervan, wanneer de grootte van het TCP venster groot is, zou de berekende bandbreedte groter zijn dan de eigenlijke bandbreedte. Wanneer de grootte van TCP-vensters zeer groot is, kan de afwijking ook groot zijn.

Met de afgeleide formule kunt u de vraag beantwoorden waarom de reservetoepassing slechts 10 Mbps kan gebruiken door beneden berekening te doen.

- Over het algemeen is de RTT voor 1000KM ~15. Dus RTT=15ms

- Standaard is de grootte van Windows 2003 van het besturingssysteem Windows 17.520 bytes. Dus BDP=17.520 bytes

- Zet deze getallen in de formule:

Bandbreedtegebruik (Kbps) =17520/15*8.

Het resultaat is 934 Kbps of 9,34 Mbps. 9,344 Mbps plus TCP- en IP-header. Het eindresultaat is ~10 Mbps.

Verifiëren

Als netwerkbeheerder hebt u de vraag theoretisch beantwoord. Nu moet je de theorie in de echte wereld bevestigen.

U kunt elk testgereedschap voor netwerkprestaties gebruiken om de theorie te bevestigen. U hebt besloten om iperf te leiden om de kwestie en de oplossing aan te tonen.

Dit is de opzet van het lab:

1. Een server in datacenter 1 met IP-adres 10.10.1.1.

2. Een client in datacenter 2 met IP-adres 172.16.2.1.

De topologie is zoals in het beeld getoond:

Volg deze stappen om te verifiëren:

1. Start iperf3 -s -p 5001 op 10.10.1.1 om er een server van te maken en te luisteren op TCP poort 5001.

2. Om met de standaard TCP venstergrootte 17.520 bytes te testen. Start iperf3 -c 10.10.1.1 -i 1 -t 360 -w 17520 -p 5001 op 172.16.2.1 om er een cliënt van te maken. Deze opdracht vertelt iperf om verbinding te maken met de server op poort 5001, werkt 360 seconden en rapporteert het bandbreedtegebruik elke 1 seconde met TCP-venstergrootte 17.520 bytes.

3. Om te testen met de aangepaste TCP-venstergrootte, bijvoorbeeld 6.553.500 bytes, voert u iperf3-c 10.10.1.1-i 1-t 360-w 6553500-p 5001 uit

Dit is het resultaat van de laboratoriumtest met de standaard TCP-venstergrootte 17.520 bytes. U kunt zien dat het bandbreedtegebruik ~10 Mbps is.

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

Dit is het resultaat van de laboratoriumtest met TCP venstergrootte 6.553.500 bytes. U kunt zien dat het bandbreedtegebruik ongeveer 200 Mbps is.

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

Oplossing

Vanuit software ontwikkelingsperspectief kan multithreading om meerdere gelijktijdige TCP-sessies te starten het bandbreedtegebruik verbeteren. Het is echter niet praktisch voor netwerk- of systeembeheerders om de broncode te wijzigen. Wat je kunt doen, is het OS goed afstemmen.

RFC1323 definieert meerdere TCP-uitbreidingen voor hoge prestaties van TCP. Deze omvatten Windows Scale Option en selectieve ACK. Zij worden uitgevoerd door de belangrijkste besturingssystemen. Standaard zullen sommige OS ze echter uitschakelen, zelfs de TCP/IP-stack is geschreven om ze te ondersteunen.

- Deze OS uitschakelen RFC1323 standaard: Windows 2000, Windows 2003, Windows XP en Linux met kern eerder dan 2.6.8.

Als u problemen hebt met Microsoft Windows-systeem, volgt u deze link om TCP te verfijnen. https://support.microsoft.com/en-au/kb/224829.

Voor andere OS, zie de documentatie van de verkoper over hoe ze te configureren.

- Deze OS maken RFC1323 standaard mogelijk: Windows 2008 en hoger, Windows Vista en hoger, Linux met kern 2.6.8 en hoger. Mogelijk hebt u patches nodig voor het verbeteren van deze functies. In bepaalde omstandigheden moet u deze uitschakelen. Zie de documentatie van de verkoper over hoe deze kan worden uitgeschakeld.

- Sommige apparaten zijn gebouwd op Microsoft Windows 2000, Windows 2003 of ingesloten besturingssysteem. Bijvoorbeeld NAS, hardware voor gezondheidszorg. Controleer de documentatie bij de verkoper om te controleren of RFC1323 is ingeschakeld.

Hoe vertelt u een Ronde Trip Time (RTT) tussen twee locaties?

In het algemeen wordt RTT gekoppeld aan afstand. In de onderstaande tabel worden de afstand en de desbetreffende RTT's weergegeven. U kunt ook ping-test gebruiken om een idee op de RTT te krijgen in normale netwerkomstandigheden.

Afstand (KM)

RTT(ms)

1,000

15

4,000

50

8,000

120

Opmerking: Hierboven is alleen een richtlijn, kan de werkelijke RTT-tijd worden gewijzigd. De vertraging wordt ook beïnvloed door de gebruikte technologie. Een 3G-latentie kan bijvoorbeeld vaak 100 ms zijn, ongeacht de afstand. Dat geldt ook voor satelliet.