Inhalt

Einführung

Hintergrundinformationen

Überblick über das Problem

Produkt für Bandbreitenverzögerung

Überprüfen

Lösung

Wie kann man die Round-Trip Time (RTT) zwischen zwei Standorten angeben?

Einführung

In diesem Dokument wird das Problem im Zusammenhang mit Hochgeschwindigkeits-Netzwerken mit hoher Latenz beschrieben. Es leitet eine Formel von BDP ab, um die tatsächliche Bandbreitennutzung unter bestimmten Bedingungen zu berechnen.

Hintergrundinformationen

Da immer mehr Unternehmen geografisch verteilte Rechenzentren aufbauen und die Rechenzentren über Hochgeschwindigkeitsverbindungen miteinander verbinden, sind diese bereits im Begriff oder sind gerade dabei. Die Anforderungen an eine bessere Bandbreitennutzung steigen.

Das Produkt "Bandwidth-Delay" (BDP) wurde seit mehreren Jahren im Internet veröffentlicht. Es gibt jedoch kein reales Beispiel dafür, wie das Problem aussieht. Die BDP-Formel konzentriert sich auf die TCP-Fenstergröße. Es gibt uns keine Möglichkeit, die mögliche Bandbreitennutzung auf Basis der Entfernung zu berechnen. In diesem Dokument wird BDP kurz erläutert und das Problem und die Lösung erläutert. In diesem Artikel wird auch eine Formel zur Berechnung der Bandbreitennutzung unter bestimmten Bedingungen abgeleitet.

Überblick über das Problem

Ihr Unternehmen verfügt über zwei Rechenzentren. Ihr Unternehmen sichert geschäftskritische Daten von einem Rechenzentrum in ein anderes Rechenzentrum. Der Backup-Administrator berichtete, dass er die Sicherung aufgrund der Verlangsamung des Netzwerks nicht im Backup-Fenster beenden kann. Als Netzwerkadministrator sind Sie damit beauftragt, das Problem der Netzwerkverlangsamung zu untersuchen. Sie kennen die folgenden Faktoren:

- Diese beiden Rechenzentren sind 1000 km voneinander entfernt.

- Diese Rechenzentren sind über eine 1-Gbit/s-Verbindung miteinander verbunden.

Nach der Untersuchung haben Sie Folgendes bemerkt:

- Die verfügbare Bandbreite ist ausreichend.

- Es gibt keine Probleme mit Netzwerkhardware oder -software.

- Die Backup-Anwendung benötigt nur etwa 10 Mbit/s Bandbreite, selbst die restliche 990-Mbit/s-Bandbreite ist kostenlos.

- Die Sicherungsanwendung verwendet TCP, um Daten zu übertragen.

Produkt für Bandbreitenverzögerung

Zur Beantwortung der Frage, ob die Backup-Anwendung nur 10 Mbit/s verwendet, wird das Bandwidth-Delay-Produkt (BDP) eingeführt.

BDP erklärt lediglich, dass

BDP (Bit) = total_available_bandwidth (Bit/Sek.) x Round_Trip_Time (Sek.)

oder, da RWIN/BDP in der Regel in Byte ist und die Latenz in Millisekunden gemessen wird:

BDP (Byte) = total_available_bandwidth (KByte/Sek.) x Round_Trip_Time (ms)

Dies bedeutet, dass das TCP Window ein Puffer ist, der bestimmt, wie viele Daten übertragen werden können, bevor der Server beendet und auf die Bestätigung empfangener Pakete wartet. Der Durchsatz ist im Wesentlichen durch das BDP gebunden. Wenn das BDP (oder RWIN) niedriger ist als das Produkt aus Latenz und verfügbarer Bandbreite, können Sie die Leitung nicht füllen, da der Client keine Bestätigungen schnell genug zurücksenden kann. Eine Übertragung darf den Wert (RWIN / Latency) nicht überschreiten, daher muss das TCP Window (RWIN) groß genug sein, um die maximale_verfügbare_bandbreite x maximum_antiaded_delay zu erreichen.

Mit obiger Formel. Die abgeleitete Bandbreitenberechnungsformel lautet:

Bandbreitennutzung (Kbit/s)=BDP(Byte)/RTT(ms) * 8

Hinweis: Diese Formel berechnet die maximale theoretische Bandbreitennutzung. Dabei wird die Paketübertragungszeit des Betriebssystems nicht berücksichtigt, da viele Faktoren involviert sind, z. B. verfügbarer Speicher, NIC-Treiber, lokale NIC-Geschwindigkeit, Cache oder manchmal sogar Festplattengeschwindigkeit. Wenn die Größe der TCP-Fenster groß ist, würde die berechnete Bandbreite größer sein als die tatsächliche Bandbreite. Wenn die TCP-Fenstergröße sehr groß ist, kann die Abweichung auch groß sein.

Mit der abgeleiteten Formel können Sie die Frage beantworten, warum die Backup-Anwendung nur 10 Mbit/s verwenden kann, indem Sie die nachfolgende Berechnung durchführen.

- Im Allgemeinen beträgt der RTT für 1000KM ~15. RTT = 15 ms

- Standardmäßig hat das Windows 2003-Betriebssystem eine Windows-Größe von 17.520 Byte. BDP = 17.520 Byte

- Geben Sie diese Zahlen in die Formel ein:

Bandbreitennutzung (Kbit/s) =17520/15*8

Das Ergebnis ist 9344 Kbit/s oder 9,344 Mbit/s. 9,344 Mbit/s plus TCP- und IP-Header. Das Endergebnis ist ~10 Mbit/s.

Überprüfen

Als Netzwerkadministrator haben Sie die Frage theoretisch beantwortet. Jetzt müssen Sie die Theorie in der realen Welt bestätigen.

Sie können die Theorie mit einem beliebigen Netzwerkleistungstesttool bestätigen. Sie haben beschlossen, iperf auszuführen, um das Problem und die Lösung zu demonstrieren.

Dies ist die Übung-Einrichtung:

1. Ein Server im Rechenzentrum 1 mit der IP-Adresse 10.10.1.1.

2. Ein Client im Rechenzentrum 2 mit der IP-Adresse 172.16.2.1.

Die Topologie ist wie im Bild gezeigt:

Gehen Sie wie folgt vor, um zu überprüfen:

1. Führen Sie iperf3 -s -p 5001 auf 10.10.1.1 aus, um den Server zu bilden und den TCP-Port 5001 anzuhören.

2. Um mit der standardmäßigen TCP-Fenstergröße 17.520 Byte zu testen. Führen Sie iperf3 -c 10.10.1.1 -i 1 -t 360 -w 17520 -p 5001 auf 172.16.2.1 aus, um es zu einem Client zu machen. Dieser Befehl weist iperf an, eine Verbindung zum Server an Port 5001 herzustellen, 360 Sekunden lang auszuführen und die Bandbreitennutzung alle 1 Sekunde bei TCP-Fenstern mit einer Größe von 17.520 Byte zu melden.

3. Zum Testen mit benutzerdefinierter TCP-Fenstergröße, z. B. 6.553.500 Byte, führen Sie iperf3 -c 10.10.1.1 -i 1 -t 360 -w 6553500 -p 5001 aus.

Dies ist das Testergebnis für das Übungsfenster mit der standardmäßigen TCP Window-Größe von 17.520 Byte. Wie Sie sehen, beträgt die Bandbreitennutzung ~10 Mbit/s.

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

Dies ist das Testergebnis im Labor mit einer TCP-Fenstergröße von 6.553.500 Byte. Wie Sie sehen, beträgt die Bandbreitennutzung ~200 Mbit/s.

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

Lösung

Aus Sicht der Softwareentwicklung kann Multi-Threading zur gleichzeitigen Ausführung mehrerer TCP-Sitzungen die Bandbreitennutzung verbessern. Es ist jedoch für Netzwerk- oder Systemadministratoren nicht sinnvoll, den Quellcode zu ändern. Sie können das Betriebssystem optimieren.

RFC1323 definiert mehrere TCP-Erweiterungen für Hochleistungs-TCP.  Dazu gehören Windows Scale Option und selektives ACK. Sie werden von den wichtigsten Betriebssystemen implementiert. Einige Betriebssysteme deaktivieren sie jedoch standardmäßig, selbst der TCP/IP-Stack ist für die Unterstützung geschrieben.

- Diese Betriebssysteme deaktivieren RFC1323 standardmäßig: Windows 2000, Windows 2003, Windows XP und Linux mit Kernel vor 2.6.8.

Wenn Sie das Problem mit Microsoft Windows-Systemen haben, klicken Sie auf diesen Link, um TCP zu optimieren. https://support.microsoft.com/en-au/kb/224829.

Informationen zur Konfiguration anderer Betriebssysteme finden Sie in der Dokumentation des Anbieters.

- Diese Betriebssysteme aktivieren RFC1323 standardmäßig: Windows 2008 und höher, Windows Vista und höher, Linux mit Kernel 2.6.8 und höher. Sie benötigen möglicherweise Patches, um diese Funktionen zu verbessern. In einigen Fällen ist es erwünscht, sie zu deaktivieren. Informationen zur Deaktivierung finden Sie in der Dokumentation des Anbieters.

- Einige Appliances werden auf Microsoft Windows 2000, Windows 2003 oder einem eingebetteten Betriebssystem erstellt. z. B. NAS, Health Care Hardware. Überprüfen Sie in der Dokumentation des Herstellers, ob RFC1323 aktiviert ist.

Wie kann man die Round-Trip Time (RTT) zwischen zwei Standorten angeben?

Im Allgemeinen ist RTT mit Entfernung verknüpft. In der Tabelle unten sind der Abstand und die relevanten RTTs aufgeführt. Sie können den Ping-Test auch verwenden, um unter normalen Netzwerkbedingungen eine Vorstellung vom RTT zu erhalten.

Entfernung (KM)

RTT(ms)

1.000

15

4.000

50

8.000

120

Hinweis: Oben ist nur eine Anleitung, die Echtzeit-RTT-Zeit kann variieren. Die verwendete Technologie wirkt sich auch auf die Latenz aus. So kann die Latenz bei 3G beispielsweise unabhängig von der Entfernung 100 ms häufig betragen. Es gilt auch für Satellit.