Faustregel für den TCP-Upstream-Bandbreitenbedarf

Faustregel für den TCP-Upstream-Bandbreitenbedarf

Bei TCP bestätigt der Empfänger hin und wieder den Empfang gesendeter Pakete. Um eine bestimmte Downstream-Bandbreite zu erreichen, ist daher immer eine Mindest-Upstream-Bandbreite erforderlich.

Ich suche nach einem Faktor zur Berechnung des benötigten Upstreams für eine bestimmte Downstream-Bandbreite. Mir ist bewusst, dass es in TCP unterschiedliche Fenstergrößen und wahrscheinlich auch andere Faktoren gibt, die diese Berechnung erschweren. Aber vielleicht gibt es ein Standardszenario, von dem man zumindest eine Annäherung erhalten kann.

Antwort1

Das ist eine schwierige Frage, da sie von vielen Faktoren abhängt. Eine sehr konkrete Antwort zu finden, wäre schwierig und noch schwieriger, zumindest für mich, es zu erklären.

Unter der Annahme, dass die End-to-End-Verbindung stabil genug ist, um das Fenster maximal skalieren zu können, könnten wir sagen, dass wir pro maximaler Fenstergröße eine ACK benötigen. Eine typische maximale Fenstergröße beträgt 64 KB, zumindest glaube ich, dass das der Standardwert für Windows ist... sie wird durch einen Registrierungsschlüssel festgelegt.

Wenn wir das wissen, müssen wir jetzt wissen, wie lang die Roundtrip-Zeit ist, da Sie pro RTT nur eine maximale Fenstergröße an Daten erhalten; eine Möglichkeit, wie die Daten zu Ihnen gelangen und eine Möglichkeit, sie zu bestätigen. Jetzt tun wir so, als würden wir versuchen, den benötigten Upstream für einen TCP-Socket über einen Satelliten zu berechnen.

RTT = ~500ms
Maximale Fenstergröße = 64KB

(64 KB * 8)/.5 = Der maximale Download wäre 1 Mbit/s. Die Zahl mal 8 diente natürlich dazu, unseren Byte-Wert in Bits umzuwandeln.

Übrigens wird die Fenstergröße häufig als Puffer bezeichnet und die TCP-Durchsatzberechnung wird als (RxBuffer/RTT = Durchsatz) angegeben. Jetzt müssen wir den Upstream berechnen. Hoffentlich ist die Antwort mit all dem oben Gesagten offensichtlich: Wir benötigen zwei ACKs pro Sekunde, um zum Absender zurückzukehren. Diese ACKs sind 20Bs + 20Bs * 8 (IP + TCP-Header), 320bps pro Stück. Für eine Verbindung mit 500 ms RTT und einem maximalen RxBuffer von 64 KB sollten wir also nicht mehr als 1 Mbit/s Download und 640bps Upload erwarten.

Ich hoffe, das hat Sie auf den richtigen Weg gebracht. Als ich es noch einmal durchgelesen habe, war ich selbst verwirrt ...

verwandte Informationen