Überlastkontrolle in Netzen: TCP, CUBIC, BBR und QUIC
MittelEinheit 4 von 8 in Kurs: Computernetzwerke – Internetprotokolle, TCP/IP und Routing
Was du lernst
- Beschreibe, wie Verkehr, der die Kapazität einer Verbindung übersteigt, Warteschlangen, Verzögerung und Verlust verursacht, warum dadurch Netzkapazität verschwendet wird und welche zwei grundlegenden Möglichkeiten es gibt, Überlastung zu vermeiden.
- Vollziehe nach, wie Last an einer Engpasswarteschlange zu Verzögerung und Verlust führtDefiniere Überlastung und Engpassverbindung und vollziehe nach, wie die Warteschlange eines Routers wächst, wenn Verkehr schneller ankommt, als die Verbindung ihn senden kann.
- Erkläre die Kosten von Überlastung und ÜberlastkollapsZeige, wie Übertragungswiederholungen, unnötige Duplikate und spät auf langen Pfaden verworfene Pakete Kapazität verschwenden und wie unkontrollierte Sender den Nutzdatendurchsatz gegen null treiben können.
- Vergleiche Ende-zu-Ende-Überlastkontrolle und netzgestützte ÜberlastkontrolleOrdne Verfahren zur Überlastkontrolle danach ein, woher das Überlastsignal stammt, welche Signale sie nutzen und ob sie ein Fenster oder eine Rate steuern.
- Vollziehe nach, wie Last an einer Engpasswarteschlange zu Verzögerung und Verlust führt
- Vollziehe nach, wie ein TCP-Sender mit seinem Überlastfenster mithilfe von Slow Start und Überlastvermeidung die verfügbare Bandbreite erkundet, mit Fast Retransmit, Fast Recovery und Zeitüberschreitungen seine Rate verringert und welcher Durchsatz daraus entsteht.
- Erkläre den Zusammenhang zwischen Überlastfenster und SenderateBestimme anhand von Überlastfenster, Empfangsfenster und Umlaufzeit, wie schnell ein TCP-Sender überträgt und wie viele Daten auf einem Pfad unterwegs sein müssen.
- Vollziehe Slow Start und Überlastvermeidung nachBerechne, wie cwnd im Slow Start und in der Überlastvermeidung wächst, und erkläre, wann der Sender zwischen beiden wechselt.
- Erkläre die Reaktion von TCP auf Verluste: Zeitüberschreitungen, Fast Retransmit und Fast RecoveryWende die TCP-Regeln nach einer Zeitüberschreitung oder drei Duplikatquittungen an und vollziehe die Unterschiede zwischen TCP Tahoe, Reno und NewReno nach.
- Schätze den TCP-Durchsatz anhand des SägezahnverlaufsSchätze mit dem Sägezahnmodell und der Verlustanteilsformel den Durchsatz einer langlebigen TCP-Verbindung und erkenne, warum das klassische TCP auf schnellen, langen Pfaden Schwierigkeiten hat.
- Erkläre den Zusammenhang zwischen Überlastfenster und Senderate
- Erkläre, warum additive Erhöhung und multiplikative Verringerung konkurrierende Datenströme zu gleichen Anteilen führen, miss die Fairness und erkenne die realen Bedingungen, unter denen die Anteile ungleich werden.
- Zeige, warum AIMD zu einer fairen und effizienten Aufteilung konvergiertZeige anhand des Zwei-Datenstrom-Modells von Chiu und Jain, wie additive Erhöhung und multiplikative Verringerung zwei Sender zu gleichen Anteilen an einer Verbindung führen.
- Bewerte die Fairness zwischen realen DatenströmenMiss Fairness mit dem Jain-Fairnessindex und der Max-Min-Fairness und erkläre, wie RTT-Unterschiede, parallele Verbindungen, nicht auf Überlastung reagierender Verkehr und unterschiedliche Algorithmen die Anteile verändern.
- Zeige, warum AIMD zu einer fairen und effizienten Aufteilung konvergiert
- Beschreibe, warum volle Puffer lange Verzögerungen verursachen, wie aktives Warteschlangenmanagement Pakete frühzeitig verwirft oder markiert und wie explizite Überlastbenachrichtigung ein Überlastsignal ohne Paketverlust zum Sender überträgt.
- Erkläre Bufferbloat und aktives WarteschlangenmanagementErkläre, warum große Tail-Drop-Puffer und verlustbasierte Sender dauerhaft gefüllte Warteschlangen erzeugen und wie RED und CoDel Warteschlangen durch frühzeitiges Eingreifen kurz halten.
- Beschreibe die explizite Überlastbenachrichtigung in IP und TCPVerfolge die ECN-Codepunkte und TCP-Flags vom Router über den Empfänger zum Sender und erkläre, wie Data Center TCP und L4S häufige Markierungen für sehr geringe Verzögerungen nutzen.
- Erkläre Bufferbloat und aktives Warteschlangenmanagement
- Erkläre, wie CUBIC sein Fenster als Funktion der Zeit seit dem letzten Verlust vergrößert, wie verzögerungs- und modellbasierte Algorithmen wie Vegas und BBR volle Puffer vermeiden und welche Vor- und Nachteile sie haben.
- Erkläre, wie CUBIC sein Überlastfenster vergrößertBerechne das CUBIC-Fenster anhand seiner kubischen Wachstumsfunktion und erkläre seine geringere Verringerung, seinen Reno-freundlichen Modus und warum sein Wachstum von der Zeit statt von der RTT abhängt.
- Erkläre verzögerungsbasierte Überlastkontrolle und die Pfadmodellierung bei BBRErkläre, wie Vegas aus der Verzögerung auf Warteschlangen schließt, wie BBR die Engpassbandbreite und die minimale RTT schätzt, um mit der richtigen Rate zu senden, und wie CUBIC und BBR im Vergleich abschneiden.
- Erkläre, wie CUBIC sein Überlastfenster vergrößert
- Erkläre, warum TCP schwer zu ändern ist, wie QUIC einen zuverlässigen, sicheren Transport auf UDP aufbaut und wie QUIC Verluste erkennt und Überlastung kontrolliert.
- Erkläre, warum Transportprotokolle verkrusten und wie QUIC dem entgegenwirktErkläre, wie Middleboxes und Kernelimplementierungen die Weiterentwicklung von TCP verlangsamen und wie QUIC-Datenströme, der kombinierte Handshake, Verschlüsselung und Verbindungs-IDs die Grenzen von TCP adressieren.
- Beschreibe Verlusterkennung und Überlastkontrolle in QUICErkläre, wie Paketnummern und Quittungen von QUIC die Verlusterkennung verbessern, und wende die Regeln seiner standardmäßigen Überlastkontrolle für Anfangsfenster, Wiederherstellung, anhaltende Überlastung, ECN und Pacing an.
- Erkläre, warum Transportprotokolle verkrusten und wie QUIC dem entgegenwirkt
Überlastkontrolle in Netzen einfach erklärt
1Warum Überlastung die Zustellung von Nutzdaten verlangsamt
Auch ein schneller Sender kann auf einen langsamen Pfad treffen. Mehrere Eingänge können eine Ausgangsverbindung speisen, deren Kapazität sich ihr gemeinsamer Verkehr teilen muss. Verfolge, was mit Paketen geschieht, wenn diese Kapazität erschöpft ist, und unterscheide anschließend die Zustellung von Nutzdaten von dem Verkehr, der für Wiederholungen und später verlorene Pakete aufgewendet wird. Der Sender muss eine Überlast früh genug erkennen, um sie zu verringern, sei es anhand eigener Beobachtungen oder anhand von Rückmeldungen der Router.
1.1 Von einer stark ausgelasteten Verbindung zur wachsenden Warteschlange
Überlastung beginnt, wenn Verkehr über einen längeren Zeitraum schneller in einem Teil eines Netzes eintrifft, als dieser ihn übertragen kann. Pakete warten im Ausgangspuffer eines Routers, der Warteschlange. Der Engpass ist die Verbindung auf dem Pfad, die für diesen Verkehr die geringste Kapazität bereitstellt.
Verfolge den Überschuss
Angenommen, ein Router empfängt 12 Mbps für eine Ausgangsverbindung, die 10 Mbps senden kann. Er kann den Ausgang nicht auf die Geschwindigkeit des Eingangs beschleunigen. In jeder Sekunde bleiben 2 Megabit zurück, nach Division durch 8 also 250.000 Byte. Ein anfangs leerer Puffer mit 1.000.000 Byte füllt sich in:
Ein Paket, das sich hinter dieser Datenmenge einreiht, wartet, bis die Verbindung die Daten vor ihm übertragen hat:
Sobald der Puffer voll bleibt, überträgt der Ausgang weiterhin nur 10 Mbps. Von den eintreffenden 12 Mbps werden etwa 2 Mbps verworfen, also ein Sechstel des angebotenen Verkehrs. Diese Berechnungen gehen von gleichbleibenden Ankunfts- und Abgangsraten aus; der genaue zeitliche Ablauf einzelner Pakete führt zu kleinen Abweichungen.
Entscheide, ob sich die Warteschlange leert
Ein kurzer Verkehrsschub unterscheidet sich von anhaltender Überlast. Eine Warteschlange kann einen Schub aufnehmen und sich leeren, wenn die Ankunftsrate unter die Ausgangsrate fällt. Entspricht eine gleichbleibende Ankunftsrate genau der Ausgangsrate, bleibt eine bestehende Warteschlange erhalten: Jedes abgehende Paket wird durch ein ankommendes ersetzt. Liegt die Ankunftsrate dauerhaft über der Ausgangsrate, wächst die Warteschlange, bis der Puffer voll ist.
Tatsächlicher Verkehr trifft ungleichmäßig ein. Selbst unterhalb der vollen durchschnittlichen Auslastung führen Verkehrsschübe dazu, dass Pakete warten. Nahe der Kapazitätsgrenze bleibt wenig freie Zeit, um solche Schübe abzubauen, sodass die durchschnittliche Verzögerung stark steigt. Überlastung erhöht vor allem den Warteschlangenanteil der Paketverzögerung; Verarbeitung, Übertragung und Ausbreitung sind eigene Bestandteile.
Benenne die gemeinte Rate
| Rate | Was sie zählt |
|---|---|
| Angebotene Last | In das Netz gesendeter Verkehr einschließlich Übertragungswiederholungen |
| Durchsatz | Pro Sekunde zugestellte Pakete oder Bytes |
| Nutzdatendurchsatz | Pro Sekunde zugestellte neue Nutzdaten der Anwendung, jeweils einmal gezählt |
Unterschiedliche Geschwindigkeiten können den Engpass sichtbar machen: Ein lokales Netz mit 1 Gbps kann eine Zugangsverbindung mit 50 Mbps speisen. Bündelung hat denselben Effekt, wenn mehrere Routereingänge einen Ausgang teilen. Ein einzelner Eingang kann wenig Verkehr führen, während seine Summe mit dem Verkehr der anderen den Ausgang überlastet.
Wähle die richtige Begrenzung
Die Flusskontrolle schützt den Puffer des Empfängers mithilfe des von ihm bekannt gegebenen Empfangsfensters. Die Überlastkontrolle schützt den Pfad zwischen den Endpunkten. Ein Empfänger kann reichlich freien Speicher haben, während ein Router auf dem Pfad Pakete verwirft.
Ein größerer Routerpuffer kann einen längeren Verkehrsschub aufnehmen, doch anhaltende Überlast füllt jeden endlichen Puffer und erhöht die Wartezeit. Eine schnellere Engpassverbindung beseitigt diesen Kapazitätsmangel. Eine andere Verbindung begrenzt dann den Pfad; sie wird nur überlastet, wenn der Verkehr die dort verfügbare Kapazität übersteigt.
Wichtige Erkenntnisse
- Überlastung lässt Warteschlangen wachsen, wenn die Ankunftsrate dauerhaft die verfügbare Ausgangsrate übersteigt.
- Unterhalb der Kapazität leert sich eine Warteschlange; bei gleichbleibender Ankunftsrate genau auf Kapazitätsniveau bleibt sie bestehen.
- Rechne wartende Bytes in Bit um, bevor du zur Bestimmung der Wartezeit durch die Übertragungsrate dividierst.
- Der Nutzdatendurchsatz zählt Nutzdaten einmal; die angebotene Last umfasst Übertragungswiederholungen.
- Die Flusskontrolle schützt den Empfänger; die Überlastkontrolle schützt den Netzwerkpfad.
1.2 Warum ein ausgelastetes Netz sehr wenig zustellen kann
Eine ausgelastete Verbindung ist nur dann nützlich, wenn ihr Verkehr zur Zustellung neuer Daten beiträgt. Überlastung verbraucht Kapazität auf eine Weise, die die Zustellung von Nutzdaten verringern kann, obwohl das Netz ausgelastet bleibt.
Erfasse die Kosten
Zuerst entsteht Warteschlangenverzögerung. Ein Videoanruf kann schwer verständlich werden, bevor Pakete verworfen werden, weil Sprache zu spät ankommt. Zuverlässigkeit allein kann diese Verzögerung nicht beheben.
Verlorene Pakete verursachen weitere Kosten: Ein zuverlässiger Sender überträgt sie erneut. Wenn eine Verbindung mit 10 Mbps gleich große Pakete überträgt und 20 % Daten wiederholen, die bereits über diese Verbindung übertragen wurden, entfallen höchstens 8 Mbps auf neue Daten:
Der Nutzdatendurchsatz der Anwendung ist geringer, wenn Header und mögliche Verluste an anderer Stelle berücksichtigt werden. Die Aktivität der Verbindung lässt den Fortschritt der Anwendung daher größer erscheinen, als er ist.
Manche Übertragungswiederholungen sind unnötig. Ein Paket kann in einer langen Warteschlange warten, wenn der Zeitgeber des Senders abläuft. Sein Ersatz gelangt dann in dasselbe stark belastete Netz. Beide Kopien können eintreffen, aber der Empfänger behält die Daten nur einmal. Die Warteschlange hat ein Verzögerungsproblem in zusätzliche angebotene Last verwandelt.
Betrachte die Verbindungen vor einem verworfenen Paket
Ein Verwerfen nahe dem Ziel kann Arbeit auf mehreren früheren Verbindungen verschwenden. Stell dir vor, ein Paket durchläuft die Verbindungen A und B, bevor es in der Warteschlange für C verworfen wird. Die Übertragungen auf A und B haben Kapazität genutzt, ohne das Paket zuzustellen. Wiederholt sich dies, bleibt auf den vorgelagerten Verbindungen weniger Kapazität für Verkehr, der sein Ziel hätte erreichen können.
Steigt die angebotene Last, steigt zunächst auch der Durchsatz. Werden jedoch genügend Pakete auf nachgelagerten Verbindungen verworfen, führt eine höhere Last dazu, dass mehr Verkehr für Arbeit aufgewendet wird, die verschwendet sein wird. Der Ende-zu-Ende-Durchsatz kann einen Höchstwert erreichen und dann fallen. Der Überlastkollaps ist der Extremfall: Die angebotene Last bleibt hoch, während der Nutzdatendurchsatz gegen null fällt.
Im Oktober 1986 fiel der Durchsatz zwischen dem Lawrence Berkeley Laboratory und der UC Berkeley von 32 kbps auf 40 bps, also um den Faktor 800. Die Arbeit von Jacobson und Karels aus dem Jahr 1988 führte eine abgestimmte Reaktion ein: Slow Start, Überlastvermeidung, eine bessere Schätzung der Umlaufzeit und exponentielles Backoff des Zeitgebers. Fenstersteuerung und sinnvoll eingestellte Zeitgeber wirken an unterschiedlichen Stellen des Rückkopplungskreises.
Finde den sinnvollen Betriebsbereich
Raj Jains Kniepunkt und Klippe beschreiben zwei Schwellen. Jenseits des Kniepunkts bringt zusätzliche Last wenig zusätzlichen Durchsatz, aber viel mehr Verzögerung. Jenseits der Klippe fällt der Durchsatz, weil Verluste und verschwendete Arbeit überwiegen. Die Überlastkontrolle strebt eine effiziente Zustellung nahe dem Kniepunkt an und hält Abstand zum Kollaps.
Im Internet gibt es keine zentrale Steuerung, die jedem Sender eine Rate zuweist. Jeder Sender muss auf die Rückmeldungen reagieren, die er erhält. Sendet einer weiterhin mit einer festen hohen Rate, während andere ihre Rate verringern, kann er deren Kapazität beanspruchen und die Überlast verschärfen.
Übertragungswiederholung macht einen Bytestrom zuverlässig, aber sie macht Verluste nicht kostenlos. Die Wiederherstellung verbraucht Kapazität und verzögert die Zustellung fehlender Daten; das Warten auf einen Zeitgeber für Übertragungswiederholungen kann die Verbindung viel länger zum Stillstand bringen als Fast Recovery.
Wichtige Erkenntnisse
- Warteschlangenverzögerung kann interaktiven Verkehr beeinträchtigen, bevor Pakete verloren gehen.
- Übertragungswiederholungen und unnötige Duplikate verbrauchen Kapazität, ohne neue Anwendungsdaten hinzuzufügen.
- Ein später verworfenes Paket verschwendet die Übertragungen auf vorgelagerten Verbindungen, die es befördert haben.
- Ein Überlastkollaps verbindet hohe Netzaktivität mit einer sehr geringen Zustellung von Nutzdaten.
- Der Kniepunkt bezeichnet steigende Verzögerung bei geringem Durchsatzzuwachs; die Klippe bezeichnet fallenden Durchsatz.
- Jeder Sender trägt dazu bei, die angebotene Last innerhalb der Kapazität des Pfades zu halten.
1.3 Wie Sender erkennen, wann sie langsamer werden müssen
Ein Sender sieht nicht jede Routerwarteschlange auf seinem Pfad direkt. Überlastkontrolle ist ein Rückkopplungsprozess: Die Zustellung wird beobachtet, die Beobachtungen werden gedeutet und die Menge oder Rate des ins Netz eintretenden Verkehrs wird angepasst.
Bestimme die Quelle der Rückmeldung
Bei der Ende-zu-Ende-Überlastkontrolle schließen Endpunkte aus Verlust oder Verzögerung auf Überlastung, ohne eine ausdrückliche Routernachricht zu erhalten. Reno nutzt Verlust. Vegas nutzt Änderungen der Umlaufzeit. BBR erstellt aus Messungen der Zustellrate und RTT ein Pfadmodell.
Bei der netzgestützten Überlastkontrolle liefert ein Router eine ausdrückliche Rückmeldung. ECN markiert ein Paket auf dem Weg zum Empfänger, der die Markierung in seiner Quittung meldet. Ältere ATM-Verfahren konnten eine ausdrücklich erlaubte Rate melden. Ein Router kann auch eine Nachricht direkt an den Sender zurückschicken, ein sogenanntes Drosselpaket. ICMP Source Quench im Internet nutzte diesen Ansatz und wurde 2012 für veraltet erklärt.
Deute Signale sorgfältig
| Signal | Was es bietet | Was den Sender irreführen kann |
|---|---|---|
| Verlust | Einen Hinweis darauf, dass Pakete nicht angekommen sind | Beschädigung auf Funkverbindungen kann ohne Überlastung zu Verlust führen |
| Steigende RTT | Eine frühe Warnung vor zusätzlicher Wartezeit | Auch eine Routenänderung kann die RTT erhöhen |
| Explizite Markierungen | Eine Überlastwarnung des Routers ohne Verlust markierter Daten | Der Pfad und die Endpunkte müssen das Verfahren unterstützen |
Bei Tail-Drop-Warteschlangen tritt Verlust normalerweise auf, nachdem sich der Puffer gefüllt hat. Aktives Warteschlangenmanagement kann Pakete früher verwerfen oder markieren. Das verändert den Zeitpunkt des Signals, aber der Sender muss weiterhin reagieren.
Die kleinste beobachtete RTT ist nützlich, weil sie näherungsweise einem Pfad mit wenig Wartezeit in Warteschlangen entspricht. Eine RTT über diesem Minimum deutet auf Wartezeit hin, doch ein Endpunkt muss Messungen über einen längeren Zeitraum auswerten. Weder ein einzelner störanfälliger Messwert noch jedes verlorene Funkpaket zeigt die Ursache mit Sicherheit an.
Steuere ein Fenster oder eine Rate
Ein fensterbasierter Sender begrenzt unquittierte Daten, die unterwegs sind. Wenn Quittungen zurückkommen, wird Platz für neue Daten frei. Ein ratenbasierter Sender legt eine Zielrate fest und nutzt meist Pacing, um Pakete über die Zeit zu verteilen. Die Steuergrößen hängen zusammen:
Zum Beispiel entsprechen 100.000 Byte pro 50 ms einer Rate von 2.000.000 Byte/s oder 16 Mbps, wenn das Fenster die maßgebliche Beschränkung ist. Eine ratenbasierte Steuerung kann ebenfalls ein Fenster als obere Schranke für ausstehende Daten nutzen.
Wäge mehrere Ziele ab
Effizienz bedeutet, die verfügbare Engpasskapazität auszulasten. Fairness betrifft die Aufteilung unter konkurrierenden Datenströmen. Geringe Verzögerung setzt kurze Warteschlangen voraus; Stabilität vermeidet große, wiederholte Schwankungen; Reaktionsfähigkeit bedeutet, sich an Änderungen der Kapazität oder der Konkurrenz anzupassen. Eine Regel, die einen Pfad schnell auslastet, kann dennoch ungeeignet sein, um die Verzögerung gering zu halten oder mit anderen Algorithmen zu teilen.
Die TCP-Überlastkontrolle läuft normalerweise im Betriebssystem, die von QUIC normalerweise in einer Anwendungsbibliothek. UDP stellt keine Überlastkontrolle bereit, sodass Anwendungen, die es nutzen, selbst dafür sorgen müssen. Das Trägerprotokoll entbindet nicht von der Pflicht, auf Überlastung zu reagieren.
Wichtige Erkenntnisse
- Ende-zu-Ende-Verfahren schließen auf Überlastung; netzgestützte Verfahren erhalten ausdrückliche Rückmeldungen von Routern.
- Verlust, Verzögerung und explizite Markierungen unterscheiden sich im Zeitpunkt und in den Grenzen ihrer Deutung.
- Fenstersteuerung begrenzt unterwegs befindliche Daten; Pacing verteilt Pakete mit einer gewählten Rate über die Zeit.
- Effizienz, Fairness, Verzögerung, Stabilität und Reaktionsfähigkeit müssen gemeinsam beurteilt werden.
2Wie TCP sein Fenster vergrößert und nach Verlusten wiederherstellt
TCP steuert, wie viele unquittierte Daten es im Netz belässt. Quittungen ermöglichen das Wachstum dieser Menge; Verluste lassen sie schrumpfen. Verfolge das Fenster in Segmenten, um die Wachstumsregeln deutlich zu sehen, und rechne anschließend in Byte und Sekunden um, um eine Rate zu schätzen. Die Unterscheidung zwischen einer Zeitüberschreitung und der Wiederherstellung nach Duplikatquittungen erklärt die unterschiedlichen Rückgänge in einem Fensterverlauf und zeigt, warum das klassische TCP auf schnellen Pfaden mit langen Umlaufzeiten Schwierigkeiten bei der Wiederherstellung hat.
2.1 Fenster, Umlaufzeit und Pfad
Das Überlastfenster, cwnd, ist eine senderseitige Begrenzung für unquittierte Daten, die unterwegs sind. Es wird in Byte gemessen, auch wenn Ablaufbeispiele häufig Segmente maximaler Größe zählen. Es ist kein TCP-Headerfeld. Der Empfänger gibt eine andere Begrenzung bekannt: das Empfangsfenster rwnd.
Wende beide Begrenzungen an
Neue Übertragungen müssen sowohl die Flusskontrolle als auch die Überlastkontrolle einhalten. Die nutzbare Begrenzung ist:
Beträgt cwnd 30.000 Byte und rwnd 18.000 Byte, ist die Begrenzung des Empfängers maßgeblich. Sind noch 12.000 Byte unquittiert unterwegs, kann der Sender weitere 6.000 Byte senden. Nach einer Verringerung des Überlastfensters können bereits gesendete Daten die neue Begrenzung übersteigen; der Sender wartet auf Quittungen, bevor er weitere Daten sendet.
Die maximale Segmentgröße, MSS, zählt Anwendungsdaten ohne Header. Von einer Ethernet-MTU mit 1.500 Byte bleiben nach Abzug von 20 Byte für den IPv4-Header und 20 Byte für den TCP-Header ohne Optionen 1.460 Byte. Standards verwenden SMSS für die MSS des Senders.
Rechne ein Fenster in eine Rate um
Ein durch sein Fenster begrenzter Sender liefert ungefähr ein Fenster pro RTT. Bei einem cwnd von 65.536 Byte und einer RTT von 50 ms:
Multipliziere mit 8, um etwa 10,5 Mbps zu erhalten. Diese Schätzung setzt außerdem genügend Anwendungsdaten, ein mindestens ebenso großes Empfangsfenster und einen Pfad voraus, der die resultierende Rate übertragen kann.
Laste den Pfad aus, ohne seine Warteschlange zu füllen
Das Bandbreiten-Verzögerungs-Produkt, BDP, ist die Engpassbandbreite mal der minimalen RTT ohne Warteschlangen. Für 100 Mbps und 40 ms:
Die Division durch 8 ergibt 500.000 Byte, also etwa 342 Segmente à 1.460 Byte. Ein BDP an unterwegs befindlichen Daten hält diesen idealisierten Engpass ohne dauerhaft gefüllte Warteschlange ausgelastet. Weniger Daten lassen Kapazität ungenutzt; überschüssige Daten warten und erhöhen die gemessene RTT. Berechnest du das BDP aus einer bereits erhöhten RTT, hältst du wartende Daten fälschlich für Daten, die der Pfad benötigt.
Die Quittungstaktung hilft, das Tempo zu halten. Wenn Pakete den Engpass verlassen, kehren Quittungen zurück und geben Platz für Ersatz frei. Im stationären Zustand helfen Abgänge daher, den Zeitpunkt neuer Ankünfte zu bestimmen. Das ist der Gedanke der Paketerhaltung hinter der Selbsttaktung von TCP.
Lege Anfangswert und Schwelle fest
Das Anfangsfenster von RFC 5681 reicht je nach SMSS von zwei bis vier Segmenten: vier bis einschließlich 1.095 Byte, drei bis einschließlich 2.190 Byte und darüber zwei. RFC 6928 erlaubt ein Anfangsfenster von bis zu zehn Segmenten. Ein Ablaufbeispiel, das bei einem Segment beginnt, ist eine nützliche Darstellung zum Lernen und keine Aussage, dass alle neuen Verbindungen dort beginnen.
ssthresh, die Slow-Start-Schwelle, bestimmt den Wachstumsmodus. Darunter nutzt TCP Slow Start, darüber Überlastvermeidung. Bei Gleichheit erlaubt RFC 5681 beide Möglichkeiten. Eine hohe Anfangsschwelle ermöglicht einem neuen Sender, die Kapazität durch Slow Start zu erkunden.
Wichtige Erkenntnisse
- cwnd ist ein interner Zustand des Senders; rwnd wird vom Empfänger bekannt gegeben.
- Neue Daten müssen beide Fenster einhalten, nachdem bereits unterwegs befindliche Bytes berücksichtigt wurden.
- Die MSS zählt Anwendungsdaten ohne IP- und TCP-Header.
- Eine durch das Fenster begrenzte Rate entspricht ungefähr dem nutzbaren Fenster dividiert durch die RTT.
- Das BDP nutzt die RTT ohne Warteschlangen; überschüssige unterwegs befindliche Daten bilden eine Warteschlange.
- Die Quittungstaktung bindet neue Übertragungen an die Zustellung über den Engpass.
- Anfangsfenster und ssthresh bestimmen, wie ein Ablauf beginnt und wächst.
2.2 Exponentielles Wachstum, dann ein Segment pro Umlaufzeit
TCP muss zunächst erkunden, wie viel Verkehr der Pfad übertragen kann. Slow Start vergrößert das Fenster von einem kleinen Anfangswert aus schnell. Sobald die Slow-Start-Schwelle erreicht ist, erkundet die Überlastvermeidung die Kapazität vorsichtiger.
Zähle Quittungen im Slow Start
RFC 5681 erhöht cwnd für jede Quittung neuer Daten um bis zu eine SMSS:
wobei N die Anzahl der neu quittierten Bytes ist. Bei einer Quittung pro vollem Segment und genügend Daten zum Füllen jedes Fensters schafft jedes gesendete Segment in der nächsten Runde Platz für zwei: einen Ersatz und ein Segment aus dem vergrößerten Fenster.
Ausgehend von 1 MSS lauten die Werte pro Runde 1, 2, 4, 8, 16, 32 und 64 MSS. Nach sechs RTTs sind 64 MSS erreicht. Bei 100 ms pro RTT sind das 0,6 s. Der Name bezeichnet einen sichereren Beginn als das sofortige Senden eines ganzen Empfangsfensters; das Wachstum selbst ist exponentiell.
Verzögerte Quittungen verändern die Rechnung. Sendet der Empfänger für jeweils zwei volle Segmente eine Quittung, ergibt die einfache Regel pro Quittung etwa das 1,5-Fache pro RTT. Appropriate Byte Counting, beschrieben in RFC 3465, nutzt neu quittierte Bytes, um die Abhängigkeit von der Häufigkeit der Quittungen zu beheben.
Wechsle den Wachstumsmodus
Wähle für ein Ablaufbeispiel mit einem anfänglichen cwnd von 1 MSS und ssthresh von 8 MSS bei Gleichheit die Überlastvermeidung. Der Ablauf lautet:
Die ersten drei Änderungen verdoppeln das Fenster. Spätere Änderungen addieren eine MSS pro RTT. Verlust kann beide Phasen unterbrechen. Implementierungen mit HyStart++ (RFC 9406) können Slow Start außerdem vorzeitig verlassen, wenn die Verzögerung steigt.
Erkläre die additive Erhöhung
Eine übliche Regel pro Quittung während der Überlastvermeidung lautet:
Bei 10 MSS fügt eine Quittung etwa 0,1 MSS hinzu. Im Verlauf der Runde treffen etwa zehn Quittungen ein, sodass die gesamte Erhöhung etwa eine MSS beträgt. Der Zuwachs pro Quittung wird mit wachsendem cwnd kleiner, sodass die Erhöhung pro Runde ungefähr konstant bleibt.
Dieser Unterschied ist auf einem großen Pfad bedeutsam. Von 16 auf 32 MSS dauert es im idealen Slow Start eine RTT, in der Überlastvermeidung aber sechzehn RTTs. Das langsamere Wachstum verringert eine plötzliche Überschreitung der Kapazität, sobald der Sender über eine brauchbare Schätzung verfügt.
Erkenne einen Neustart
Slow Start ist nicht auf den Beginn einer Verbindung beschränkt. Der Ablauf des Wiederholungszeitlimits setzt cwnd auf ein Segment zurück. Auch eine Ruhephase, die länger als das Wiederholungszeitlimit dauert, erfordert einen Neustart mit höchstens dem Anfangsfenster, weil die frühere Quittungstaktung und Kapazitätsschätzung möglicherweise nicht mehr zum Pfad passen.
Die Überlastvermeidung hält cwnd nicht auf einem festen sicheren Wert. Sie erhöht das Fenster weiter, bis eine Überlastrückmeldung eintrifft. Auf einem Pfad mit Tail Drop führt dieses fortgesetzte Erkunden tendenziell zu einer dauerhaft gefüllten Warteschlange, bevor ein Verlust dem Sender signalisiert, seine Rate zu verringern.
Wichtige Erkenntnisse
- Bei einer Quittung pro Segment verdoppelt sich cwnd im idealen Slow Start in jeder RTT.
- Verzögerte Quittungen verlangsamen das Wachstum nach der einfachen Regel pro Quittung.
- Die Überlastvermeidung addiert etwa eine MSS pro RTT, nicht pro Quittung.
- ssthresh trennt die Wachstumsmodi; ein Ablaufbeispiel muss bei Gleichheit eine Regel wählen.
- Zeitüberschreitungen und lange Ruhephasen können einen erneuten Slow Start erfordern.
2.3 Unterschiedliche Verluste führen zu unterschiedlichen Wiederherstellungsverläufen
TCP kann aus einem Zeitgeber oder aus Duplikatquittungen auf ein fehlendes Segment schließen. Der Unterschied ist wichtig: Eine Zeitüberschreitung liefert weniger Hinweise darauf, dass das Netz weiterhin Verkehr zustellt, als drei Duplikatquittungen.
Lege die neue Schwelle fest
Reno verwendet die tatsächlich ausstehende Datenmenge, FlightSize, um Folgendes festzulegen:
FlightSize liegt bei einer voll ausgelasteten Übertragung oft nahe bei cwnd. Beide Werte müssen aber nicht gleich sein, wenn die Anwendung wenig Daten sendet. Die untere Schranke verhindert, dass die Schwelle unter zwei Segmente fällt.
Nach einer Zeitüberschreitung überträgt der Sender erneut, setzt cwnd auf eine SMSS und beginnt Slow Start erneut. Wiederholte Zeitüberschreitungen für dieselben Daten verdoppeln das Wiederholungszeitlimit. Dieses exponentielle Backoff verhindert, dass ein anhaltender Fehler einen ebenso anhaltenden Strom von Wiederholungsversuchen erzeugt.
Stelle die Übertragung vor Ablauf des Zeitgebers wieder her
Drei Duplikatquittungen zeigen, dass drei spätere Segmente hinter einer Lücke angekommen sind. Sie bedeuten nicht, dass drei Segmente verloren gingen. Ein oder zwei Duplikate können durch eine andere Reihenfolge beim Eintreffen entstehen. Daher wartet TCP auf das dritte, bevor Fast Retransmit das fehlende Segment sendet.
Reno beginnt dann Fast Recovery. Angenommen, FlightSize beträgt 12 MSS. Die neue Schwelle beträgt 6 MSS und Reno setzt vorübergehend:
Die drei zusätzlichen Segmente berücksichtigen Pakete, die nachweislich das Netz verlassen haben. Jede weitere Duplikatquittung bläht cwnd um eine MSS auf und ermöglicht weiteres Senden, wenn das Fenster es erlaubt. Sobald eine Quittung die kumulative Quittung voranschiebt, setzt Reno cwnd wieder auf 6 MSS und setzt die Überlastvermeidung fort.
| Ereignis bei 12 MSS ausstehenden Daten | Tahoe | Reno |
|---|---|---|
| Zeitüberschreitung | cwnd wird auf 1 MSS gesetzt | cwnd wird auf 1 MSS gesetzt |
| Dritte Duplikatquittung | Erneut übertragen und bei 1 MSS neu beginnen | Erneut übertragen und Fast Recovery bei 9 MSS beginnen |
| Erfolgreiche Wiederherstellung | Mit Slow Start wachsen | Auf 6 MSS zurücksetzen, dann additiv wachsen |
Bei einem Anfangsfenster von 1 MSS und ssthresh von 8 MSS wächst cwnd vor dem Verlust über 1, 2, 4, 8, 9, 10, 11, 12 MSS. Reno fährt schließlich mit 6, 7, 8, 9 fort. Tahoe beginnt erneut mit 1, 2, 4, erreicht die neue Schwelle von 6 und fährt dann mit 7, 8 fort.
Behebe mehrere Lücken in einem Fenster
Das klassische Reno verlässt Fast Recovery bei der ersten Quittung neuer Daten. Deckt diese Quittung nur einen Teil der ursprünglich unterwegs befindlichen Daten ab, bleibt eine weitere Lücke. Reno kann erneut verringern oder eine Zeitüberschreitung erfahren.
NewReno (RFC 6582) bleibt bei einer solchen Teilquittung in Fast Recovery und überträgt das nächste fehlende Segment erneut. Es verlässt die Phase, wenn alle bei Beginn der Wiederherstellung ausstehenden Daten quittiert sind. SACK meldet empfangene Blöcke ausdrücklich; eine SACK-basierte Wiederherstellung kann mehrere Lücken innerhalb einer Umlaufzeit erkennen und beheben.
Ein Überlastungsereignis sollte normalerweise eine Verringerung verursachen, auch wenn mehrere Pakete verloren gehen. NewReno und die SACK-basierte Wiederherstellung handhaben dies zuverlässiger als das klassische Reno. CUBIC verwendet für gewöhnliche Überlastsignale einen anderen Verringerungsfaktor und behält 70 % bei, beginnt nach einer Zeitüberschreitung aber ebenfalls erneut bei einem Segment.
Wichtige Erkenntnisse
- Reno legt ssthresh anhand von FlightSize fest, mit mindestens zwei SMSS.
- Eine Zeitüberschreitung setzt cwnd auf eine SMSS zurück; wiederholte Zeitüberschreitungen verlängern das Zeitlimit durch Backoff.
- Drei Duplikatquittungen lösen Fast Retransmit aus; sie zeigen später eingetroffene Segmente hinter einer Lücke an.
- Reno bläht cwnd während Fast Recovery auf und setzt es beim Verlassen der Phase auf ssthresh zurück.
- NewReno bleibt bei Teilquittungen in der Wiederherstellungsphase, um mehrere Verluste zu beheben.
- SACK meldet empfangene Blöcke, sodass der Sender mehr als eine Lücke finden kann.
- Tahoe beginnt nach einem durch Duplikatquittungen erkannten Verlust erneut mit Slow Start; Reno wächst nach der Wiederherstellung normalerweise additiv weiter.
- Verringerungen des Überlastfensters beziehen sich auf Überlastungsereignisse, nicht auf jedes einzelne verlorene Paket.
2.4 Schätze die Rate einer langlebigen Übertragung
Das klassische Reno erhöht sein Fenster wiederholt und verringert es nach einer Überlastung. Der entstehende Sägezahnverlauf liefert eine nützliche Schätzung für den stationären Zustand, wenn die RTT ungefähr konstant ist, Fast Retransmit Verluste erkennt und keine Zeitüberschreitungen oder Slow-Start-Phasen auftreten.
Bilde den Durchschnitt des Fensters
Das Spitzenfenster betrage W Segmente. Eine Halbierung ergibt einen Bereich von W/2 bis W, dessen Durchschnitt 0,75 W beträgt. Multipliziere mit der MSS, um Byte pro Umlaufzeit zu erhalten, und dividiere dann durch die RTT:
Bei W von 24 Segmenten, einer MSS von 1.460 Byte und einer RTT von 80 ms beträgt die Spitzenrate 3,504 Mbps. Der Durchschnitt liegt bei etwa 2,63 Mbps. Denk daran, dass ein Fenster in Segmenten einen Faktor für die Segmentgröße benötigt; bei einem Fenster, das bereits in Byte angegeben ist, entfällt dieser Faktor.
Stelle den Zusammenhang zwischen Durchsatz und Verlust her
Die Mathis-Näherung beschreibt dasselbe Reno-ähnliche Verhalten mithilfe des Verlustanteils L:
Steht die MSS in Byte und die RTT in Sekunden, wird T in Byte/s angegeben. Bei einer MSS von 1.460 Byte, einer RTT von 0,1 s und einem Verlustanteil von 0,0001 beträgt der Nenner 0,001 s. Das Ergebnis sind 1.781.200 Byte/s, nach Multiplikation mit 8 also etwa 14,25 Mbps.
Bei festem Verlustanteil halbiert eine Verdopplung der RTT den Durchsatz. Bei fester RTT muss der Verlustanteil auf ein Viertel fallen, um den Durchsatz zu verdoppeln, weil der Nenner die Quadratwurzel des Verlustanteils enthält. Ein Verlustanteil von 0,0001 bedeutet 0,01 %, nicht 0,0001 %.
Erkenne das Problem bei hohen Übertragungsraten
Ein Pfad mit 10 Gbps und einer RTT ohne Warteschlangen von 100 ms benötigt zur Auslastung 1 Milliarde Bit oder 125.000.000 Byte an unterwegs befindlichen Daten. Bei Segmenten mit 1.500 Byte ergibt das etwa 83.333 Segmente. Nach einer Halbierung dieses Fensters müssen etwa 41.667 Segmente wieder hinzugewonnen werden. Reno fügt eines pro RTT hinzu, sodass das etwa 4.167 s dauert, fast 70 Minuten.
Der Wert von 83.333 Segmenten ist das Fenster, das benötigt wird, um zu einem bestimmten Zeitpunkt mit 10 Gbps zu senden. Ein Reno-Sägezahn mit durchschnittlich 10 Gbps bräuchte eine höhere Spitze, weil sein durchschnittliches Fenster nur drei Viertel seines Spitzenwerts beträgt. Die Verlustanteilsformel schätzt, dass für einen dauerhaften Durchschnitt von 10 Gbps bei dieser MSS und RTT ungefähr ein Segment unter 4,7 Milliarden verloren gehen darf.
Prüfe weitere Begrenzungen
Eine Überlastkontrolle kann nicht schneller zustellen, als der Engpass es erlaubt, und ein kleines Empfangsfenster kann vor cwnd zur Begrenzung werden. Verwende die kleinste zutreffende Schranke. Zeitüberschreitungen senken die Rate unter den Wert des einfachen Modells, und die Übertragung eines kleinen Objekts kann vollständig im Slow Start enden. Ihre Abschlusszeit hängt stark von den Anfangsrunden und dem Anfangsfenster ab, sodass die Formel für langlebige Übertragungen sie schlecht beschreibt.
Eine schnellere Zugangsverbindung hilft daher nur, wenn sie eine wirksame Begrenzung beseitigt. Eine lange RTT, Verlust oder ein kleines Fenster können eine einzelne Verbindung weit unter der Kapazität der ausgebauten Verbindung halten.
Wichtige Erkenntnisse
- Ein Reno-Sägezahn von W/2 bis W hat ein durchschnittliches Fenster von etwa 0,75 W.
- Das Mathis-Modell ergibt einen Durchsatz proportional zu 1/RTT und 1/√L.
- Achte beim Berechnen von Raten auf einheitliche Angaben in Segmenten, Byte, Bit und Sekunden.
- Auf Pfaden mit großem BDP erholt sich Reno langsam, weil es nur um ein Segment pro RTT wächst.
- Engpasskapazität und Empfangsfenster bleiben voneinander unabhängige obere Schranken.
- Kurze Übertragungen und Verbindungen mit vielen Zeitüberschreitungen benötigen mehr als ein Modell für den stationären Zustand.
3Wie Datenströme eine gemeinsam genutzte Verbindung aufteilen
Eine Verbindung auszulasten und sie fair aufzuteilen sind unterschiedliche Ziele. Zwei Datenströme können die gesamte Kapazität nutzen, während einer fast alles beansprucht. Vollziehe nach, wie gleiche additive Erhöhungen und proportionale Verringerungen ihre Raten verändern, und prüfe dann, was bei unterschiedlichen Bedingungen geschieht. Fairnessmaße helfen, das Ergebnis zu beschreiben. Um ein Maß zu deuten, musst du aber auch wissen, wen die Datenströme vertreten und wie viel Verkehr jeder benötigt.
3.1 Warum AIMD Datenströme zu gleichen Anteilen führt
Wenn K aktive Datenströme jeweils mehr Kapazität benötigen, als ein Engpass ihnen geben kann, beträgt ein gleicher Anteil pro Datenstrom R/K, wobei R die verfügbare Rate ist. Effizienz fragt danach, ob ihre Raten zusammen R ergeben. Fairness fragt danach, wie gleichmäßig sie die Kapazität aufteilen.
Trage zwei Raten in ein Diagramm ein
In einem Chiu-Jain-Diagramm entsprechen die waagerechte und die senkrechte Koordinate den Raten der beiden Datenströme. Die Effizienzgerade lautet:
Die Fairnessgerade ist die Diagonale, auf der die Raten gleich sind. Ihr Schnittpunkt steht für die faire Aufteilung bei voller Auslastung. Auf einer Verbindung mit 10 Mbps sind das 5 Mbps pro Datenstrom. Punkte unterhalb der Effizienzgeraden lassen Kapazität ungenutzt; Punkte oberhalb bieten mehr Verkehr an, als die Verbindung übertragen kann.
Unterscheide die beiden Anpassungen
Die additive Erhöhung addiert zu jeder Rate denselben Betrag. Ausgehend von 8 und 1 Mbps ergeben sich durch Addition von jeweils 0,5 Mbps die Raten 8,5 und 1,5 Mbps. Die Differenz bleibt 7 Mbps, aber der kleinere Datenstrom gewinnt im Verhältnis zu seiner Ausgangsrate mehr hinzu. Im Diagramm bewegt sich der Punkt parallel zur Gleichheitsdiagonalen.
Die multiplikative Verringerung multipliziert beide Raten mit demselben Faktor. Die Halbierung von 9 und 2 Mbps ergibt 4,5 und 1 Mbps. Ihr Verhältnis bleibt unverändert, während die absolute Differenz von 7 auf 3,5 Mbps fällt. Der Punkt bewegt sich zum Ursprung hin und die Überlast wird schnell abgebaut.
Dies sind unterschiedliche Arten der Verbesserung: Eine gleiche Addition verbessert das relative Verhältnis; eine proportionale Verringerung verkleinert den absoluten Abstand. Die Wiederholung beider Schritte verhindert, dass der Abstand beim erneuten Erkunden der Kapazität wieder wächst.
Verfolge mehrere Zyklen
Beginne bei 8 und 1 Mbps auf der Verbindung mit 10 Mbps. Addiere pro Schritt und Datenstrom 0,5 Mbps und verringere die Raten erst, nachdem ihre Summe die Kapazität übersteigt. Nach zwei Erhöhungen betragen die Raten 9 und 2, zusammen 11. Die Halbierung ergibt 4,5 und 1.
Fünf weitere Erhöhungen führen zu 7 und 3,5, zusammen 10,5. Die Halbierung ergibt 3,5 und 1,75. Die Abstände betrugen 7; 3,5 und 1,75 Mbps. Eine weitere gleichzeitige Halbierung führt zu einem nächsten Abstand von 0,875 Mbps. Die Datenströme nähern sich gleichen Anteilen, während ihre Summe weiterhin um die verfügbare Kapazität schwankt.
Vergleiche andere Anpassungsregeln
| Regel | Was bei ungleichen Raten geschieht |
|---|---|
| Additive Erhöhung, additive Verringerung | Gleiche Additionen und Subtraktionen erhalten den absoluten Abstand |
| Multiplikative Erhöhung, multiplikative Verringerung | Gleiche proportionale Änderungen erhalten das Verhältnis der Raten |
| Multiplikative Erhöhung, additive Verringerung | Das Wachstum begünstigt den größeren Datenstrom und das Gleichgewicht kann sich verschlechtern |
| Additive Erhöhung, multiplikative Verringerung | Wiederholte Zyklen nähern sich gleichen Anteilen und effizienter Nutzung |
Diese Konvergenz setzt gleiche RTTs, zeitgleiche Überlastrückmeldungen, übereinstimmende Reaktionen und Datenströme voraus, die lange genug aktiv bleiben. Renos additiver Schritt beträgt etwa eine MSS pro RTT und sein Verringerungsfaktor eine Hälfte. Andere positive additive Schritte und Verringerungsfaktoren zwischen null und eins führen zum selben grundlegenden Konvergenzargument. Reale Datenströme müssen nicht alle Annahmen erfüllen, sodass ein zu einem bestimmten Zeitpunkt ungleiches Wertepaar für sich genommen kein Versagen von AIMD zeigt.
Wichtige Erkenntnisse
- Effizienz betrifft die Summe der Raten; Fairness betrifft ihre Aufteilung.
- Gleiche additive Erhöhungen erhalten den absoluten Abstand und verbessern zugleich das relative Verhältnis.
- Gleiche multiplikative Verringerungen erhalten das Verhältnis und verkleinern zugleich den absoluten Abstand.
- Wiederholte AIMD-Zyklen konvergieren bei gleichen RTTs, zeitgleichen Rückmeldungen und übereinstimmenden Reaktionen.
- Fairness beschreibt die langfristige Aufteilung, während die Raten weiter schwanken.
3.2 Miss die Aufteilung und erkläre ungleiche Ergebnisse
Gleiche Anteile sind ein nützlicher Bezugspunkt, aber reale Datenströme können sich in Bedarf, RTT, Anzahl der Verbindungen und Überlastkontrolle unterscheiden. Eine Aussage über Fairness braucht eine klare Antwort auf „Fair zwischen welchen Datenströmen?“
Berechne den Jain-Fairnessindex
Für nicht negative Datenstromraten mit einer Summe ungleich null lautet der Jain-Fairnessindex:
Die Raten 8 und 2 Mbps ergeben eine Summe von 10 und eine Quadratsumme von 68. Der Index beträgt daher etwa 0,735. Gleiche Raten ergeben 1. Erhält einer von n Datenströmen alles, beträgt der Index 1/n.
Der Index misst Gleichheit, nicht Auslastung. Zwei Datenströme mit jeweils 1 Mbps und zwei mit jeweils 5 Mbps haben beide einen Index von 1, obwohl sie unterschiedliche Anteile einer Verbindung mit 10 Mbps nutzen. Prüfe die Gesamtrate getrennt davon.
Berücksichtige begrenzten Bedarf
Max-Min-Fairness gibt Datenströmen mit geringem Bedarf, was sie benötigen, und teilt dann die verbleibende Kapazität unter den Datenströmen auf, die noch mehr möchten. Auf einer Verbindung mit 12 Mbps benötigen drei Datenströme 2, 8 und 10 Mbps. Der anfängliche gleiche Anteil beträgt 4 Mbps. Der erste benötigt nur 2, sodass 10 Mbps für die anderen beiden bleiben. Die Aufteilung beträgt daher 2, 5 und 5 Mbps.
Eine der größeren Raten zu erhöhen würde erfordern, die Rate eines Datenstroms zu verringern, dessen Rate bereits gleich groß oder kleiner ist. Diese Eigenschaft definiert Max-Min-Fairness. Ihre ungleiche Aufteilung kann angemessen sein, auch wenn Jains Gleichheitsmaß unter 1 fällt.
Erkenne Vorteile einzelner Datenströme
Reno wächst einmal pro RTT. Bei gleichem Verlustanteil ist sein ungefährer Durchsatz umgekehrt proportional zur RTT: Ein Datenstrom mit 20 ms kann etwa die vierfache Rate eines Datenstroms mit 80 ms erreichen. Gleicher Zugang zum Engpass beseitigt diesen zeitlichen Vorteil nicht.
Die Aufteilung erfolgt außerdem pro Verbindung. Bei neun bestehenden Verbindungen könnte eine Anwendung, die eine weitere hinzufügt, etwa ein Zehntel der Verbindungskapazität erhalten. Fügt sie stattdessen elf vergleichbare Verbindungen hinzu, beträgt ihr Anteil elf Zwanzigstel oder 55 %. HTTP/2 und HTTP/3 übertragen viele Anfragen über eine Verbindung, während HTTP/1.1-Clients häufig mehrere Verbindungen öffnen.
Eine UDP-Anwendung mit fester Rate kann weitersenden, während TCP-Datenströme ihre Rate verringern. UDP selbst stellt keine Überlastkontrolle bereit; RFC 8085 fordert Anwendungen auf, eine geeignete Überlastkontrolle zu ergänzen. Ein TCP-freundlicher Datenstrom nutzt unter denselben Bedingungen nicht mehr Bandbreite, als vergleichbarer TCP-Verkehr nutzen würde. TFRC nutzt die TCP-Durchsatzgleichung, um eine gleichmäßigere Rate zu unterstützen.
Berücksichtige Warteschlange und Algorithmus
Eine FIFO-Warteschlange setzt keine gleichen Anteile pro Datenstrom durch. Das Ergebnis hängt vom Verhalten der Sender ab. Fair Queuing, einschließlich des Schedulings pro Datenstrom in FQ-CoDel, gibt Datenströmen separate Warteschlangen und Möglichkeiten zur Bedienung.
Das Wachstum von CUBIC und Reno unterscheidet sich auf Pfaden mit großem BDP. Auch die Aufteilung zwischen BBR und CUBIC hängt von der Version und der Puffergröße ab; frühe BBR-Versionen konnten bei kleinen Puffern aggressiv sein. Keine einzelne Gleichheitsberechnung belegt, dass unterschiedliche Überlastkontrollen auf jedem Pfad gleichmäßig nebeneinander arbeiten.
Wichtige Erkenntnisse
- Der Jain-Fairnessindex misst Gleichheit; prüfe die Auslastung unabhängig davon.
- Max-Min-Fairness erfüllt geringen Bedarf, bevor sie die verbleibende Kapazität aufteilt.
- Kürzere RTTs und mehr parallele Verbindungen können den Anteil eines Senders erhöhen.
- UDP-Anwendungen benötigen eine eigene Überlastkontrolle; TCP-freundlicher Verkehr begrenzt seine Bandbreitennutzung auf die vergleichbaren TCP-Verkehrs.
- FIFO-Warteschlangen überlassen die Aufteilung den Sendern, während Fair Queuing eine Bedienung pro Datenstrom ermöglicht.
- Algorithmusversionen und Puffergröße können das Zusammenwirken von Datenströmen verändern.
4Wie Router früher vor Überlastung warnen
Ein großer Puffer kann Paketverluste verbergen und zugleich eine interaktive Verbindung quälend langsam machen. Router können diese Wartezeit verkürzen, indem sie auf eine anhaltende Warteschlange reagieren, bevor sie überläuft. Vollziehe den Unterschied zwischen der Erkennung anhand der Warteschlangenlänge und anhand der Verzögerung nach und verfolge anschließend eine ECN-Markierung vom Router bis zum Sender. Dieselbe Grundidee der Markierung ermöglicht unterschiedliche Senderreaktionen im klassischen TCP, in kontrollierten Rechenzentren und in Internetarchitekturen mit geringer Verzögerung.
4.1 Nutze Puffer, ohne eine dauerhaft gefüllte Warteschlange aufzubauen
Eine Tail-Drop-Warteschlange nimmt Pakete an, bis ihr Puffer voll ist, und verwirft dann neu eintreffende Pakete. Verlustbasierte Sender erhöhen ihre Rate weiter, bis sie ein Überlastsignal erhalten. Bei einem großen Tail-Drop-Puffer kann dieses Signal erst eintreffen, nachdem sich eine lange Warteschlange gebildet hat.
Berechne die im Puffer verborgene Verzögerung
Ein Puffer mit 2.000.000 Byte vor einer Ausgangsverbindung mit 20 Mbps fasst 16 Millionen Bit. Ist er voll, wartet ein Paket hinter diesen Daten:
Ein Upload kann daher den Durchsatz hoch halten und zugleich einen Anruf auf derselben Ausgangsverbindung um fast eine Sekunde verzögern. Bufferbloat bezeichnet eine anhaltend erhöhte Verzögerung durch große Puffer und das Verkehrsverhalten, das diese gefüllt hält.
Pufferung hat dennoch einen Zweck: Kurze Verkehrsschübe brauchen einen Platz zum Warten. Im einfachen Modell mit einem einzelnen Reno-Datenstrom kann ein Puffer von etwa einem BDP die Verbindung unmittelbar nach einer Fensterhalbierung auslasten. Ein wesentlich größerer Puffer erhöht die Wartezeit, ohne die Übertragungsrate der Verbindung zu steigern.
Signalisiere Überlastung vor dem Überlauf
Aktives Warteschlangenmanagement, AQM, verwirft oder markiert Pakete frühzeitig, um Sendern zu signalisieren, dass sie ihre Last verringern sollen. Ein tatsächlicher Überlauf ist nicht mehr die einzige Möglichkeit, Überlastung anzuzeigen. RFC 7567 empfiehlt einen breiten Einsatz von AQM.
Random Early Detection, RED, beobachtet einen gleitenden Durchschnitt der Warteschlangenlänge. Unterhalb einer unteren Schwelle signalisiert RED nichts. Zwischen zwei Schwellen verwirft oder markiert es mit steigender Wahrscheinlichkeit. Oberhalb der oberen Schwelle signalisiert es bei jedem eintreffenden Paket. Die Mittelwertbildung verhindert, dass ein einzelner kurzer Verkehrsschub wie anhaltende Überlast aussieht. Es ist jedoch schwierig, Schwellen zu wählen, die bei unterschiedlichen Geschwindigkeiten und Lasten funktionieren.
Miss die Wartezeit direkt
CoDel, Controlled Delay, misst die Verweilzeit eines Pakets, also seine Zeit in der Warteschlange. Der Standardzielwert beträgt 5 ms und das Intervall 100 ms. Bleibt selbst die kleinste beobachtete Verweilzeit ein Intervall lang über dem Zielwert, liegt eine dauerhaft gefüllte Warteschlange vor. CoDel verwirft oder ECN-markiert dann Pakete und erhöht die Häufigkeit der Signale, solange die erhöhte Verzögerung anhält.
Das Minimum über ein Intervall ist entscheidend. Ein Verkehrsschub kann kurzzeitig eine hohe Verzögerung verursachen und kurz darauf abgebaut sein; eine Warteschlange, deren Verzögerung nie klein wird, erfordert ein Eingreifen. Dank der Verzögerungsmessung funktionieren die Standardeinstellungen von CoDel bei einem breiten Spektrum von Übertragungsraten.
| Verfahren | Was es beobachtet | Wann es signalisiert |
|---|---|---|
| Tail Drop | Ob der Puffer voll ist | Beim Überlauf |
| RED | Durchschnittliche Warteschlangenlänge | Mit einer Wahrscheinlichkeit beim Überschreiten der Schwellen |
| CoDel | Anhaltende Wartezeit von Paketen | Wenn die Verzögerung über dem Zielwert bleibt |
FQ-CoDel kombiniert separate Warteschlangen pro Datenstrom mit CoDel. Durch die Trennung der Datenströme führt eine große Übertragung weniger leicht dazu, dass jedes kleine interaktive Paket hinter ihrem Rückstau warten muss.
Frühzeitige Signale können auch die globale Synchronisation verringern, bei der viele Datenströme gleichzeitig Pakete verlieren, gemeinsam ihre Rate halbieren und die Verbindung vorübergehend unterausgelastet lassen. Zufällig verteilte frühe Signale verteilen die Reaktionen über die Zeit. Bei ECN-fähigem Verkehr kann ein AQM seine Warnung durch eine Markierung senden und das Paket trotzdem zustellen.
Wichtige Erkenntnisse
- Bufferbloat ist eine anhaltende Warteschlangenverzögerung, auch wenn der Durchsatz hoch bleibt.
- Die Wartezeit in der Warteschlange entspricht den wartenden Bit dividiert durch die Ausgangsrate.
- AQM signalisiert Überlastung, bevor der Puffer tatsächlich überläuft.
- RED verfolgt die durchschnittliche Warteschlangenlänge; CoDel verfolgt anhaltende Wartezeit.
- FQ-CoDel kombiniert Warteschlangen pro Datenstrom mit der Verzögerungskontrolle von CoDel.
- Frühzeitige, verteilte Signale verringern gleichzeitige Verluste und Fensterverringerungen.
4.2 Verfolge eine ECN-Warnung zurück zum Sender
Die explizite Überlastbenachrichtigung, ECN, ermöglicht einem Router, ein Paket zuzustellen und vor entstehender Überlastung zu warnen. Die Markierung verändert das Verhalten des Senders, ohne fehlende Daten zu erzeugen, die erneut übertragen werden müssen.
Lies den IP-Codepunkt
Das ECN-Feld besteht aus zwei Bits im IPv4-Type-of-Service-Byte beziehungsweise in der IPv6-Traffic-Class.
| Bits | Bedeutung |
|---|---|
| 00 | Not-ECT: Das Transportprotokoll hat sich nicht als ECN-fähig ausgewiesen |
| 10 | ECT(0): ECN-fähiger Transport |
| 01 | ECT(1): ECN-fähiger Transport; außerdem die L4S-Kennung |
| 11 | CE: Überlastung festgestellt |
Beim klassischen TCP-Handshake nach RFC 3168 setzt das SYN des Clients ECE und CWR. Das SYN-ACK eines zustimmenden Servers setzt ECE. Nach der Aushandlung markiert klassisches TCP Datenpakete mit ECT(0).
Verfolge den Rückkopplungskreis
Ein AQM, das ein ECN-fähiges Paket als Überlastwarnung verwerfen würde, kann dessen Codepunkt auf CE ändern und es weiterleiten. Ein Not-ECT-Paket kann diese Warnung nicht tragen und wird verworfen, wenn das AQM ein Signal geben muss. Ein vollständig gefüllter Puffer verwirft weiterhin Pakete, auch ECN-fähige.
Der Empfänger meldet CE zurück, indem er in seinen Quittungen ECE, ECN-Echo, setzt. Er setzt ECE weiter, bis er vom Sender CWR, Congestion Window Reduced, erhält. Diese Flags melden und bestätigen die Rückmeldung; ihr Vorhandensein bedeutet nicht, dass Daten verloren gingen.
Beginne für klassisches ECN nach Reno-Art mit einem cwnd von 20 MSS. Nach Eingang von ECE verringert der Sender cwnd auf 10 MSS und setzt CWR im nächsten Segment mit neuen Daten. Der Empfänger beendet die Rückmeldung, sobald CWR eintrifft. Wiederholte Rückmeldungen aus demselben Fenster erfordern keine wiederholten Halbierungen. Die Warnung kehrt auf dem Quittungspfad zurück, sodass die Reaktion einer Rückmeldeverzögerung unterliegt.
ECN legt das Signal fest; der Überlastkontrollalgorithmus bestimmt die Verringerungsregel. Reno halbiert, während CUBIC bei einem ECN-Ereignis normalerweise 70 % beibehält. Beide Endpunkte und ein markierender Engpass müssen ECN unterstützen, damit dieser Kreis funktioniert.
Nutze den Anteil der Markierungen
DCTCP, Data Center TCP, nutzt häufige Markierungen in einer kontrollierten Umgebung. Es schätzt den Anteil markierter Bytes mit einem geglätteten Wert Alpha:
wobei M der kürzlich markierte Anteil ist. Manche Implementierungen verwenden für g den Wert 1/16. Das Fenster wird wie folgt verringert:
Bei einem Alpha von 0,2 wird aus einem Fenster von 100 der Wert 90; bei einem Alpha von 1 halbiert es sich. DCTCP benötigt eine passende Markierung und Rückmeldung. Werden DCTCP und klassisches TCP in einer gewöhnlichen Warteschlange gemischt, können unfaire Anteile entstehen.
L4S, die experimentelle Architektur in RFC 9330 bis 9332, überträgt eine verwandte skalierbare Reaktion auf Internetpfade. ECT(1) kennzeichnet skalierbaren Verkehr, und ein gekoppeltes AQM mit zwei Warteschlangen trennt ihn vom klassischen Verkehr und koordiniert zugleich deren Behandlung. Häufige Markierungen schon bei geringer Warteschlangenbildung zielen auf eine Warteschlangenverzögerung von etwa einer Millisekunde. ECT(1) allein garantiert diese Verzögerung nicht: Die Überlastkontrolle und das Verhalten des Engpasses vervollständigen den Entwurf.
Wichtige Erkenntnisse
- CE markiert ein zugestelltes Paket; ECN-fähiger Verkehr kann bei einem Überlauf trotzdem verworfen werden.
- Klassisches TCP handelt ECN aus, meldet CE über ECE zurück und bestätigt seine Reaktion mit CWR.
- Die Überlastkontrolle bestimmt die Stärke der Verringerung; ECN liefert das Überlastsignal.
- DCTCP nutzt in kontrollierten Umgebungen den markierten Anteil, um seine Verringerung zu bemessen.
- L4S kombiniert ECT(1), skalierbare Überlastkontrolle und gekoppeltes Warteschlangenmanagement.
5Wie CUBIC und BBR sich an moderne Pfade anpassen
Ein Pfad mit einem großen Bandbreiten-Verzögerungs-Produkt benötigt eine große Menge an unterwegs befindlichen Daten. Reno kann zu lange brauchen, um dieses Fenster nach einer Verringerung wiederherzustellen. CUBIC verändert, wie das Fenster im Laufe der Zeit wächst, während BBR die Zustellrate des Pfades und die RTT ohne Warteschlangen schätzt. Vergleiche, was jeder Algorithmus misst, wie er die Kapazität erkundet und was sein Verhalten für Verzögerung und die Aufteilung mit anderem Verkehr bedeutet.
5.1 Vergrößere das CUBIC-Fenster anhand der Zeit
CUBIC behebt Renos langsames Wachstum auf schnellen Pfaden über große Entfernungen. Sein Fenster folgt der seit einer überlastungsbedingten Verringerung verstrichenen Zeit und reagiert damit anders als bei einer festen Erhöhung um ein Segment pro RTT. RFC 9438 spezifiziert CUBIC; es ist die Standardeinstellung in wichtigen TCP-Implementierungen von Linux, Windows und Apple.
Merke dir den letzten Überlastungspunkt
Bei einem gewöhnlichen Verlust oder einem ECN-Überlastungsereignis speichert CUBIC sein Fenster als Wmax. Bei einem vollständig genutzten Fenster behält es mit dem Verringerungsfaktor 0,7 70 % der unterwegs befindlichen Datenmenge bei. Reno würde die Hälfte behalten. Der Ablauf des Wiederholungszeitlimits ist anders: CUBIC kehrt wie Reno zu einem Fenster von einem Segment und Slow Start zurück und legt seine Schwelle dabei mit dem CUBIC-Verringerungsfaktor fest.
Für die grundlegende kubische Phase nach einer Verringerung lautet das Zielfenster in Segmenten:
Die Zeit t wird in Sekunden angegeben. Beträgt das verringerte Fenster 0,7 Wmax, ist die Rückkehrzeit zum alten Spitzenwert:
Vollziehe die Kurve nach
Bei einem Wmax von 100 Segmenten beträgt das verringerte Fenster 70. Der Wert unter der Kubikwurzel ist 75, sodass K etwa 4,22 s beträgt. Nach einer Sekunde liegt die Kurve bei etwa 86,7 Segmenten, nach zwei Sekunden bei 95,6 und nach drei Sekunden bei 99,3. Sie erreicht 100 bei K.
Unterhalb des alten Spitzenwerts ist das Wachstum zunächst schnell und verlangsamt sich dann. Dieser konkave Bereich nähert sich vorsichtig einem Punkt, an dem zuvor Überlastung auftrat. Nahe der Spitze liegt ein relativ flaches Plateau. Darüber beschleunigt sich das Wachstum im konvexen Bereich, um möglicherweise neu verfügbare Kapazität zu erkunden. Nach sieben Sekunden erreicht die Beispielkurve etwa 108,6 Segmente.
Erkläre den RTT-Vorteil und seine Grenze
Reno benötigt 50 RTTs, um von 50 wieder auf 100 Segmente zu steigen: 5 s bei einer RTT von 100 ms und 10 s bei einer RTT von 200 ms. Die Rückkehrzeit der kubischen Kurve hängt vom gespeicherten Spitzenwert und der verstrichenen Zeit ab, sodass ihre Rückkehr nach 4,22 s nicht direkt von der Anzahl der Quittungen abhängt.
CUBIC berechnet außerdem eine Reno-freundliche Schätzung. Sie verwendet eine entsprechende AIMD-Erhöhung von etwa 0,53 Segmenten pro RTT bei einem Verringerungsfaktor von 0,7. CUBIC nutzt diese Schätzung, wenn sie über dem kubischen Zielwert liegt. Pfade mit kurzer RTT können sich daher früher erholen, als es die rein kubische Rückkehrzeit vorsieht. Zeitbasiertes Wachstum verringert eine wichtige Ursache der Bevorzugung bestimmter RTTs; es macht nicht jede tatsächliche Aufteilung RTT-unabhängig.
Passe den gespeicherten Spitzenwert an
Tritt Überlastung unterhalb des vorherigen Spitzenwerts erneut auf, senkt die schnelle Konvergenz von CUBIC den gespeicherten Wert Wmax. Ein neues Ereignis bei 90 Segmenten nach einer vorherigen Spitze von 100 ergibt:
Das unmittelbar verringerte Fenster beträgt 63 Segmente. Der gespeicherte Spitzenwert und das neue aktuelle Fenster haben unterschiedliche Aufgaben: Der eine gestaltet das zukünftige Wachstum, während das andere das aktuelle Senden begrenzt.
CUBIC bleibt verlustbasiert, mit ECN als alternativem Signal. Auf einem Pfad mit Tail Drop kann es eine dauerhaft gefüllte Warteschlange aufbauen. Schnellere Wiederherstellung und eine geringere gewöhnliche Verringerung verbessern die Nutzung von Pfaden mit großem BDP, aber keines von beiden garantiert für sich eine geringe Warteschlangenverzögerung.
Wichtige Erkenntnisse
- CUBIC behält nach einem Verlust oder ECN-Ereignis normalerweise 70 % bei, beginnt nach einer Zeitüberschreitung aber erneut bei einem Segment.
- Der kubische Zielwert hängt von den verstrichenen Sekunden und dem gespeicherten Überlastfenster ab.
- Das Wachstum verlangsamt sich nahe dem alten Spitzenwert und beschleunigt sich darüber.
- Die Reno-freundliche Schätzung kann die kubische Kurve übersteigen, besonders bei kurzen RTTs.
- Die schnelle Konvergenz senkt den gespeicherten Spitzenwert, wenn Überlastung unterhalb davon erneut auftritt.
- CUBIC ist weiterhin eine verlustbasierte Überlastkontrolle und kann dauerhaft gefüllte Warteschlangen aufbauen.
5.2 Schätze den Pfad mit Verzögerungs- und Zustellmessungen
Verlust ist nicht das einzige Zeichen eines überlasteten Pfades. Verzögerung kann wartende Daten anzeigen, während Zustellmessungen die verfügbare Bandbreite des Pfades schätzen lassen. Vegas und BBR nutzen diese Beobachtungen auf unterschiedliche Weise.
Schätze die wartenden Daten bei Vegas
Vegas vergleicht eine erwartete Rate auf Basis der minimalen Basis-RTT mit der tatsächlichen Rate auf Basis der gemessenen RTT. Ihre Differenz, multipliziert mit der Basis-RTT, schätzt die wartenden Daten des Datenstroms.
Bei einem cwnd von 50 Segmenten, einer Basis-RTT von 40 ms und einer gemessenen RTT von 50 ms beträgt die erwartete Zustellrate 1.250 Segmente/s und die tatsächliche 1.000 Segmente/s. Die Schätzung für die Warteschlange lautet:
Vegas wächst unterhalb einer unteren Schwelle und schrumpft oberhalb einer oberen Schwelle. Füllt verlustbasierter Verkehr die gemeinsam genutzte Warteschlange immer weiter, erkennt Vegas wiederholt Verzögerung und verringert seine Rate. Dadurch kann ihm ein kleiner Anteil bleiben.
Erstelle das zweiteilige Modell von BBR
BBR, Bottleneck Bandwidth and Round-trip propagation time, schätzt die Engpassbandbreite anhand der zuletzt gemessenen maximalen Zustellraten und die minimale RTT über ein Zeitfenster von 10 s. Ihr Produkt schätzt das BDP. Das ideale Ziel ist eine ausgelastete Verbindung mit etwa einem BDP an unterwegs befindlichen Daten und wenigen wartenden Daten.
Eine Bandbreitenschätzung von 50 Mbps und eine minimale RTT von 30 ms ergeben 1,5 Millionen Bit oder 187.500 Byte pro BDP. Ein typischer Überlastfensterfaktor von 2 begrenzt ausstehende Daten auf etwa 375.000 Byte. Die Pacing-Rate ist eine separate Steuergröße: Pacing-Faktor mal geschätzte Bandbreite. Eine Obergrenze erlaubt unterwegs befindliche Daten; sie verlangt nicht, dass der Sender mit der doppelten Bandbreite sendet.
Verfolge die Zustände von BBR Version 3
| Zustand | Hauptaufgabe | Verhalten im Entwurf von Version 3 |
|---|---|---|
| Startup | Kapazität ermitteln | Mit etwa dem 2,77-Fachen der Schätzung senden; beenden, wenn das Wachstum stockt oder der Verlust hoch ist |
| Drain | Startup-Warteschlange abbauen | Mit etwa dem 0,5-Fachen der Schätzung senden |
| ProbeBW | Bandbreite testen und nutzen | Pacing-Faktoren: Up 1,25, Down 0,9, Cruise 1,0, Refill 1,0 |
| ProbeRTT | Minimale RTT aktualisieren | Unterwegs befindliche Daten für mindestens 200 ms und eine Umlaufzeit in Richtung eines halben BDP verringern |
Der Wachstumstest von Startup prüft, ob die Zustellrate drei Runden lang um weniger als 25 % wächst. ProbeRTT wird höchstens etwa alle 5 s eingeplant. Auf dem Beispielpfad strebt ProbeBW in Up 62,5 Mbps und in Down 45 Mbps an. Diese Einzelheiten von Version 3 sind im BBR-Internet-Draft spezifiziert, nicht in einem veröffentlichten BBR-RFC.
Vergleiche Rückmeldungen und Vor- und Nachteile
Reno und CUBIC wachsen, bis Verlust oder ECN Überlastung signalisiert. BBR steuert das Pacing anhand eines Bandbreiten- und RTT-Modells. In Startup und ProbeBW Up baut es absichtlich kurzzeitig eine Warteschlange auf. „Modellbasiert“ bedeutet daher nicht „baut nie eine Warteschlange auf“.
BBR Version 1 ignorierte Verluste weitgehend. Version 3 nutzt starke Verluste von etwa 2 % in einer Runde, um das Überschreiten der Kapazität zu begrenzen und das Zusammenwirken mit anderen zu verbessern. Es kann auf langen Pfaden mit zufälligen Verlusten einen höheren Durchsatz halten, aber nicht vollständig erkennen, warum ein Paket verloren ging. Seine konkrete ECN-Reaktion bleibt im Entwurf offen; jede Verbindung, die ECN-Unterstützung angibt, muss auf CE als Überlastung reagieren. Puffergröße, RTT, Version und konkurrierende Algorithmen bleiben für die Fairness relevant.
Wichtige Erkenntnisse
- Vegas schließt mithilfe der Basis-RTT aus erwarteter und tatsächlicher Rate auf wartende Daten.
- BBR modelliert Bandbreite und minimale RTT und steuert anschließend Pacing und die Begrenzung unterwegs befindlicher Daten getrennt.
- BBR erkundet in Startup und ProbeBW absichtlich Raten oberhalb der geschätzten Zustellrate.
- Drain und ProbeRTT verringern wartende Daten für unterschiedliche Messzwecke.
- BBR Version 3 begrenzt starke Verluste; es ignoriert Überlastung nicht.
- BBR ist modellbasiert, während Vegas direkt auf zunehmende Verzögerung reagiert.
- Algorithmusversion und Pfadbedingungen beeinflussen das Zusammenwirken und die Warteschlangenbildung.
6Warum QUIC sich weiterentwickeln und zugleich das Netz teilen kann
Der Entwurf eines Transportprotokolls muss mit bereits eingesetzten Geräten funktionieren. Middleboxes und Aktualisierungszyklen von Betriebssystemen können TCP-Erweiterungen verzögern. QUIC führt einen verschlüsselten Transport über UDP aus, sodass Anwendungen neues Verhalten leichter bereitstellen können. Vollziehe nach, wie Datenströme, Paketnummern und aussagekräftigere Quittungen Zustellung und Wiederherstellung verbessern, während der Sender weiterhin die von TCP vertrauten Prinzipien der Überlastkontrolle befolgt.
6.1 Verlagere Transportfunktionen in einen verschlüsselten Entwurf auf UDP-Basis
Ein Protokoll verkrustet, wenn eingesetzte Geräte so stark von seiner bestehenden Form abhängen, dass Änderungen schwer einzuführen sind. Middleboxes untersuchen TCP-Header und können unbekannte Optionen oder Flags zurückweisen. Bei kernelbasierten Implementierungen wird neues Verhalten zudem durch Aktualisierungen des Betriebssystems verbreitet, häufig langsam.
Erkenne die Kosten, die QUIC adressiert
TCP hat sich durch SACK, ECN, Fensterskalierung und neue Überlastkontrollen weiterentwickelt. Dennoch ist seine Struktur für den Webverkehr weiterhin relevant. Eine herkömmliche neue TCP-Verbindung mit TLS benötigt den TCP-Handshake vor dem TLS-Handshake. Ihr einziger geordneter Bytestrom bedeutet außerdem, dass ein fehlendes Segment die Zustellung späterer Bytes blockiert, einschließlich der Daten für unabhängige Anfragen. Das ist Head-of-Line-Blocking auf Transportebene.
Adressen und Ports einer Verbindung können ein weiteres Hindernis schaffen, wenn ein Gerät zwischen Netzen wechselt. QUIC, standardisiert in RFC 9000, verändert diese Teile des Transportentwurfs und überträgt seine Pakete dabei über UDP. HTTP/3 läuft über QUIC.
Kombiniere die Handshakes
QUIC integriert TLS 1.3 in seinen Transport-Handshake. Bei einem einfachen Austausch mit 80 ms RTT, vernachlässigbarer Verarbeitung und ohne Verlust sendet eine neue TCP-Verbindung mit TLS 1.3 die Anfrage nach zwei RTTs und erhält die ersten Antwortbytes nach drei: 240 ms. Eine neue QUIC-Verbindung kann sie nach zwei RTTs erhalten: 160 ms.
Eine wiederaufgenommene QUIC-Verbindung kann frühe Anwendungsdaten bereits beim ersten Paketversand senden; dies heißt 0-RTT. Die erste Antwort kann dann nach einer RTT eintreffen, in diesem Beispiel nach 80 ms. Frühe Daten können erneut abgespielt werden, weshalb Anwendungen sie auf Aktionen beschränken, deren Wiederholung unbedenklich ist. Der Begriff 0-RTT beschreibt, wann das Senden beginnen kann, und keine sofortige Antwort.
Trenne Datenströme, aber nicht alle gemeinsamen Begrenzungen
QUIC überträgt unabhängige geordnete Byteströme. Enthält ein Paket Daten für Bild 1, blockiert sein Verlust nicht die Zustellung bereits empfangener Daten für die Bilder 2 und 3 in separaten Datenströmen. Ein Paket, das mehrere Datenströme überträgt, kann jeden davon betreffen. Alle Datenströme teilen sich weiterhin die Überlastkontrolle der Verbindung, sodass Verlust ihre insgesamt verfügbare Rate verringern kann.
QUIC stellt auf UDP-Basis eine zuverlässige Zustellung innerhalb der Datenströme bereit. Es bietet außerdem Flusskontrolle sowohl pro Datenstrom als auch pro Verbindung. UDP ist das Trägerprotokoll und kein Ersatz für diese Transportfunktionen.
Schütze veränderbare Einzelheiten
QUIC verschlüsselt Paketnutzlasten einschließlich aller Transport-Frames. Der Headerschutz deckt Paketnummern und einige Bits des ersten Bytes ab. Felder, die für Routing und Aushandlung benötigt werden, etwa Verbindungs-IDs und die Version, bleiben sichtbar. Das Verbergen veränderbarer Transportdetails gibt Middleboxes weniger Verhalten vor, von dem sie abhängig werden können.
Verbindungs-IDs identifizieren eine Verbindung unabhängig von den aktuellen IP-Adressen und Ports. Mithilfe der Pfadvalidierung kann eine Verbindung migrieren, wenn ein Mobiltelefon vom WLAN zum Mobilfunkzugang wechselt, ohne eine vollständig neue Verbindung zu beginnen.
QUIC ist gewöhnlich eine Bibliothek im Benutzerraum. Eine Anwendungsaktualisierung kann daher eine Verbesserung des Transportprotokolls bereitstellen, ohne auf Änderungen in jedem Betriebssystemkern zu warten. Diese Flexibilität überträgt der Anwendung zugleich die Verantwortung für korrekte Verlusterkennung, Sicherheit, Flusskontrolle und Überlastkontrolle.
Wichtige Erkenntnisse
- Protokollverkrustung entsteht, wenn eingesetzte Geräte Änderungen am Protokoll erschweren.
- QUIC kombiniert Transport- und TLS-Aufbau und kann 0-RTT-Frühdaten unterstützen, die erneut abgespielt werden können.
- Unabhängige Datenströme verhindern, dass die geordnete Zustellung über unabhängige Datenströme hinweg auf Transportebene stockt.
- Nutzlastverschlüsselung und Headerschutz verbergen die meisten veränderbaren Transportdetails.
- Verbindungs-IDs unterstützen Migration unabhängig von einem festen Adress- und Porttupel.
- QUIC ergänzt auf UDP-Basis Zuverlässigkeit, Flusskontrolle und Überlastkontrolle.
6.2 Nutze klarere Verlustsignale mit vertrauter Überlastkontrolle
QUIC verbessert, was ein Sender aus Quittungen erfahren kann, muss aber weiterhin eine Überlastung des Pfades vermeiden. RFC 9002 definiert die Verlusterkennung und eine standardmäßige Überlastkontrolle ähnlich NewReno. Implementierungen können andere geeignete Algorithmen verwenden, darunter CUBIC oder BBR.
Identifiziere jede Übertragung
Paketnummern steigen und wiederholen sich innerhalb eines Paketnummernraums nie. Erneut gesendete Daten werden in Frames innerhalb eines neuen Pakets mit neuer Nummer übertragen. Eine Quittung kann daher die Übertragung identifizieren, die angekommen ist. So wird die bei TCP bestehende Mehrdeutigkeit zwischen einem ursprünglichen Segment und seiner Übertragungswiederholung vermieden.
ACK-Frames melden empfangene Bereiche und die Quittungsverzögerung des Empfängers. Nach dem Handshake nutzt der Sender eine validierte und begrenzte Quittungsverzögerung, um RTT-Schätzungen anzupassen; er zieht nicht blind eine beliebige Verzögerung des Empfängers von jedem Messwert ab.
QUIC erklärt ein Paket für verloren, wenn ein Paket mit einer um mindestens drei höheren Paketnummer quittiert wurde, oder anhand seines Zeitschwellenwerts, sobald ein späteres Paket quittiert wurde. Der empfohlene Zeitschwellenwert beträgt das 9/8-Fache des größeren Werts aus der letzten und der geglätteten RTT. Ein Probe Timeout, PTO, sendet Testpakete, die Quittungen auslösen. Der Ablauf des PTO allein lässt cwnd nicht auf das Mindestfenster fallen.
Lege Fenstergrenzen in Byte fest
Für die maximale Datagrammgröße d lautet das Anfangsfenster nach RFC 9002:
Bei einem d von 1.200 Byte beträgt das Ergebnis 12.000 Byte. Bei einem d von 1.500 Byte sind es 14.720 Byte. Das minimale Überlastfenster beträgt zwei Datagramme maximaler Größe, sodass die Mindestwerte für diese Pfade jeweils 2.400 und 3.000 Byte betragen.
In der standardmäßigen Überlastkontrolle halbiert ein Verlust oder ein neues CE-Überlastsignal cwnd, begrenzt durch das Mindestfenster, und setzt ssthresh auf das verringerte Fenster. Eine Wiederherstellungsphase verhindert eine weitere Verringerung bei weiteren Verlusten von Paketen, die vor Beginn der Phase gesendet wurden. Die Quittung eines während der Wiederherstellung gesendeten Pakets beendet die Phase. Der Sender setzt dann das normale Wachstum fort.
Erkenne anhaltende Ausfälle
Anhaltende Überlastung ist ein stärkerer Hinweis als der einmalige Ablauf eines Zeitgebers. Sie setzt eine ausreichend lange Folge verlorener quittierungsauslösender Pakete voraus, ohne dass ein dazwischenliegendes Paket quittiert wurde, sowie einen vorherigen RTT-Messwert. Ihr Zeitschwellenwert lautet:
Bei 100 ms geglätteter RTT, 10 ms Schwankung, 25 ms maximaler Quittungsverzögerung und vernachlässigbarer Zeitgeberauflösung beträgt der Schwellenwert 495 ms. Das maßgebliche Verlustintervall muss diesen Wert überschreiten. Die Überlastkontrolle senkt cwnd dann auf zwei Datagramme, ihr Mindestfenster.
Halte Rückmeldung und zeitliche Steuerung nutzbar
QUIC-Quittungen können kumulative ECT(0)-, ECT(1)- und CE-Zähler melden. Nach der Validierung der ECN-Funktion auf dem Pfad behandelt der Sender einen erneuten Anstieg des CE-Zählers als Überlastungsereignis, ohne dass ein Paket verworfen werden muss.
Pacing verteilt Übertragungen über die Zeit. Ein vorgeschlagener Ansatz ist eine Rate von etwa dem 1,25-Fachen von cwnd dividiert durch die geglättete RTT; Begrenzungen von Verkehrsschüben können denselben Zweck erfüllen. Das Senden eines ganzen Fensters auf einmal erzeugt einen Verkehrsschub, selbst wenn die durchschnittliche Rate akzeptabel ist. Die Bereitstellung im Benutzerraum erleichtert die Auslieferung neuer Überlastkontrollen, aber jeder Protokollstapel muss die Bandbreite weiterhin verantwortungsvoll teilen.
Wichtige Erkenntnisse
- Eindeutige Paketnummern identifizieren Übertragungen; empfangene Bereiche zeigen Lücken.
- Die Anpassung um die Quittungsverzögerung folgt Validierungs- und Handshake-Regeln.
- Paket- und Zeitschwellenwerte erkennen Verluste; PTO-Testpakete lösen Rückmeldungen aus.
- Die standardmäßige Überlastkontrolle halbiert einmal pro Wiederherstellungsphase und hält ein Minimum von zwei Datagrammen ein.
- Anhaltende Überlastung erfordert ein maßgebliches Verlustintervall, das länger als der Zeitschwellenwert ist.
- Validierte ECN-Zähler können Überlastung ohne verworfene Pakete signalisieren.
- Pacing oder die Begrenzung von Verkehrsschüben verhindert, dass das gesamte Fenster in einem Schub gesendet wird.
Überlastkontrolle in Netzen: Beispiele
1Verfolge Verkehr durch einen Engpass
13 Schritte
- 1EinführungEine Verbindung kann ausgelastet bleiben, während eine Anwendung wartet
Mehrere schnelle Eingänge speisen einen langsameren Ausgang, einen Engpass. Der Router muss den Überschuss zwischenspeichern, sodass derselbe Datenstrom einen hohen Durchsatz und eine lange Wartezeit erfahren kann.
Verfolge zunächst die Warteschlange und berücksichtige dann Arbeit, die keine neuen Daten zustellt (Nutzdatendurchsatz und Überlastkollaps). Entscheide schließlich, welche Art von Rückmeldung dem Sender mitteilen könnte, dass er sein Verhalten ändern soll. Diese drei Sichtweisen erklären, warum Aktivität allein ein schlechtes Maß für den Zustand des Netzes ist.
- 2ErklärungVergleiche Ankünfte und Abgänge
Der Engpass ist die Verbindung auf dem Pfad mit der geringsten für den Verkehr verfügbaren Kapazität. Übersteigt die Ankunftsrate dauerhaft ihre Ausgangsrate, sammelt sich der Überschuss in der Ausgangswarteschlange.
Unterhalb der Ausgangsrate leert freie Kapazität die Warteschlange. Entspricht die Ankunftsrate genau der Ausgangsrate, bleibt eine bestehende Warteschlange bei gleichbleibenden Raten unverändert: Jedes abgehende Paket wird durch ein ankommendes ersetzt. Eine kurze Überlast kann aufgefangen werden, wenn eine ruhigere Phase folgt.
- 3BeispielBestimme, wie schnell die Warteschlange wächst
Ein leerer Routerpuffer empfängt 15 Mbps, während sein Ausgang 11 Mbps sendet. Bestimme zunächst den Überschuss:
Rechne den Überschuss in Byte pro Sekunde um:
Mit dieser Rate sammeln sich wartende Daten an. Würdest du die volle Ankunftsrate verwenden, würdest du Daten mitzählen, die die Ausgangsverbindung bereits übertragen hat.
- 4BeispielRechne wartende Daten in Wartezeit um
Behalte denselben Ausgang mit 11 Mbps bei. Ein Puffer mit 1.000.000 Byte füllt sich nach 2 s bei einem Überschuss von 500.000 Byte/s.
Im vollen Zustand enthält er 8.000.000 Bit vor einem neu eintreffenden Paket. Dessen ungefähre Wartezeit beträgt:
Die Ausgangsrate bestimmt, wie lange bereits wartende Daten bis zum Abgang brauchen. Der Eingangsüberschuss bestimmt, wie schnell dieser Rückstau entstanden ist.
- 5HerausforderungSage die Entwicklung einer Warteschlange nach sinkender Last voraus
Eine Warteschlange enthält 300.000 Byte. Ihr Ausgang überträgt 12 Mbps und die gleichbleibende Ankunftsrate fällt auf 8 Mbps. Wie lange dauert es, bis sich die bestehende Warteschlange leert?
---reveal---
Die Nettoabbaurate beträgt 4 Mbps oder 500.000 Byte/s. Daher:
Eine Division durch die volle Ausgangsrate würde neue Pakete ignorieren, die weiterhin eintreffen, während der alte Rückstau abgebaut wird.
- 6ErklärungVerfolge, was eine Übertragungswiederholung ersetzt
Der Nutzdatendurchsatz zählt neue Nutzdaten der Anwendung einmal. Der Durchsatz zählt zugestellten Verkehr, während die angebotene Last alles umfasst, was in das Netz eingespeist wird.
Ein zuverlässiger Sender ersetzt verlorene Daten, aber diese Wiederholungen verbrauchen Übertragungszeit auf der Verbindung. Läuft ein Zeitgeber ab, während ein Original nur verzögert ist, können zwei Kopien den Pfad durchlaufen und erfolgreich eintreffen. Die Anwendung erhält dieses Datenstück trotzdem nur einmal.
- 7BeispielBerücksichtige später verlorene Arbeit
Ein Paket durchläuft die Verbindungen A und B und wird dann in der Warteschlange vor C verworfen. Beide vorgelagerten Übertragungen haben bereits Kapazität verbraucht, doch das Paket erreicht sein Ziel nie.
Geht mehr Verkehr erst spät verloren, können vorgelagerte Verbindungen einen wachsenden Teil ihrer Zeit für Pakete aufwenden, die ihr Ziel nicht erreichen. Die Ende-zu-Ende-Zustellung kann sinken, während diese Verbindungen ausgelastet bleiben. Das ist ein möglicher Weg zum Überlastkollaps, nicht lediglich eine volle Warteschlange an einem Router.
- 8HerausforderungUnterscheide belegte Kapazität und nützlichen Fortschritt
Eine Verbindung mit 16 Mbps ist ausgelastet. Von ihren gleich großen Paketen wiederholen 25 % Daten, die sie bereits übertragen hat. Wie hoch ist die größtmögliche Rate neuer Daten, wenn du Header und Verluste auf nachgelagerten Verbindungen außer Acht lässt?
---reveal---
Nur drei Viertel sind neu:
Die übrigen 4 Mbps können für die Wiederherstellung der Zuverlässigkeit nützlich sein, fügen der hier gezählten Rate aber keine neuen Daten hinzu.
- 9KernaussageErkenne die Änderungen am Kniepunkt und an der Klippe
Jenseits des Kniepunkts bringt eine größere angebotene Last wenig zusätzlichen Durchsatz, während die Verzögerung stark steigt. Jenseits der Klippe fällt der Durchsatz, weil Verluste und verschwendete Arbeit überwiegen.
Dies sind unterschiedliche Probleme: Ineffiziente Wartezeiten können auftreten, bevor die Zustellung von Nutzdaten zusammenbricht. Eine Überlastkontrolle sollte den Engpass produktiv auslasten und zugleich den Betriebspunkt mit hoher Verzögerung vermeiden, den ein großer Puffer verbergen kann.
- 10ErklärungBestimme den Ursprung der Warnung
Bei der Ende-zu-Ende-Überlastkontrolle schließt der Sender aus Verlust-, RTT- oder Zustellmessungen auf Überlastung. Ein Router liefert keine ausdrückliche Überlastmeldung.
Bei der netzgestützten Überlastkontrolle sendet der Router eine Warnung. Bei ECN markiert er ein Paket auf dem Weg zum Empfänger, der diese Markierung zurückmeldet. Die Meldung zählt weiterhin als netzgestützt, obwohl sie in einer Quittung des Endpunkts zurückkehrt.
- 11VerbindungUnterscheide Signal und Sendesteuerung
Ein Verlust kann durch einen Warteschlangenüberlauf oder durch Beschädigung auf einer Funkverbindung entstehen. Eine steigende RTT kann von einer Warteschlange oder einer Routenänderung herrühren. Eine Markierung meldet Überlastung ausdrücklich, benötigt aber passende Unterstützung auf dem Pfad.
Nachdem der Sender das Signal gedeutet hat, kann er ein Fenster begrenzen oder eine Rate für das Pacing wählen. Diese Steuerungsentscheidungen sind unabhängig vom Ursprung des Signals. Die Näherung von einem Fenster pro RTT verbindet die unterwegs befindliche Datenmenge mit der erreichten Rate.
- 12HerausforderungWähle einen hilfreichen Rückmeldeweg
Ein Download hält einen großen Routerpuffer gefüllt. Der Empfänger hat reichlich freien Speicher. Der Router beginnt, Überlastung zu markieren, und der Empfänger meldet die Markierungen zurück. Um welche Art der Kontrolle handelt es sich und warum kann sie die Verzögerung beim Download verringern?
---reveal---
Es ist netzgestützte Überlastkontrolle. Der Sender kann den Verkehr auf dem überlasteten Pfad verringern, sodass die Routerwarteschlange schrumpfen kann. Mehr Platz beim Empfänger würde diese Warteschlange nicht leeren, weil die begrenzende Kapazität im Netz liegt.
- 13ZusammenfassungBetrachte Last, Nutzdatenzustellung und Rückmeldung gemeinsam
Sage das Wachstum der Warteschlange anhand von Ankünften minus Abgängen voraus; bestimme die Wartezeit aus den wartenden Bit dividiert durch die Ausgangsrate. Prüfe dann, wie viel der Arbeit auf der Verbindung neue Anwendungsdaten zustellt.
Verlust, Verzögerung und ausdrückliche Rückmeldungen teilen einem Sender Unterschiedliches mit. Eine nützliche Überlastkontrolle deutet diese Signale und passt den Verkehr so an, dass der Pfad Daten effizient zustellt, ohne übermäßig lange Warteschlangen aufrechtzuerhalten.
2Verfolge ein TCP-Fenster vom Start bis zur Wiederherstellung
20 Schritte
Speichere diese Einheit, um jede Interaktive Lektion Schritt für Schritt durchzugehen.
- 1EinführungBetrachte das Fenster vor der Rate
- 2ErklärungBeachte die Begrenzungen von Sender und Empfänger
- 3BeispielSchätze eine durch das Fenster begrenzte Rate
- 4BeispielBerechne die zur Auslastung eines Pfades nötigen Daten
- 5HerausforderungFinde die tatsächlich wirksame Begrenzung
- 6ErklärungWarum Slow Start schnell wächst
- 7BeispielÄndere die Regel an der Schwelle
- 8TippKennzeichne in jedem Ablauf die Phase
- 9HerausforderungVerfolge den Wechsel, ohne eine Runde zu überspringen
- 10ErklärungUnterscheide eine Lücke von einem schweigenden Pfad
- 11BeispielBeginne Fast Recovery mit vorübergehender Aufblähung
- 12BeispielBeende die Wiederherstellung bei der Schwelle
- 13HerausforderungNutze FlightSize und nimm die Aufblähung korrekt zurück
- 14ErklärungBilde den Durchschnitt des Sägezahnfensters
- 15BeispielRechne den Durchschnitt in Bit pro Sekunde um
- 16VerbindungErkenne, warum Verlust und RTT wichtig sind
- 17HerausforderungÄndere zwei Modelleingaben gemeinsam
- 18KernaussageEin hohes BDP verstärkt die langsame Wiederherstellung
- 19HerausforderungVerbinde die Ratenschätzung mit der Flusskontrolle
- 20ZusammenfassungBetrachte Wachstum, Wiederherstellung und Begrenzungen als getrennte Entscheidungen
3Verfolge faire Aufteilung vom idealen Paar bis zu realen Nutzern
12 Schritte
Speichere diese Einheit, um jede Interaktive Lektion Schritt für Schritt durchzugehen.
- 1EinführungFrag dich, wer die Kapazität erhält
- 2ErklärungZeichne die beiden Zielgeraden
- 3BeispielBetrachte Abstand und Verhältnis getrennt
- 4HerausforderungWähle eine Anpassung, die die relative Aufteilung verändert
- 5VerbindungErkenne, wann die ideale Konvergenz gilt
- 6ErklärungNutze den Jain-Fairnessindex für die Gleichheit
- 7BeispielBerechne einen Indexwert und die Auslastung
- 8BeispielTeile den Rest nach geringem Bedarf auf
- 9HerausforderungFinde die richtige Bezugsgruppe für einen Fairnesswert
- 10KernaussageSender und Warteschlangen bestimmen gemeinsam das Ergebnis
- 11HerausforderungUnterscheide Gleichheit von effizientem AIMD-Verhalten
- 12ZusammenfassungUnterscheide eine Aufteilung von ihrer Erklärung
4Verfolge eine frühzeitige Überlastwarnung
13 Schritte
Speichere diese Einheit, um jede Interaktive Lektion Schritt für Schritt durchzugehen.
- 1EinführungWenige Verluste können eine lange Wartezeit verbergen
- 2BeispielMiss die Wartezeit in einem großen Puffer
- 3ErklärungRED gibt eine probabilistische Frühwarnung
- 4ErklärungCoDel prüft, ob die Verzögerung jemals klein wird
- 5HerausforderungInterpretiere einen Verzögerungsverlauf
- 6VerbindungUnterscheide die Bedienung von Datenströmen und die Verzögerungskontrolle
- 7ErklärungMarkiere ein zugestelltes Paket
- 8BeispielSchließe den klassischen TCP-Rückkopplungskreis
- 9HerausforderungBehandle wiederholte Rückmeldungen eines Ereignisses
- 10BeispielPasse eine DCTCP-Reaktion an den markierten Verkehr an
- 11VerbindungL4S kombiniert das Verhalten von Endpunkten und Warteschlangen
- 12HerausforderungErkläre die Zustellung ohne Zeitüberschreitung
- 13ZusammenfassungVerfolge Erkennung, Markierung und Reaktion
5Vergleiche das CUBIC-Wachstum mit dem Pfadmodell von BBR
14 Schritte
Speichere diese Einheit, um jede Interaktive Lektion Schritt für Schritt durchzugehen.
- 1EinführungWähle, was die Überlastkontrolle ermitteln soll
- 2ErklärungBeginne mit einer geringeren gewöhnlichen Verringerung
- 3BeispielBestimme die kubische Rückkehrzeit
- 4BeispielBerechne einen Punkt unterhalb des alten Spitzenwerts
- 5KernaussageDie reine Kurve ist nur eine Möglichkeit
- 6HerausforderungNutze die zwei unterschiedlichen gespeicherten CUBIC-Werte
- 7BeispielLass Vegas auf wartende Segmente schließen
- 8ErklärungErstelle das Bandbreiten-Verzögerungs-Modell von BBR
- 9BeispielBerechne das Modell vor Anwendung der Faktoren
- 10VerbindungErkunde die Kapazität und schaffe dann Raum für Messungen
- 11HerausforderungSetze ein Modell in Steuereinstellungen um
- 12TippBehalte Version und Rückmelderegeln im Blick
- 13HerausforderungUnterscheide eine RTT-Warnung von einem Pfadmodell
- 14ZusammenfassungVergleiche Messungen, Wachstum und Warteschlangenbildung
6Verfolge QUIC vom Aufbau bis zur Wiederherstellung nach Überlastung
15 Schritte
Speichere diese Einheit, um jede Interaktive Lektion Schritt für Schritt durchzugehen.
- 1EinführungVerändere den Transport, ohne seine Aufgabe aufzugeben
- 2ErklärungVerstehe, warum TCP-Änderungen ins Stocken geraten können
- 3VerbindungSchütze Details, die sich ändern müssen
- 4BeispielVergleiche die Zeit bis zur ersten Antwort
- 5BeispielUnterscheide Datenstromreihenfolge und gemeinsame Verbindung
- 6HerausforderungKorrigiere eine Aussage über Transport auf UDP-Basis
- 7ErklärungGib jeder Übertragung eine eigene Kennung
- 8BeispielErkenne eine Lücke, bevor du Rückmeldungen auslöst
- 9BeispielBerechne Anfangs- und Mindestfenster
- 10HerausforderungVerringere einmal für ein Ereignis mit zuvor gesendeten Daten
- 11BeispielBestimme die Dauer für anhaltende Überlastung
- 12VerbindungÜbermittle ECN-Zähler in Quittungen
- 13TippPrüfe nicht nur wie viele Bytes gesendet werden, sondern auch wann
- 14HerausforderungVerbinde unabhängige Zustellung mit einer gemeinsamen Reaktion
- 15ZusammenfassungBetrachte Bereitstellungsvorteile und Pflichten zur Überlastkontrolle gemeinsam
Überlastkontrolle in Netzen: Übungsaufgaben
Set 1: Lies Überlastsignale und Fensteränderungen10 Übungsfragen
Frage 1 von 10
Antwort zeigenAntwort ausblenden
Frage 2 von 10
Antwort zeigenAntwort ausblenden
Frage 3 von 10
Antwort zeigenAntwort ausblenden
Frage 4 von 10
Antwort zeigenAntwort ausblenden
Frage 5 von 10
Antwort zeigenAntwort ausblenden
Frage 6 von 10
Antwort zeigenAntwort ausblenden
Frage 7 von 10
Antwort zeigenAntwort ausblenden
Frage 8 von 10
Antwort zeigenAntwort ausblenden
Frage 9 von 10
Antwort zeigenAntwort ausblenden
Frage 10 von 10
Antwort zeigenAntwort ausblenden
Set 2: Stelle Zusammenhänge zwischen Raten, Fairness und Transportrückmeldungen her10 Übungsfragen
Speichere diese Einheit, um jede Antwort zu sehen und jedes Set zu üben.
Frage 1 von 10
Antwort zeigenAntwort ausblenden
Speichere diese Einheit, um diese Antwort zu sehen.
Frage 2 von 10
Antwort zeigenAntwort ausblenden
Speichere diese Einheit, um diese Antwort zu sehen.
Frage 3 von 10
Antwort zeigenAntwort ausblenden
Speichere diese Einheit, um diese Antwort zu sehen.
Frage 4 von 10
Antwort zeigenAntwort ausblenden
Speichere diese Einheit, um diese Antwort zu sehen.
Frage 5 von 10
Antwort zeigenAntwort ausblenden
Speichere diese Einheit, um diese Antwort zu sehen.
Frage 6 von 10
Antwort zeigenAntwort ausblenden
Speichere diese Einheit, um diese Antwort zu sehen.
Frage 7 von 10
Antwort zeigenAntwort ausblenden
Speichere diese Einheit, um diese Antwort zu sehen.
Frage 8 von 10
Antwort zeigenAntwort ausblenden
Speichere diese Einheit, um diese Antwort zu sehen.
Frage 9 von 10
Antwort zeigenAntwort ausblenden
Speichere diese Einheit, um diese Antwort zu sehen.
Frage 10 von 10
Antwort zeigenAntwort ausblenden
Speichere diese Einheit, um diese Antwort zu sehen.
Set 3: Analysiere Warteschlangen und Wiederherstellungsphasen10 Übungsfragen
Speichere diese Einheit, um jede Antwort zu sehen und jedes Set zu üben.
Frage 1 von 10
Antwort zeigenAntwort ausblenden
Speichere diese Einheit, um diese Antwort zu sehen.
Frage 2 von 10
Antwort zeigenAntwort ausblenden
Speichere diese Einheit, um diese Antwort zu sehen.
Frage 3 von 10
Antwort zeigenAntwort ausblenden
Speichere diese Einheit, um diese Antwort zu sehen.
Frage 4 von 10
Antwort zeigenAntwort ausblenden
Speichere diese Einheit, um diese Antwort zu sehen.
Frage 5 von 10
Antwort zeigenAntwort ausblenden
Speichere diese Einheit, um diese Antwort zu sehen.
Frage 6 von 10
Antwort zeigenAntwort ausblenden
Speichere diese Einheit, um diese Antwort zu sehen.
Frage 7 von 10
Antwort zeigenAntwort ausblenden
Speichere diese Einheit, um diese Antwort zu sehen.
Frage 8 von 10
Antwort zeigenAntwort ausblenden
Speichere diese Einheit, um diese Antwort zu sehen.
Frage 9 von 10
Antwort zeigenAntwort ausblenden
Speichere diese Einheit, um diese Antwort zu sehen.
Frage 10 von 10
Antwort zeigenAntwort ausblenden
Speichere diese Einheit, um diese Antwort zu sehen.
Set 4: Wende die Regeln bei veränderten Bedingungen an10 Übungsfragen
Speichere diese Einheit, um jede Antwort zu sehen und jedes Set zu üben.
Frage 1 von 10
Antwort zeigenAntwort ausblenden
Speichere diese Einheit, um diese Antwort zu sehen.
Frage 2 von 10
Antwort zeigenAntwort ausblenden
Speichere diese Einheit, um diese Antwort zu sehen.
Frage 3 von 10
Antwort zeigenAntwort ausblenden
Speichere diese Einheit, um diese Antwort zu sehen.
Frage 4 von 10
Antwort zeigenAntwort ausblenden
Speichere diese Einheit, um diese Antwort zu sehen.
Frage 5 von 10
Antwort zeigenAntwort ausblenden
Speichere diese Einheit, um diese Antwort zu sehen.
Frage 6 von 10
Antwort zeigenAntwort ausblenden
Speichere diese Einheit, um diese Antwort zu sehen.
Frage 7 von 10
Antwort zeigenAntwort ausblenden
Speichere diese Einheit, um diese Antwort zu sehen.
Frage 8 von 10
Antwort zeigenAntwort ausblenden
Speichere diese Einheit, um diese Antwort zu sehen.
Frage 9 von 10
Antwort zeigenAntwort ausblenden
Speichere diese Einheit, um diese Antwort zu sehen.
Frage 10 von 10
Antwort zeigenAntwort ausblenden
Speichere diese Einheit, um diese Antwort zu sehen.
Set 5: Analysiere Zusammenhänge zwischen Modellen und Transportverhalten10 Übungsfragen
Speichere diese Einheit, um jede Antwort zu sehen und jedes Set zu üben.
Frage 1 von 10
Antwort zeigenAntwort ausblenden
Speichere diese Einheit, um diese Antwort zu sehen.
Frage 2 von 10
Antwort zeigenAntwort ausblenden
Speichere diese Einheit, um diese Antwort zu sehen.
Frage 3 von 10
Antwort zeigenAntwort ausblenden
Speichere diese Einheit, um diese Antwort zu sehen.
Frage 4 von 10
Antwort zeigenAntwort ausblenden
Speichere diese Einheit, um diese Antwort zu sehen.
Frage 5 von 10
Antwort zeigenAntwort ausblenden
Speichere diese Einheit, um diese Antwort zu sehen.
Frage 6 von 10
Antwort zeigenAntwort ausblenden
Speichere diese Einheit, um diese Antwort zu sehen.
Frage 7 von 10
Antwort zeigenAntwort ausblenden
Speichere diese Einheit, um diese Antwort zu sehen.
Frage 8 von 10
Antwort zeigenAntwort ausblenden
Speichere diese Einheit, um diese Antwort zu sehen.
Frage 9 von 10
Antwort zeigenAntwort ausblenden
Speichere diese Einheit, um diese Antwort zu sehen.
Frage 10 von 10
Antwort zeigenAntwort ausblenden
Speichere diese Einheit, um diese Antwort zu sehen.
Hängst du bei deiner eigenen Aufgabe fest? Hausaufgabenhilfe
Schlüsselbegriffe
A
Ablauf des Wiederholungszeitlimits (RTO)
Additive Erhöhung
AIMD
Aktives Warteschlangenmanagement (AQM)
Anfangsfenster
Angebotene Last
Anhaltende Überlastung
Appropriate Byte Counting
Ausgangswarteschlange
B
Bandbreiten-Verzögerungs-Produkt (BDP)
Basis-RTT
BBR
Bufferbloat
C
Chiu-Jain-Diagramm
Congestion Experienced (CE)
Congestion Window Reduced (CWR)
Controlled Delay (CoDel)
CUBIC
CUBIC-Rückkehrzeit K
D
Data Center TCP (DCTCP)
Dauerhaft gefüllte Warteschlange
Durchsatz
E
ECN-Echo (ECE)
ECN-fähiger Transport (ECT)
Effizienzgerade
Empfangsfenster (rwnd)
Ende-zu-Ende-Überlastkontrolle
Engpass
Explizite Überlastbenachrichtigung (ECN)
F
Fair Queuing
Fairnessgerade
Fast Recovery
Fast Retransmit
Fensteraufblähung
Fensterbasierte Steuerung
Fensterfaktor
FlightSize
Flusskontrolle
G
Globale Synchronisation
H
Head-of-Line-Blocking
J
Jain-Fairnessindex
K
Klippe (Cliff)
Kniepunkt
L
L4S
M
Mathis-Näherung
Max-Min-Fairness
Maximale Segmentgröße (MSS)
Multiplikative Verringerung
N
Netzgestützte Überlastkontrolle
NewReno
Nutzdatendurchsatz
P
Pacing
Pacing-Faktor
Paketnummernraum
Paketschwellenwert
Parallele Verbindungen
Probe Timeout (PTO)
ProbeBW
ProbeRTT
Protokollverkrustung
Q
QUIC
QUIC-Datenstrom
Quittungsbereich
Quittungstaktung
Quittungsverzögerung
R
Random Early Detection (RED)
Ratenbasierte Steuerung
Reno-freundlicher Bereich
RTT-bedingte Unfairness
S
Sägezahnmodell
Schnelle Konvergenz
Selektive Quittung (SACK)
Slow Start
Slow-Start-Schwelle (ssthresh)
T
Tail Drop
TCP Vegas
TCP-freundlicher Verkehr
Teilquittung
Ü
Überlastfenster (cwnd)
Überlastkollaps
Überlastsignal
Überlastung
Überlastvermeidung
Übertragungswiederholung
U
Umlaufzeit (RTT)
Unnötige Übertragungswiederholung
V
Verbindungsmigration
Verlustanteil
Verweilzeit
Verzögerte Quittung
W
Wiederherstellungsphase
Wiederherstellungsproblem bei hohen Übertragungsraten
Wmax
Z
Zeitschwellenwert
#
0-RTT-Frühdaten
Über diese Einheit
Erstelle deine eigenen Lernmaterialien
Mach aus deinen Notizen, Folien und Dokumenten Lernleitfäden, Übungsfragen, Karteikarten und 6 weitere Tools.