Eine Frage der Zeit

(This site is only available in german.)

Ermittlung von realistischen Nutzdatenübertragungsraten im Transmission Control Protocol (TCP)

Besonders bei WAN-Leitungen wecken Leitungsbandbreiten Erwartungen, die meist bei der tatsächlichen Datenübertragung nicht erfüllt werden können.
Eine dann beauftragte kostspielige Erweiterung der Leitungsbandbreite führt zudem oft auch nicht dazu, dass sich der gewünschte Erfolg einstellt.
Die nachfolgenden Darlegungen sollen darüber aufklären, warum das so ist und welche Möglichkeiten es gibt, die realistische Übertragungsrate selbst zu ermitteln.

Das physikalische Übertragungsmedium (OSI-Layer 1)

Die Datenübertragungsgeschwindigkeit im TCP ist im Wesentlichen von zwei Faktoren abhängig: von der

–       Leitungsbandbreite (Leitungsfrequenz, Entgegennahme der Daten) und der
–       Ausbreitungsgeschwindigkeit (die Datenlaufzeit zwischen dem Sender und dem Empfänger).

Leitungsbandbreite:

Die Leitungsbandbreite, oder auch Leitungsgeschwindigkeit, wird in Bit pro Sekunde (bit/s) angegeben.
So entspricht zum Beispiel die maximale Übertragungsfrequenz der Leitung 10 Mbit/s. Physikalisch kommt das einer Frequenz von 10 MHz gleich.

Demnach beansprucht ein Bit 1/10.000.000 Sekunden = 0,0000001 Sekunden = 0,000.1 ms = 0,1 µs (Bitzeit).

1 / Bandbreite ergibt die Zeit für ein Bit = Bitzeit

Der aktuellen Manchester-Codierung folgend, dies ist ein gängiger Leitungscode, der  eine einfache Form der digitalen Phasenmodulation darstellt, benötigt eine 10 Mbit-Leitung also 0,1 µs, um ein Bit auf das Leitungsmedium zu übergeben. Fortbewegt hat sich das Bit innerhalb dieser Zeit jedoch noch nicht.

Die Leitungsbandbreite „t1“ (rot - die Daten werden an die Leitung übergeben) und die Ausbreitungsgeschwindigkeit (grün - delay) „t2“ abzüglich des Protokolloverheads ergeben die Nutzdatenrate.
Die Leitungsbandbreite „t1“ (rot – die Daten werden an die Leitung übergeben) und die Ausbreitungsgeschwindigkeit (grün – delay) „t2“ abzüglich des Protokolloverheads ergeben die Nutzdatenrate.

Ausbreitungsgeschwindigkeit:

Erst nachdem die Daten an die Leitung „übergeben“ wurden, startet die Fortbewegung der Daten entsprechend der Ausbreitungsgeschwindigkeit (engl. delay). Diese hängt im Wesentlichen von der Länge des Übertragungsweges und dem Übertragungsmedium, nämlich Kupfer, Glas oder Luft, ab. Die Datenlaufzeit kann mit „ping“ grob ermittelt werden, angegeben wird die „RoundTripTime“, also die Zeit hin und zurück.

Praktisch: die Datenübertragungsrate (OSI-Layer 6):

Die Datenübertragungsrate bedeutet die tatsächlich übertragene Datenmenge pro Zeit, wie zum Beispiel beim Kopieren von Dateien.

Die Angabe erfolgt hierbei üblicherweise in Byte/s und bezieht sich damit auf die Maßeinheit von Dateigrößen, die ebenfalls in Byte (Kilobyte, Megabyte, Gigabyte usw.) angegeben werden.

Als Basis für Dateigrößen dient die binäre Byte-Angabe.
Je nach Darstellungsform gibt es Unterschiede zwischen der binären Anzeige der Dateigröße, so zu finden bei den Microsoft-Produkten, und der dezimalen Darstellungsform, wie sie beispielsweise bei Mac OS zum Einsatz kommt.
Auf diesen Unterschied soll hier jedoch nicht weiter eingegangen werden. Es geht lediglich um die Sensibilisierung, die jeweils richtige Datenmenge ermitteln zu können.
Oft sind zwischen der maximalen möglichen Bandbreite der Leitung und der tatsächlichen Datenübertragungsrate erhebliche Unterschiede vorhanden, während zeitgleich die Leitung nur gering ausgelastet ist.

Wie kommt es nun zu solchen performancerelevanten Differenzen?

Legt man bei der Berechnung der maximalen Datenübertragungsleitung lediglich die Leitungsbandbreite zu Grunde und vernachlässigt die Ausbreitungsgeschwindigkeit (delay), so unterstellt man, dass die Daten ausschließlich Nutzdaten sind und in eine Richtung ununterbrochen gesendet werden.
In einem solchen Fall kommen die Bits mit unverminderter Geschwindigkeit, nur um das Leitungs- und Komponentendelay, also der Ausbreitungsgeschwindigkeit, verzögert, an.
Berücksichtig man die verschiedenen Protokollheader und Steuerbits von ca. 5 %, ist man in der Lage, auf eine gute und nachvollziehbare Übertragungsleitung zu kommen, wie sie vom Transportprotokoll UDP auch tatsächlich genutzt wird.

Datenübertragung UDP

Auf UDP-basierte Dienste sowie multicast-basierte Übertragungen können so die zur Verfügung stehende Leitungsbandbreite tatsächlich recht gut ausnutzen. Als Faustregel gilt: die Berücksichtigung von 5 % Protokolloverhead, den man von der gesamten Datenrate abrechnen muss.
Mit einem Testtool wie „Iperf“, dies misst die maximale UDP- und TCP-Übertragungsrate und erlaubt außerdem das Einstellen verschiedener zusätzlicher Parameter, kann man die Leitung mit UDP-Paketen belasten und so die praktisch mögliche Übertragungsrate für UDP-basierte Dienste ermitteln, was einen leistungsstarken Iperf-Sender voraussetzt.

 max. Übertragungsleistung im UDP (aufgrund des angenommenen Protokolloverhead von 5% leicht gerundet) = Leitungsbandbreite x 0,95

Datenübertragung TCP

Kommt als Transportprotokoll jedoch das überwiegend verwendete TCP zum Einsatz, ändert sich die Übertragungsrate deutlich, insbesondere über längere WAN-Strecken.
TCP stellt nämlich mit zusätzlichen Bestätigungspaketen sicher, dass alle übertragenen Daten den Sender auch erreichen.

Der Sender pausiert nach einer gewissen Anzahl an übertragenen Daten (TCP WinSize) und wartet auf eine Empfangsbestätigung.
Während des Wartens auf diese Bestätigung erfolgt keine Datenübertragung, die Leitung ist für diese Datenübertragung ungenutzt.

Im LAN und in allen Netzen mit einer sehr geringen Paketlaufzeit erreicht diese Bestätigung den Sender recht zügig und es kommt nur zu einer geringen Unterbrechung in der Datenübertragung.

Bei einem Datentransport im WAN oder in anderen Netzwerken mit längeren Paketlaufzeiten sorgt diese Verzögerung für eine empfindliche Reduzierung der Datenübertragungsleistung, die dadurch weit unter der physikalischen Bandbreite der Leitung liegt.

 

Die durch TCP bedingte maximale Datenübertragung lässt sich grundsätzlich berechnen mit (auf Grund des angenommenen Protokolloverhead von 5% leicht gerundet):
 max. Übertragungsleistung im TCP = TCP WinSize / RTT (round-trip time) in Sekunden x 0,95

Hinzu kommt dann noch die erwähnte Zeit, um die Daten auf die Leitung zu bringen, dies entspricht der Leitungsbandbreite.

Leave a Reply

Your email address will not be published. Required fields are marked *