Wie man den TCP-Durchsatz zwischen Servern schätzt

Wie man den TCP-Durchsatz zwischen Servern schätzt

Nataliya Oteir Read 7 minutes

Sie haben gerade einen Server mit einem dedizierten Kanal gekauft, der garantiert 1 Gbit/s (oder mehr) liefert, und sind enttäuscht, dass die Dateiübertragungen nicht so schnell sind, wie Sie erwartet hatten. Bevor Sie sich an den technischen Support wenden und nach Netzwerkproblemen suchen, sollten Sie versuchen, den tatsächlichen TCP-Durchsatz von einem Host zum anderen zu ermitteln.

Es gibt zwei wichtige Faktoren für die erfolgreiche Übertragung von Daten über TCP:

  • Größe des TCP-Fensters - ist die Anzahl der Bytes, die eine Seite ohne Bestätigung akzeptiert;
  • Sende-Empfangs-Zirkularverzögerung (Latenz) - die Zeit, die benötigt wird, um ein Paket zu senden und seine Zustellung zu bestätigen.
  • Wenn man diese beiden Dinge kennt, kann man die maximal mögliche Bandbreite berechnen, die zwischen zwei Hosts geteilt werden kann, unabhängig von der Bandbreite.

Die Formel zur Berechnung der TCP-Bandbreite

TCP-Durchsatz (Bits/s) = TCP-Fenstergröße (Bits) / Roundtrip-Latenzzeit (s)

Lassen Sie uns dies anhand eines einfachen Beispiels erläutern. Wir haben eine Gigabit-Ethernet-Verbindung zwischen Servern mit einer Umlauflatenz von 30 ms. Wir müssen eine große Datei von einem Server zu einem anderen Server über FTP senden. Welche Bandbreite können wir tatsächlich erwarten?

Zunächst müssen Sie die TCP-Fenstergröße von Bytes in Bits umrechnen. In diesem Fall verwenden wir die Standard-TCP-Fenstergröße eines Windows-Rechners von 64 KB = 65 536 B = 65 536 * 8 = 524 288 Bits.

Dann müssen Sie die TCP-Fenstergröße in Bits durch die zirkuläre Latenz des Kanals, ausgedrückt in Sekunden, dividieren. Für die Zwecke dieser Berechnungen werden 30 ms zu 0,030 s.

Maximaler TCP-Durchsatz = 524.288 Bits / 0,030 s = 17.476.266 bps = 17,4 Mbps

Obwohl zwischen den beiden Servern eine Gigabit-Ethernet-Verbindung besteht, kann man bei der Übertragung von Dateien nicht mehr als 17 Mbit/s erwarten.

Wie kann man das Netzwerk schneller machen? Die Antwort liegt auf der Hand: die Größe des TCP-Fensters erhöhen und/oder die Signalverzögerung verringern.

Eine größere TCP-Fenstergröße auszuhandeln, erfordert eine individuelle manuelle Konfiguration jedes Servers.

Das wiederum führt zu folgender Frage: Was ist die optimale TCP-Fenstergröße? Um dies herauszufinden, ist es notwendig, eine umgekehrte Berechnung auf der Grundlage der Bandbreite durchzuführen.

Die Formel zur Berechnung der optimalen TCP-Fenstergröße

TCP-Fenstergröße (Bytes) = TCP-Fenstergröße (Bits) / 8 = Bandbreite (Bits/s) * Round-trip-Latenz (s) / 8

Im obigen Beispiel für eine Gigabit-Ethernet-Strecke zwischen Servern mit einer Umlauflatenz von 30 ms ergibt sich folgender Wert:

1.000.000.000 Bits/s * 0,030 s = 30.000.000 Bits / 8 = 3.750.000 Bytes.

Mit anderen Worten, wenn Sie beide Server für ein TCP-Fenster von 3.750 KB konfigurieren, wird die FTP-Verbindung die Bandbreite vollständig ausfüllen und eine Bandbreite von 1 Gbit/s erreichen.

Sie sollten sich darüber im Klaren sein, dass eine Vergrößerung des TCP-Fensters auch Nachteile mit sich bringt.

Erstens wird mehr Speicher für die Pufferung der Server benötigt, der notwendig ist, um unbestätigte Daten zu speichern, falls sie vorhanden sind.

Zweitens kann eine größere TCP-Fenstergröße dazu führen, dass mehr Pakete verloren gehen, was wiederum dazu führt, dass ein ganzes Fenster erneut gesendet werden muss. Dies kann sich negativ auf die Leistung auswirken. Um dieses Problem zu lösen, kann der TCP/IP-Stack des Servers die Option "selektive Quittierung" aktivieren, die standardmäßig deaktiviert ist.

Um das Problem zu lösen, können WAN-Beschleuniger - globale Netzwerk-Gaspedale - an beiden Enden der Leitung platziert werden. Sie können Folgendes tun:

  • ein vergrößertes TCP-Fenster öffnen;
  • bieten die Möglichkeit, das TCP-Protokoll fein zu optimieren (z.B. selektive Quittierung nur zwischen den Gaspedalen);
  • erfordern keine spezielle Serverkonfiguration oder zusätzlichen Pufferspeicher;
  • können spezielle Funktionen der Anwendungsschicht des OSI-Modells (Schicht 7 - Zugang zu Netzdiensten) nutzen, um die Umlaufverzögerung zu verringern.

Latenzzeit

Wollen Sie die Signalverzögerung reduzieren? Ist das prinzipiell machbar? Da wir die Lichtgeschwindigkeit nicht überwinden können, können wir nicht beeinflussen, wie lange ein Signal braucht, um eine bestimmte Strecke zurückzulegen. Die beste Möglichkeit, ein ganzes System zu optimieren, besteht darin, an jedem Ende der Leitung einen WAN-Beschleuniger zu installieren, der empfangene TCP-Pakete an den lokalen Server weiterleitet und ihm so die tatsächliche Datenübertragungsrate "vorgaukelt": Statt auf eine verzögerte Antwort des entfernten Servers zu warten, erhält der lokale Server sofortige Bestätigungen vom Gaspedal. Dies erspart uns die Anpassung der TCP-Fenstergröße auf den Servern selbst. Ein Paar von WAAS-Geräten verwendet eine erhöhte TCP-Fenstergröße und selektive Bestätigungen über das gesamte Leitungssegment.

Darüber hinaus bereinigt WAAS einen TCP-Stream effektiv von redundanten Daten und sorgt so für ein extrem hohes Maß an Kompression (Verdichtung). Jedes Gaspedal merkt sich zuvor gesehene Daten. Wenn ein doppeltes Fragment wieder auftaucht, wird es entfernt und durch eine winzige 2-Byte-Marke ersetzt. Diese winzige Markierung wird von dem entfernten Gaspedal erkannt, das an ihrer Stelle das ursprüngliche Datenfragment einfügt, bevor es den Verkehr an den lokalen Server sendet.

Das bewährte Ergebnis der Optimierung ist ein höherer Durchsatz zwischen den Servern, ohne dass eine spezielle TCP-Abstimmung der lokalen Server erforderlich ist.

Formel zur Berechnung der maximal zulässigen Verzögerung bei einem bestimmten Durchsatz

Beispiel. Auf einer Strecke zwischen zwei entfernten Servern müssen Sie einen FTP-Durchsatz von 10 Gbit/s bei einer Standard-TCP-Fenstergröße (64 KB) gewährleisten. Wie groß darf die Signalverzögerung maximal sein?

Roundtrip-Latenz (ms) = TCP-Fenstergröße (Bits) / erforderliche Bandbreite (bps)

524.288 Bits / 10.000.000 bps = 52,4 Mikrosekunden

Was ist zu tun?

Grundsätzlich brauchen Sie das TCP-Fenster nicht zu vergrößern oder WAN-Booster zu installieren. Verwenden Sie einfach Multithreading und Sie können den Kanal mit 100 % seiner Bandbreite nutzen!

Wie nützlich war dieser Beitrag?

Klicken Sie auf einen Stern, um ihn zu bewerten!
Рейтинг: 0/5 - 0 голосов