-
GEBIET
-
Die vorliegenden Lehren offenbaren Verfahren und Systeme zur Behandlung der Überlastungssteuerung für einen Engpassbandbreiten- (Round-Trip Propagation Time) (BBR)
und Umlaufzeit-Übertragungssteuerungsprotokoll (Transmission Control Protocol)-Datenfluss (TCP) in Verbindung mit anderen Flusskontrollsystemen, wie beispielsweise einer Zufall-Früherkennung-System (RED), ein Fenstergrößenkontrollsystem oder dergleichen. In einigen Ausführungsformen durchläuft ein BBR-TCP-Fluss einen Verbindungsfluss, der von einer RED Überlastungssteuerung gesteuert wird. Die vorliegenden Lehren können auf einem Zwischennetzwerkknoten verwendet werden, der eine tatsächliche Engpassverbindung von einem Absender verschleiert.
-
In einigen Ausführungsformen kann ein Zwischenknoten ein Satelliten-Gateway sein, so dass ein BBR-TCP-Fluss eine Satellitenkommunikationsverbindung durchquert, die einer RED Überlastungssteuerung durch den Satellitenanbieter unterliegt. In einigen Ausführungsformen überträgt der BBR-TCP-Fluss den Großteil des Verkehrs an eine Mikrofunkstelle (Very Small Aperture Terminal) (VSAT).
-
In einigen Ausführungsformen kann ein Zwischenknoten eine zellulare Basisstation sein, so dass ein BBR-TCP-Fluss eine zellulare Verbindung durchquert, die einer RED Überlastungssteuerung unterliegt. In einigen Ausführungsformen überträgt der BBR-TCP-Fluss den Großteil des Verkehrs über die Mobilfunkverbindung an ein Benutzerendgerät bzw. Benutzerterminal (User Terminal) (UT), das einen Dienst empfängt.
-
HINTERGRUND
-
Vor kurzem hat Google eine neue Überlastungssteuerung für TCP-Flüsse (Transmission Control Protocol) initiiert und vorgeschlagen. Die neue Überlastungssteuerung, die als BBR bekannt ist, basiert auf der Messung von zwei Parametern, die einen Pfad charakterisieren, nämlich Engpassbandbreite (Bottleneck Bandwidth) und Umlaufzeit (Round-Trip-Ausbreitungszeit) (BBR). In BBR misst ein Absender die Engpassbandbreite und die Umlaufzeit (Round Trip Time) (RTT) über empfangene Bestätigungen (acknowledgments)(ACKs). Der Datenfluss des Absenders basiert im Wesentlichen auf dem Produkt aus gemessener Bandbreite und RTT. Darüber hinaus steuert BBR die Senderate anhand der Datenmenge während des Flugs (in-flight data) und der RTT.
-
Die herkömmliche TCP-Überlastungssteuerung für die Flugdaten des Sendens basiert auf einer Fenstergröße, die sowohl vom Sender als auch vom Empfänger bestimmt wird. Der Absender verkleinert die Fenstergröße, wenn fehlende ACKs angezeigt werden. ACKs, die vermutlich auf Paketverluste auf dem Pfad infolge einer Überlastung zurückzuführen sind. Basierend auf einem solchen Merkmal des Absenders könnte das absichtliche Verwerfen eines Pakets an einem Zwischenknoten die Überlastung des Pfades verringern. Die zufällige Früherkennung (RED) basiert auf einem solchen Mechanismus. Die hier durch Bezugnahme in ihrer Gesamtheit aufgenommene US-Patentveröffentlichungsnummer 2013/0136000 offenbart eine herkömmliche Lehre.
-
BBR unterscheidet sich von der herkömmlichen TCP-Überlastungssteuerung darin, dass es nicht empfindlich auf einen Paketverlust reagiert. Obwohl BBR eine Sende-Rate basierend auf empfangenen ACKs ändert, hat das zufällige Verwerfen eines einzelnen Pakets im Gegensatz zur herkömmlichen TCP-Überlastungssteuerung keinen Einfluss auf die Sende-Rate von BBR. Im Gegensatz dazu könnte ein fehlender ACK herkömmlicherweise die Übertragungsrate des Absenders im Wesentlichen halbieren. In den vorliegenden Lehren werden Datenflüsse, die BBR verwenden, als BBR-Verkehr bezeichnet, während Datenflüsse, die BBR nicht verwenden, als Nicht-BBR-Verkehr bezeichnet werden.
-
Ein Hochdurchsatzsatellit (HTS) kann ein Überlastungssteuerungsschema wie RED verwenden. RED wird an einem Internet Gateway (IPGW) des HTS angewendet, um den eingehenden Datenverkehr zum leistungssteigernden Proxy (Performance Enhancing Proxy) (PEP) zu steuern. Das IPGW verwirft nach dem Zufallsprinzip Pakete aller Flow-Sitzungen, um den TCP-Verkehr während einer Überlastung zurückzuschieben. Dies setzt voraus, dass alle TCP-Quellen der herkömmlichen Überlastungssteuerung folgen. Wenn jedoch eine erhebliche Menge an BBR-Verkehr vom IPGW empfangen und bestätigt wird, kann sich der BBR-Verkehr während der Überlastung im IPGW ansammeln (da zufälliges Löschen die Sendegeschwindigkeit nicht beeinflussen würde) und Probleme für Nicht-BBR-Verkehr verursachen. Da der BBR-Verkehr aufgrund eines Paketverlusts nicht zurückgedrängt wird, wird RED häufiger ausgelöst, wenn der BBR-Verkehr mehr Pufferplatz beansprucht, was zu weniger eingehendem Nicht-BBR-Verkehr führt und folglich den Durchsatz von Nicht-BBR-Flüssen im Vergleich zu BBR-Flüssen verringert.
-
ZUSAMMENFASSUNG
-
Diese Zusammenfassung soll eine Auswahl von Konzepten in vereinfachter Form vorstellen, die weiter unten in der detaillierten Beschreibung beschrieben wird. Diese Zusammenfassung soll weder Schlüsselmerkmale oder wesentliche Merkmale des beanspruchten Gegenstands identifizieren, noch soll sie verwendet werden, um den Umfang des beanspruchten Gegenstands einzuschränken.
-
Die vorliegenden Lehren befassen sich mit der Flusskontrolle des BBR-Verkehrs oder des kombinierten BBR- und Nicht-BBR-Verkehrs an einem Zwischenknoten, um die Ende-zu-Ende-(End-to-End) Leistung des TCP-Protokolls zu verbessern, beispielsweise durch Verstecken oder Schützen einer relativ langsamen Verbindung in der Kommunikationspfad von einem Absender zu einem Empfänger an oder hinter einem Benutzerterminal (UT). Beispiele für einen solchen Zwischenknoten umfassen, ohne darauf beschränkt zu sein, das IPGW, einen Aggregator, eine Basisstation, einen leistungssteigernden Proxy oder dergleichen.
-
Die vorliegenden Lehren offenbaren die gleichzeitige Flusssteuerung für BBR- und Nicht-BBR-Verkehr in einer RED-basierten Überlastungssteuerungskonfiguration. Die vorliegenden Lehren koexistieren mit der RED-Überlastungssteuerung, um die ACKs eines BBR-Flusses so zu beschleunigen, dass die Senderate des BBR-Verkehrs verringert werden kann. In einigen Ausführungsformen erfolgt die BBR-Überlastungssteuerung pro Priorität pro UT-Basis. Während einer Überlastung können, wenn die durchschnittliche RED Rate nicht Null ist (größer als ein Schwellenwert), die Flüsse einer bestimmten Priorität eines UT mit einer höheren Verzögerung ausgewählt werden. ACKs der ausgewählten Flüsse werden so stimuliert, dass die von ACK erzeugte Datenrate geringer ist als der tatsächliche Durchsatz, der vom Datenflussplaner bereitgestellt wird. Infolgedessen sendet der Absender für einen BBR-Fluss eine kleinere Rate basierend auf den empfangenen ACKs. Andererseits werden die ACKs während einer Überlastung nicht für alle Verkehrsflüsse stimuliert. Im Allgemeinen laufen die vorliegenden Lehren über oder neben RED. In einigen Ausführungsformen verwenden die vorliegenden Lehren die Ausgabe von RED als Eingabe. In einigen Ausführungsformen ist RED unabhängig und es gibt keine Auswirkungen oder Änderungen an der vorhandenen Überlastungssteuerung. Für eine ausgewählte Priorität eines UT könnte die Flusssteuerung sowohl aus BBR- als auch aus Nicht-BBR-Flüssen bestehen, und die vorliegenden Lehren funktionieren für diesen Fall. In einigen Ausführungsformen gibt es keine Auswirkungen auf die Leistung von Nicht-BBR-Flüssen, selbst wenn die vorliegenden Lehren ausgelöst werden, um während der Überlastung auf Nicht-BBR-Verkehr anzuwenden.
-
Ein Verfahren zum Steuern der Verkehrsüberlastung durch eines oder mehrere Benutzerterminals (UTs), die einen Zwischenknoten durchlaufen. Das Verfahren umfasst: Zuordnen eines oder mehrerer Verkehrsflüsse einer Priorität zu einem der einen oder mehreren UTs; Erkennen einer Verkehrsüberlastung für die Priorität; Durchführen einer zufälligen Früherkennung-(RED)-Überlastungssteuerung für die Priorität zur Entlastung der Verkehrsstaus; Auswählen eines Benutzerterminals (UT) mit einer wahrgenommenen Verzögerung für die Priorität, die größer als ein hoher Schwellenwert ist; und Steuern der dem ausgewählten UT zugeordneten Verkehrsflüsse durch (nach) Priorität.
-
Ein Zwischenknoten zur Steuerung der Verkehrsüberlastung durch eines oder mehrere Benutzerterminals (UTs), die den Zwischenknoten durchqueren. Der Zwischenknoten umfasst: einen Flussplaner, um einen oder mehrere Verkehrsflüsse einer Priorität einem der einen oder mehreren UTs zuzuordnen und eine Verkehrsüberlastung für die Priorität zu erfassen; eine zufällige Früherkennung-(RED)-Überlastungssteuerung zur Durchführung einer Überlastungssteuerung für die Priorität zur Entlastung der Verkehrsstaus; eine BBR-Überlastungssteuerung, um für die Priorität ein Benutzerterminal (UT) mit einer wahrgenommenen Verzögerung auszuwählen, die größer als ein hoher Schwellenwert ist; und ein Steuermodul, um durch (nach) Priorität die mit dem ausgewählten UT verbundenen Verkehrsflüsse zu steuern.
-
Zusätzliche Merkmale werden in der folgenden Beschreibung dargelegt und sind teilweise aus der Beschreibung ersichtlich oder können durch Üben des Beschriebenen erlernt werden.
-
Figurenliste
-
Um die Art und Weise zu beschreiben, in der die oben genannten und andere Vorteile und Merkmale erhalten werden können, wird nachstehend eine genauere Beschreibung bereitgestellt, die unter Bezugnahme auf spezifische Ausführungsformen davon wiedergegeben wird, die in den beigefügten Zeichnungen dargestellt sind. In dem Verständnis, dass diese Zeichnungen nur typische Ausführungsformen darstellen und daher nicht als Einschränkung ihres Umfangs anzusehen sind, werden Implementierungen unter Verwendung der beigefügten Zeichnungen mit zusätzlicher Spezifität und Detailgenauigkeit beschrieben und erklärt.
- 1 zeigt ein System der Überlastungssteuerung für einen Fluss mit Engpassbandbreite und Umlaufzeit (BBR) eines Benutzerterminals (UT) gemäß verschiedenen Ausführungsformen.
- 2 zeigt ein Flussdiagramm eines beispielhaften Verfahrens zur Überlastungssteuerung eines Flusses mit Engpassbandbreite und Umlaufzeit (BBR) gemäß einigen Ausführungsformen.
- 3 zeigt einen beispielhaften Pseudocode zum Auswählen eines BBR-Kandidaten und zum Bestimmen eines Tempoangabe-Faktors (insbesondere beim Tempo-Reduzieren) (Pacing Factor).
- 4 zeigt ein beispielhaftes System zum Bereitstellen einer Tempo-Angabe (Pacing Down) in ACK-Warteschlangen gemäß verschiedenen Ausführungsformen.
-
In den Zeichnungen und der detaillierten Beschreibung beziehen sich dieselben Zeichnungsreferenznummern, sofern nicht anders beschrieben, auf dieselben Elemente, Merkmale und Strukturen. Die relative Größe und Darstellung dieser Elemente kann aus Gründen der Klarheit, Veranschaulichung und Zweckmäßigkeit übertrieben sein.
-
DETAILLIERTE BESCHREIBUNG
-
Ausführungsformen werden nachstehend ausführlich diskutiert. Während spezifische Implementierungen diskutiert werden, sollte verstanden werden, dass dies nur zu Illustrationszwecken erfolgt. Ein Fachmann auf dem relevanten Gebiet wird erkennen, dass andere Komponenten und Konfigurationen verwendet werden können, ohne sich vom Geist und Umfang des Gegenstands dieser Offenbarung zu trennen.
-
Die hier verwendete Terminologie dient nur zur Beschreibung bestimmter Ausführungsformen und soll die vorliegende Offenbarung nicht einschränken. Wie hierin verwendet, sollen die Singularformen „ein“, „eine“ und „der/die/das“ auch die Pluralformen einschließen, sofern der Kontext nicht eindeutig etwas anderes anzeigt. Darüber hinaus bedeutet die Verwendung der Begriffe ein, eine usw. keine Mengenbeschränkung, sondern das Vorhandensein mindestens eines der genannten Elemente. Die Verwendung der Begriffe „erstens“, „zweitens“ und dergleichen impliziert keine bestimmte Reihenfolge, sie sind jedoch enthalten, um entweder einzelne Elemente zu identifizieren oder ein Element von einem anderen zu unterscheiden. Es versteht sich ferner, dass die Begriffe „umfasst“ und / oder „umfasst“ oder „umfasst“ und / oder „einschließlich“, wenn sie in dieser Spezifikation verwendet werden, das Vorhandensein angegebener Merkmale, Regionen, Ganzzahlen, Schritte, Operationen, Elemente spezifizieren und / oder Komponenten, schließen jedoch das Vorhandensein oder Hinzufügen eines oder mehrerer anderer Merkmale, Regionen, Ganzzahlen, Schritte, Operationen, Elemente, Komponenten und / oder Gruppen davon nicht aus. Obwohl einige Merkmale in Bezug auf einzelne beispielhafte Ausführungsformen beschrieben werden können, müssen Aspekte nicht darauf beschränkt sein, so dass Merkmale aus einer oder mehreren beispielhaften Ausführungsformen mit anderen Merkmalen aus einer oder mehreren beispielhaften Ausführungsformen kombiniert werden können.
-
Die vorliegenden Lehren offenbaren die Überlastungssteuerung mit RED und BBR. Der BBR-Verkehr kann während der Überlastung inline mit der RED-basierten Überlastungssteuerung gesteuert werden. Insbesondere offenbaren die vorliegenden Lehren ein Verfahren zum Auswählen eines BBR-Verkehrskandidaten und zum Durchführen einer Tempo-Angabe (Pacing) daraufhin. Die vorliegenden Lehren offenbaren auch ein Verfahren zum Berechnen oder Bestimmen einer ACK-Rate bei der Durchführung einer BBR-Überlastungssteuerung.
-
Die Überlastungssteuerung umfasst Aspekte der Identifizierung und Kontrolle. In einigen Ausführungsformen kann die Steuerung der Überlastung durchgeführt werden, indem der eingehende Verkehr skaliert wird, beispielsweise durch Tempo-Angabe (Pacing) von Bestätigungen (ACKs), um die eingehende Verkehrsrate zu formen, um die verschleierte Engpassverbindung oder dergleichen zu emulieren. Die vorliegenden Lehren offenbaren eine Tempo-Angabe der ACK-Ausführungsform im Detail, einschließlich der Offenbarung einer Berechnung eines Tempoangabe-Faktors (Pacing Factor) und eines Durchsatzes nach Priorität. In einigen Ausführungsformen kann ein Formungsfaktor auf Berechnungen des Tempoangabe-Faktors basieren. In einigen Ausführungsformen kann der Formungsfaktor der Tempoangabe-Faktor sein. Der Formungsfaktor kann verwendet werden, um den eingehenden Verkehr eines überlasteten Benutzerterminals (UT) zu formen, um den berechneten Durchsatz durch die Priorität zu emulieren.
-
Dieser Ansatz funktioniert in Verbindung mit, jedoch unabhängig von RED. In einigen Ausführungsformen wird die BBR-Überlastungssteuerung nur dann aktiviert, wenn RED ausgelöst wird, indem BBR-Kandidaten ausgewählt und ACKs für die BBR-Kandidaten stimuliert werden. Die vorliegenden Lehren können pro Priorität pro UT-Basis durchgeführt werden. Für eine ausgewählte Priorität eines UT können die Verkehrsflüsse des UT sowohl BBR- als auch Nicht-BBR-Flüsse umfassen, und die vorliegenden Lehren funktionieren für diesen Fall. In beispielhaften Ausführungsformen gibt es keine Auswirkungen auf die Leistung von Nicht-BBR-Flüssen, selbst wenn die ACK-Tempo-Angabe ausgelöst wird, um während der Überlastung auf sie anzuwenden.
-
1 zeigt ein System der Überlastungssteuerung eines Benutzerterminals (UT) für einen Fluss mit Engpassbandbreite und Umlaufzeit (BBR) gemäß verschiedenen Ausführungsformen.
-
In 1 umfasst ein System 100, das eine Überlastungssteuerung für den BBR-Verkehr bereitstellt, einen Sender 120, einen Zwischenknoten 110, ein Zufällige-Früherkennung(RED)-Überlastungssteuerungsmodul 102, ein Flussplanungsmodul 104, ein BBR-Überlastungssteuerungsmodul 106, ein ACK-Tempoangabe-Modul 108, Task-Warteschlangen 112 und Ausgabewarteschlangen 114. Wenn eingehende Datenpakete am Zwischenknoten 110 ankommen, werden sie sofort an den Absender 120 bestätigt (ACKed) und in den TSK-Warteschlangen 112 in die Warteschlange gestellt. Das RED-Modul 102 kann kontinuierlich eine wahrgenommene Verzögerung aller Daten messen, die in einem Zwischenknoten in der Warteschlange stehen. Wenn die wahrgenommene Verzögerung größer als ein Schwellenwert ist, wird eine Abfallwahrscheinlichkeit berechnet. Der Zwischenknoten 110 wendet die Abwurfwahrscheinlichkeit auf Pakete an, die an den Aufgabenwarteschlangen 112 ankommen. Wenn ein Paket verworfen wird, fehlt einem jeweiligen Absender 120 eine ACK. Durch zufälliges Verwerfen von Paketen signalisiert der Zwischenknoten 110 den Sendern 120, die Datenrate zu verringern. Da das Verwerfen zufällig auf alle Pakete angewendet wird, stellt das Verwerfen sicher, dass die Datenflüsse mit gleichen Chancen in der Rate verkleinert werden. In Reaktion auf die fehlende ACK reduziert der jeweilige Absender 120 für einen Nicht-BBR-Verkehrsfluss seine Übertragungsrate.
-
Die fehlenden ACKs sind nicht wirksam, um eine Übertragungsrate eines BBR-Verkehrsflusssenders 120 zu reduzieren. Der BBR-Verkehr verringert die Rate aufgrund einer fehlenden ACK nicht. Während der Überlastung kann der BBR-Verkehr weiterhin Puffer an den TSK-Warteschlangen 112 nehmen, wodurch die RED-Überlastungssteuerung 102 häufiger ausgelöst wird, um den Nicht-BBR-Verkehr zu verkleinern. Die ungleichmäßige Wirksamkeit der RED-Überlastungssteuerung 102 komprimiert letztendlich den Nicht-BBR-Durchsatz, was zu einer unfairen Bandbreitennutzung unter UTs führt. In einigen Ausführungsformen kann BBR, das übermäßigen Puffer nimmt, vermieden werden, indem BBR-Flüsse basierend auf einem durchschnittlichen Durchsatz der vom Flussplaner 104 bereitgestellten Flüsse stimuliert werden. Da das Netzwerk des Systems 100 jedoch dynamisch ist, kann sich die Durchsatzrate eines UT im Laufe der Zeit ändern. Die Flusssteuerung basierend auf dem durchschnittlichen Durchsatz der Flüsse kann zu unerwünschten verbleibenden Daten des BBR-Verkehrs in Warteschlangen führen. Als solches offenbarten die vorliegenden Lehren einen umfassenderen Ansatz, der die RED-Überlastungssteuerung und -planung integriert.
-
Das BBR-Überlastungssteuermodul 106 kann einen gemeinsamen Puffer enthalten, wie beispielsweise das ACK-Tempoangabe-Modul 108, um ACK-Pakete in die Warteschlange zu stellen. Das TSK-Warteschlangenmodul 102 kann ACK-Pakete an das ACK-Tempoangabe-Modul 108 senden, anstatt die ACK-Pakete direkt oder sofort an die Absender 120 zurückzusenden. Das BBR-Überlastungssteuermodul 106 kann bestimmen, wann und wie die ACKs so zu steuern sind, dass die Gesamtüberlastungssteuerung sicher und reibungslos läuft.
-
In den vorliegenden Lehren wird im Allgemeinen eine durchschnittliche (langfristige) RED-Abfallwahrscheinlichkeit als Indikator für eine konsistente Überlastung angesehen. Wenn die langfristige RED-Wahrscheinlichkeit größer als ein Schwellenwert ist, wird festgestellt, dass sich das System 100 in einer konsistenten Überlastung befindet. In beispielhaften Ausführungsformen muss der BBR-Verkehr gestört werden, wenn eine konsistente Überlastung erkannt wird. Da RED im Allgemeinen pro Priorität mit unterschiedlichen Verzögerungsschwellen auferlegt wird, kann in beispielhaften Ausführungsformen die BBR-Überlastungssteuerung auch pro Priorität auferlegt werden. Die BBR-Überlastungssteuerung 106 kann kontinuierlich (durch Messen, Berechnen, Empfangen oder dergleichen) eine durchschnittliche Durchsatzrate und eine gesamte Datenmenge in der Warteschlange pro Priorität jeder UT als Eingaben bereitgestellt werden, beispielsweise durch den Flussplaner 104. Das BBR-Modul 106 kann kontinuierlich eine wahrgenommene Verzögerung pro Priorität jeder UT auswerten. Während einer Überlastung des Systems 100 (oder in einigen Ausführungsformen sogar, wenn das System nicht überlastet ist), wenn die wahrgenommene Verzögerung einer Priorität eines UT größer als ein Schwellenwert ist, kann die BBR-Überlastungssteuerung 106 eine Tempo-Angabe der ACKs dieses bestimmten UT / Flusses anfordern. Da jede ACK eine Aufzeichnung einer Paketgröße enthält, kann das ACK-Tempoangabe-Modul 108 einen identifizierten Fluss steuern oder auf eine bestimmte Datenrate begrenzen, indem die Paketgrößen in den zugeordneten ACKs summiert werden.
-
Für die durchschnittliche Durchsatzrate einer Priorität für die UT kann die BBR-Überlastungssteuerung 106 die Tempoangabe verringern oder das Tempo reduzieren, so dass die Tempoangabe-Rate kleiner als oder in Übereinstimmung mit der Durchsatzrate einer nachgeschalteten Ressource ist. In einigen Ausführungsformen offenbarten die vorliegenden Lehren eine allmähliche Tempo-Angabe zum Wiederherstellen einer Tempoangabe-Rate, beispielsweise wenn das System nicht mehr überlastet ist. Wenn sie nicht überlastet sind, kann die BBR-Überlastungssteuerung 106 die Tempo-Angabe vollständig entlasten, was bedeutet, dass ACKs nicht in die Warteschlange gestellt werden. Bei Überlastung können die ACKs vom ACK-Tempoangabe-Modul 108 pro Priorität für UT in die Warteschlange gestellt werden. Im Allgemeinen gilt die Tempo-Angabe für alle Prioritäten, z. B. Interaktiv, Streaming und Bulk. Die Tempo-Angabe eines BBR-Flusses für eine UT kann vorübergehend sein, was bedeutet, dass die Tempo-Angabe beendet ist, sobald ein Verzögerungsziel erreicht ist.
-
In beispielhaften Ausführungsformen umfasst das System 100 ein RED-basiertes Überlastungssteuermodul 102. RED kann ein Indikator für die Gesamtsystemüberlastung sein. Zusätzlich zu RED kann die individuelle Verzögerung jedes UT auf einer Prioritätsstufe bewertet werden. Somit kann die BBR-Überlastungssteuerung 106 pro Prioritätsstufe für eine einzelne UT betrieben werden. UTs mit einer größeren Verzögerung als einem hohen Schwellenwert werden als BBR-Flusskandidat betrachtet und können einer Tempo-Reduzierung-Operation (Pacing Down Operation) zum Verringern einer ACK-Warteschlangengröße infolge der Verringerung einer eingehenden Rate unterzogen werden. Der hohe Schwellenwert ist größer als ein minimaler Verzögerungsschwellenwert zum Auslösen von RED. Sobald sich ein UT in einem Tempo-Reduzierung-Prozess befindet, wird die ACK-Rate des UT verlangsamt, bis die wahrgenommene Verzögerung kleiner als ein niedriger Schwellenwert ist. Die niedrige Schwelle liegt im Allgemeinen unter der minimalen Verzögerungsschwelle für RED. In einigen Ausführungsformen wird beim Tempo-Reduzieren (Pacing Down) ein Tempoangabe-Zeitlimit (Pacing timeout) verwendet. Beim Tempo-Reduzieren (Pacing Down) ist die ACK-Rate kleiner als die vom Planer 104 bereitgestellte durchschnittliche Durchsatzrate. Das Tempo-Reduktion eines UT wird im Allgemeinen nur ausgelöst, wenn die RED-Überlastungssteuerung 102 eine konsistente Überlastung anzeigt. In beispielhaften Ausführungsformen wird eine konsistente Überlastung basierend auf der Bedingung bestimmt, dass die langfristige RED Wahrscheinlichkeit größer als ein Schwellenwert ist. In Ausnahmefällen kann die Tempo-Reduktion ausgelöst werden, wenn die von einem UT wahrgenommene Verzögerung einer Priorität viel größer ist, selbst wenn das System 100 nicht überlastet ist. Wenn die Tempo-Reduktion eines UT beendet ist und das System 100 immer noch überlastet ist, kann die ACK-Rate auf gleich der durchschnittlichen Durchsatzrate eingestellt werden; Wenn das System 100 nicht überlastet ist, wird die Speicherung der ACK-Rate nicht gehalten, was bedeutet, dass ACKs sofort freigegeben werden.
-
2 zeigt ein Flussdiagramm eines beispielhaften Verfahrens zur Überlastungssteuerung eines Flusses mit Engpassbandbreite und Umlaufzeit (BBR) gemäß einigen Ausführungsformen.
-
Ein Verfahren 200 zur Überlastungssteuerung eines BBR-Flusses umfasst eine Operation 210 zum Bereitstellen einer Überlastungsanzeige pro Priorität. Das Verfahren 200 kann eine Operation 214 zum Auswählen eines UT als Tempo-Reduktion-Kandidaten enthalten, wenn die wahrgenommene Verzögerung des UT größer als ein hoher Schwellenwert ist. Dies wird wahrscheinlich ein Ausnahmefall sein. Das Verfahren 200 kann eine Operation 216 zum Freigeben aller anstehenden ACKs für eine nicht überlastete Priorität enthalten.
-
Das Verfahren 200 kann eine Operation 220 zum Erfassen einer überlasteten Priorität enthalten. In Operation 220 erfolgt die BBR-Überlastungssteuerung pro Prioritätsstufe oder mit anderen Worten, wenn eine Überlastung mit der Streaming-Priorität (und nicht für Bulk) erkannt wird, dann sind die Erkennung der Überlastung und nachfolgende Abhilfemaßnahmen wie das Angeben von einem reduzierten Tempo (Tempo-Reduktion) für die zugeordneten Flüsse oder ACKs mit der Streaming-Priorität. Das Verfahren 200 kann eine Operation 220 zum Durchführen einer RED Überlastungssteuerung für die Priorität enthalten. Das Verfahren 200 kann eine Operation 224 zum Auswählen eines BBR-Kandidaten mit einer wahrgenommenen Verzögerung umfassen, die größer als ein hoher Schwellenwert ist. In einigen Ausführungsformen kann das Verfahren 200 eine Operation 226 zum Freigeben von ACKs für Nicht-BBR-Kandidaten-UTs enthalten, wenn die Priorität überlastet ist.
-
Das Verfahren 200 kann eine Operation 230 zum Tempo-Reduzieren (oder Steuern oder Skalieren) des BBR-Kandidaten enthalten. Die Tempo-Reduktion (Tempo-Reduktion) kann die Tempo-Angabe (Gleichmäßig-Verteilen) (Pacing) von ACKs umfassen, sodass die ACK-Rate kleiner als die durchschnittliche Durchsatzrate eines UT ist. Die Operation 230 zum Tempo-Reduzieren kann eine Operation 232 zum Stoppen der Tempo-Reduktion umfassen, bis die wahrgenommene Verzögerung kleiner als ein niedriger Schwellenwert ist. Die Operation 230 zum Tempo-Reduzieren kann eine Operation 234 zum Stoppen der Tempo-Reduktion umfassen, wenn eine Zeitüberschreitung ausgelöst wird. Die Operation 230 zum Tempo-Reduzieren kann eine Operation 236 zum Identifizieren und Steuern eines BBR-Flusses für die dem BBR-Kandidaten zugeordneten Verkehrsflüsse umfassen. In Operation 236 kann die Steuerung nur die ACKs steuern, die dem identifizierten BBR-Fluss zugeordnet sind.
-
Das Verfahren 200 kann eine Operation 240 zum Beenden der Tempo-Reduktion umfassen. Die Operation 240 kann eine Operation 242 zum Einstellen der ACK-Rate gleich der Durchsatzrate der entsprechenden Priorität enthalten, wenn das System überlastet ist. Die Operation 240 kann eine Operation 244 zum Freigeben der ACKs enthalten, wenn das System nicht überlastet ist. Die Operation 240 kann eine Operation 246 zum erneuten Eintritt in Tempo-Reduktion umfassen, wenn das System überlastet ist und die wahrgenommene Verzögerung größer als ein hoher Schwellenwert ist. Wenn die Tempo-Reduktion beendet ist und das System überlastet ist (wie durch RED angezeigt), wird die ACK-Rate gleich der Durchsatzrate (mit der entsprechenden Priorität) gesetzt. Wenn das System nicht überlastet ist, wird die ACK sofort freigegeben.
-
In einigen Ausführungsformen kann das Verfahren 200 eine Operation 250 zum Abschließen der Operation 240 zum Tempo-Reduzieren von UTs enthalten, wenn das System von überlastet zu nicht überlastet wechselt.
-
Gegenwärtig gibt es keine explizite Angabe (z. B. etwas im Header eines BBR-Pakets), um anzuzeigen, ob ein Datenfluss BBR ist oder nicht. Als solches kann ein Nicht-BBR für die Tempo-Reduktion ausgewählt werden, wenn die Kriterien erfüllt sind. Es sollte jedoch keine oder nur geringfügige Auswirkungen auf die Leistung des Nicht-BBR-Verkehrs haben, wenn während der Überlastung eine Tempo-Reduktion durchgeführt wird. Dies tritt ohne Einschränkung auf, wenn der Nicht-BBR-Verkehr der RED-Überlastungssteuerung folgt. Wenn RED ausgelöst wird, wird die Eingaberate eines UT reduziert, während die Durchsatzrate gleich bleiben kann, wodurch weniger ACKs generiert werden. Das Festlegen einer ACK-Rate als bestimmter Bruchteil der Durchsatzrate kann ein ähnliches Ergebnis sein, das RED bringt.
-
Die vorliegenden Lehren offenbaren auch ein System und ein Verfahren zum Bestimmen eines BBR-Kandidaten und seines zugehörigen Tempoangabe-Faktors und zum Bestimmen einer ACK-Rate mit Prioritäten. In beispielhaften Ausführungsformen werden einige der benötigten Eingangsvariablen von anderen Modulen bereitgestellt, insbesondere die langfristige RED-Drop-Wahrscheinlichkeit, der gesamte Rückstand und die durchschnittliche Durchsatzrate eines UT. Diese können von den Modulen RED Überlastungssteuerung 106 und Flussplaner 104 erhalten werden.
-
Überblick
-
Bezeichne t als Zeitstrich (Zeit-Tick) für die BBR-Überlastungssteuerung. In beispielhaften Ausführungsformen beträgt der Zeitstrich standardmäßig 20 ms. Bezeichne
die langfristige durchschnittliche RED Abfallwahrscheinlichkeit für die Verkehrspriorität k, k = 1,..., K, wobei K die Anzahl der Prioritäten für einen Zwischenknoten ist. In beispielhaften Ausführungsformen kann diese RED Abfallwahrscheinlichkeit eine vorhandene Variable für eine RED Überlastungssteuerung sein, beispielsweise an einem Satelliten-Gateway, einem Zwischenknoten, einem PEP oder dergleichen.
-
In einigen Ausführungsformen kann sich die BBR-Überlastungssteuerung auf ein Prioritätsniveau eines Flusses konzentrieren. RED ist ein Indikator pro Priorität mit unterschiedlichen Schwellenwerten für Verzögerungen. Im Allgemeinen ist der Durchsatz auf UT-Ebene einigermaßen konsistent und zwischen verschiedenen UTs mit unterschiedlichen Tarifplänen vergleichbar. Man kann vernünftigerweise erwarten, dass BBR-Verkehr mit einer konsistenten Eingaberate eine längere Aufgabenwarteschlange verursacht, und als solche kann man schließen, dass die Durchsatzrate pro Priorität auch konsistent ist, wenn BBR vorhanden ist. Um eine BBR-Überlastungssteuerung pro Priorität bereitzustellen, leitet die BBR-Überlastungssteuerung die geschätzte Verzögerung pro Priorität für eine UT ab, berechnet sie oder misst sie und verwendet unterschiedliche Verzögerungsschwellenwerte für unterschiedliche Prioritäten.
-
Der Flussplaner 104 kann einen durchschnittlichen Durchsatz pro Priorität für jede UT und für die UT als Ganzes erfassen, indem er die Verkehrsanforderung über Prioritäten hinweg summiert. Die im Folgenden abgeleiteten Gleichungen sind allgemein gehalten und gelten sowohl für Priorität als auch für UT. Die Gleichungen lassen die Diskussion des Prioritätsindex der Einfachheit halber fallen. Die Kontrolle der BBR-Überlastung kann durch Berechnung der folgenden Variablen durchgeführt werden.
-
Bezeichne Ai(t) i = 1,..., N, wobei N die Anzahl der UTs ist, A die aufgezeichnete Durchsatzrate zum Zeitpunkt t ist, typischerweise basierend auf einem beispielhaften 20-ms-Rahmen oder 100-ms-Intervall, je nachdem, was verfügbar ist. Wenn beide Intervalle verfügbar sind, ist ein Durchsatz vorzuziehen, der dem vom Flusssteuerungsmodul verwendeten Zeit-Tick am nächsten kommt. Beispielsweise kann ein 20-ms-Rahmen vorzuziehen sein, da der Zeit-Tick t 20 ms beträgt. Die geglättete durchschnittliche Durchsatzrate kann als AEMA,i (t) = αl · Ai (t-1)+(1-αl) · AEMA,i (t-1)i = 1, ..., N, ausgedrückt werden, wobei der Glättungsfaktor αl einen beispielhaften Standardwert von αl = 0,02 hat.
-
In ähnlicher Weise sei Qi(t)i = 1,..., N der Rückstand eines UT i zum Zeitpunkt t. Der Rückstand kann erhalten werden, indem der letzte Schnappschuss des Rückstands erstellt wird. Der geglättete durchschnittliche Rückstand zum Zeitpunkt t für UT i kann ausgedrückt werden als QEMA,i(t)=α2·Qi(t)+(1-α2)·QEMA,i = 1,..., N, wobei der Glättungsfaktor α2 einen beispielhaften Standardwert von α2 = 0,1 hat. In einigen Ausführungsformen kann das RED Modul die geglätteten Durchsatz- und Rückstandswerte berechnen und bereitstellen.
-
Eine wahrgenommene durchschnittliche Verzögerung sei mit D
i(t) für UT i, i = 1,..., N, bezeichnet, N ist die Gesamtzahl der UTs, die ausgedrückt werden kann als
-
Eine wahrgenommene längerfristige durchschnittliche Verzögerung sei durch DLT,i (t) Mittelung Di(t) über einen bestimmten Zeitraum Twin-BBR gekennzeichnet. Der Standardwert ist Twin-BBR = 50 (20 ms Einheiten) = 1000 ms. Damit DLT,i (t) = mean[DLT,i (t - Twin-BBR + 1 : t)] . Wenn t < Twin-BBR, eine Mittelung über die vergangene Zeit machen.
-
Bestimmung des BBR-Kandidaten und des Tempoangabe-Faktors
-
In einigen Ausführungsformen können Kriterien zum Bestimmen eines BBR-Kandidaten und eines Tempoangabe-Faktors umfassen:
- - Wenn die langfristige RED-Drop-Wahrscheinlichkeit größer als ein Drop-Rate-Schwellenwert ist und die kurz- und langfristig wahrgenommenen Verzögerungen einer Priorität einer UT größer als die Verzögerungsschwelle 1 sind, ist diese UT ein BBR-Kandidat.
- - Unabhängig davon ist diese UT ein BBR-Kandidat, wenn sowohl die kurzfristigen als auch die langfristigen Verzögerungen einer UT größer als die Verzögerungsschwelle 2 sind.
- - Bei einem BBR-Kandidaten kann der Tempoangabe-Faktor gleich oder kleiner als eins sein. Bei der Eingabe des Packing Down-Verfahrens wird der Tempoangabe-Faktor von weniger als einem übernommen, bis entweder die wahrgenommene Verzögerung das Ziel erreicht oder eine Zeitüberschreitung auftritt. Der Tempoangabe-Faktor wird auf die ACK-Rate angewendet.
- - Nach Erreichen des Ziels oder des Timeouts wird der Tempoangabe-Faktor auf eins zurückgesetzt.
-
BBR-Kandidaten haben die Prioritätsebene. Beispielsweise kann ein UT ein BBR-Kandidat für Streaming, Bulk oder beides sein. Die Tempoangabe bei jeder Priorität ist unabhängig. Beispielhafte Statusvariablen, die den Status jedes UT hinsichtlich der Bestimmung von BBR-Kandidaten, Tempo-Reduktion-Raten usw. widerspiegeln, sind in der folgenden Tabelle dargestellt und haben Priorität.
Variable | Typ | Beschreibung | Anfangswert | Umfang |
BBR_Candidate(i,t) | Int | for UT#i bei der Zeit t, wenn als BBR bestimmt, den Wert als 1 setzen; andernfalls, 0. | 0 | 0 or 1 |
BBR_Timer_release(i,t) | Int | Wenn UT #i in BBR Tempo-Reduktion eintritt, zählt diese Variable von BBR_Time_out auf 0 herunter. | 0 | Zwischen BBR_Time_out und 0 (irgendwie zufällig, um eine Synchronisation zu vermeiden) |
BBR_Pacing_factor(i,t) | real | Wenn #i in Tempoangabe, ist die ACK-Rate = BBR_Pacing factor (i, t) * Avg_throughput_rate von UT #i zum Zeitpunkt t | 1 | [0,1] |
-
Bezeichne
einen Schwellenwert, um die Überlastung bei Priorität k, k = 1, ..., K, K = 3 zu bestimmen, was beispielsweise Interaktiv, Streaming und Bulk bedeutet. Beispielhafte Standardwerte für die Prioritäten können
für k = 1,..., K sein. Sei
und
die Verzögerungsschwelle
1 und
2 für die Priorität k. Da es keine Kreuzprioritätsoperation gibt, fallen die vorliegenden Lehren zur Vereinfachung der Demonstration (k). Die obigen Kriterien können ausgedrückt werden als (für Priorität k):
-
Ein UT i kann ein BBR-Kandidat bei Priorität (k) sein, der in einer beispielhaften Variablen BBR_Candidate (i, t) = 1 gespeichert sein kann. Sei
die abgeleitete durchschnittliche langfristige RED-Abfallwahrscheinlichkeit zum Zeitpunkt t für eine Priorität. Als solche d
HBR,l =k
l * D
RED,Min und d
BBR,2 = D
RED,Min + k
2 * (D
RED,Max - D
RED,Min).
-
Sei kl ein konfigurierter Parameter mit einem beispielhaften Standardwert von kl = 1,25.
-
Der beispielhafte Standardwert für k2 kann 0,75 oder 0,80 sein. Da die RED-Min- und Max-Verzögerungen im RED-Algorithmus definiert sind, werden die vorliegenden Lehren dBBR,l und dBBR,2 separat basierend auf der Formel konfigurieren.
-
Die BBR-Kandidatenprüfung kann periodisch mit einem standardmäßig konfigurierten Intervall von Tcheck-BBR = 15 Einheiten = 300 ms durchgeführt werden. Wenn festgestellt wird, dass ein UT ein BBR-Kandidat ist, tritt der UT in die Tempoangabe-Prozedur ein, bis entweder die wahrgenommene Verzögerung unter einem Schwellenwert oder einem vorkonfigurierten Zeitlimit liegt. Dieses Zeitlimit wird als BBT_Time_out mit einem beispielhaften Standardwert von BBR_Time_out = 100 Einheiten = 2000 ms bezeichnet. BBR_Time_out kann für verschiedene Prioritäten unterschiedlich sein, und dies kann ein Konfigurationsparameter pro Priorität sein.
-
In beispielhaften Ausführungsformen kann in jeder BBR-Überprüfungsperiode, wenn sich eine identifizierte BBR-UT im Tempo-Angabe-zustand befindet und wenn die ausgewertete Langzeitverzögerung D
LT,i(t) kleiner als ein Verzögerungsziel ist, diese UT kann den Tempo-Angabe-zustand verlassen. Das Tempoangabe-Modul kann wie folgt ausgedrückt werden:
-
Das Verzögerungsziel kann als dBBR,Tar = k3 · DRED,Min bezeichnet werden, wobei beispielhafte Werte für k3 0,75 oder 0,80 sind. PF_max kann der maximale Tempoangabe-Faktor mit einem beispielhaften Standardwert von PF_max = 1 sein. PF_max kann auf alle Prioritäten angewendet werden.
-
In den vorliegenden Lehren werden einige Statusvariablen verwendet, um den Zustand jedes UT in Bezug auf die Bestimmung des BBR-Kandidaten, das Tempo usw. widerzuspiegeln. Diese Variablen sind:
- - BBR_Candidate (i, t): für UT # i zum Zeitpunkt t, wenn als BBR bestimmt, den Wert auf 1 setzten; andernfalls 0. Anfangswert = 0.
- - BBR_Timer_release (i, t): Wenn UT #i in BBR Tempo-Reduktion eintritt, zählt diese Variable von BBR_Time_out herunter. Wenn das Verzögerungsziel erreicht ist, wird dieser Wert auf Null gesetzt. Wenn der Anfangswert = 0 ist.
- - BBR_Pacing_factor (i, t): Wenn #i im Tempo-Reduktion verwendet, ist die ACK-Rate = BBR_Pacing_factor (i, t) * Avg throughput rate von UT #i zum Zeitpunkt t. Der Anfangswert = 1.
-
3 zeigt einen beispielhaften Pseudocode zum Auswählen eines BBR-Kandidaten und zum Bestimmen eines Tempoangabe-Faktors (insbesondere beim Tempo-Angeben).
-
Der BBR-Status eines UT kann nur vorübergehend sein, da er nur dann BBR ist, wenn eine BBR-Sitzung ausgeführt wird.
-
Tempo-Angabe (Pacing) der ACK-Warteschlangen
-
4 zeigt ein beispielhaftes System zum Bereitstellen einer Tempo-Reduktion in ACK-Warteschlangen gemäß verschiedenen Ausführungsformen.
-
4 zeigt ein System 400 zum Anwenden eines Tempoangabe-Faktors auf ACKs. In beispielhaften Ausführungsformen basiert eine Senderate des BBR-Verkehrs in dem System 400 auf einer empfangenen ACK-Rate für jede Priorität.
-
In dem System 400 kann ein eingehendes Paket empfangen und in den TSK-Warteschlangen 412 in die Warteschlange gestellt werden. Ein TSK kann einen Sitzungsablauf verarbeiten. Als solches kann es mehrere TSK-Warteschlangen 412 für eine UT geben. Für jede Priorität können entsprechende Pakete aus den TSK-Warteschlangen 412 pro Priorität in einer MUX-Warteschlange 430 gemultiplext werden. In beispielhaften Ausführungsformen führt ein Flussplaner 410 eine Entkopplungsoperation an der MUX-Warteschlange 430 durch, um ein entkoppeltes Paket an einen Zielausgang 422 weiterzuleiten, beispielsweise eine Satellitenverbindung, eine drahtlose Verbindung, eine terrestrische Leitung oder dergleichen. Der Planer 410 kann die Durchsatzrate jedes UT pro Priorität und als Ganzes bewerten. Der Planer 410 kann auch ein Warteschlangenprofil wie die Warteschlangengröße pro Priorität, RED-Variablen usw. auswerten und die benötigten Variablen der BBR-Überlastungssteuerung 406 zuführen. Basierend auf den Eingaben von dem Planer 410 bestimmt die BBR-Überlastungssteuerung 406 BBR-Kandidaten und entsprechende Tempoangabe-Faktoren 408 für jede Priorität eines UT.
-
Das System 400 kann die ACK-Warteschlangen 432 verwalten, eine Warteschlange pro Priorität, z. B. Interaktiv, Streaming und Bulk. Wenn in beispielhaften Ausführungsformen eine UT nicht als BBR-Kandidat für eine Priorität bestimmt wird, wird für diese Nichtkandidatenpriorität keine ACK-Warteschlange benötigt. Das bedeutet, dass die ACK-Pakete kommen und gehen, ohne in den ACK-Warteschlangen 432 zu puffern. Wenn ein UT als BBR-Kandidat für eine Priorität bestimmt wird, werden die ACK-Pakete in den ACK-Warteschlangen 432 in die Warteschlange gestellt, und das Entreihen wird basierend auf den Tempoangabe-Faktoren 408 und einer Durchsatzrate 438 für die Priorität bei einem ACK-Sender 434 zurück zu einem Sender / einer Quelle 420 des eingehenden Pakets durchgeführt. In beispielhaften Ausführungsformen kann die Durchsatzrate 438 pro Priorität durch den Flussplaner 410 eingestellt werden. In einigen Ausführungsformen wird, wenn die RED-Überlastungssteuerung (nicht gezeigt) nicht durch den Flussplaner 410 ausgelöst wird, die BBR-Überlastungssteuerung nicht durchgeführt (es sei denn, ein sehr außergewöhnlicher Fall, wenn die wahrgenommene Verzögerung eines UT sehr groß ist). Wenn die RED-Überlastungssteuerung mit einer Priorität ausgelöst wird (beispielsweise auf Systemebene im Vergleich zu einer UT-Ebene), wird der Tempoangabe-Faktor 408 für einen BBR-Kandidaten mit einer bestimmten Priorität abgeleitet, und die ACK-Rate 436 wird durch die UT bestimmt Durchsatzrate bei dieser Priorität multipliziert mit dem entsprechenden Tempoangabe-Faktor. Der Maximalwert für den Tempoangabe-Faktor ist eins, daher wäre während der Tempo-Reduktion die ACK-Rate kleiner oder gleich der Durchsatzrate.
-
Sei Vk das Datenvolumen eines UT, das von der ACK mit der Priorität k bezeichnet wird, k = 1,..., K, K ist die Anzahl der Prioritäten. In beispielhaften Ausführungsformen entspricht K = 3 Interactive, Streaming und Bulk. In beispielhaften Ausführungsformen kann es keine Tempo-Reduktion für Echtzeit- und Verwaltungspakete geben. Wir veranschaulichen ohne einen UT-Index, da die Tempo-Reduktion pro UT erfolgt. Lass PFk(t) und Ak(t) den Tempoangabe-Faktor und den Durchsatz zum Zeitpunkt t für die Priorität k, k = 1,..., M, M = 3 bezeichnen. Das Timing einer ACK-Rate muss nicht unbedingt mit der BBR-Überlastungssteuerung übereinstimmen. Eine kleinere Zeiteinheit kann die ACK-Verzögerung aufgrund der Tempo-Reduktion verringern. Wenn der Zeitpunkt für die BBR-Überlastungssteuerung 20 ms beträgt, kann die ACK-Tempo-Reduktion 20 ms, 10 ms, 5 ms oder dergleichen betragen. Lass Rk(t) die ACK-Tempoangabe-Frequenz sein, dann ist Rk(t) = PFk(t) · Ak(t) die tatsächliche gemittelte Durchsatzrate, nicht die Zuordnung oder die Bandbreite basierend auf dem Gewicht. Das Summieren von Ak(t) kann also die Gesamtdurchsatzrate eines UT ergeben. Das Verfahren zur Tempo-Reduktion der ACK-Rate ist nachstehend aufgeführt:
- - Wenn RED nicht ausgelöst wird, erfolgt keine Tempo-Reduktion für die ACK-Warteschlange.
- - Wenn RED ausgelöst wird, bewerte in jedem Zeitintervall das Volumen jeder ACK-Warteschlange im Datenvolumen, das Pakete übertragen. Das Zeitintervall ist für die ACK-Warteschlange. Rk(t) wird in diesem Zeitintervall sein.
- - Wenn Vk ≥ Rk(t), entreihe Rk(t) von Vk . Aufrunden ist bevorzugt. Wenn Vk < Rk(t), alle ACK-Pakete aus der Warteschlange entfernen. Halte einen Timer für jedes ACK-Paket. Wenn der Timer abläuft, lassen Sie diese ACK los. Da ACKs in First In First Out (FIFO) in die Warteschlange gestellt werden, sollte der Timer-Ablauf ebenfalls FIFO sein. Ein beispielhafter Standard-Timer kann 1000 ms betragen.
-
Neuklassifizierung der Priorität für Flüsse
-
Wenn ein Flow neu klassifiziert wird, können die ACKs auch mit der Neuklassifizierung fließen. Dies bedeutet, dass sich ACKs möglicherweise in verschiedenen ACK-Warteschlangen befinden, bevor sie gesendet werden. Aufgrund möglicherweise unterschiedlicher Tempoangabe-Raten von ACK-Warteschlangen sind die ACKs möglicherweise nicht in Ordnung. ACKs, die nicht in der richtigen Reihenfolge geliefert werden, können Nebenwirkungen haben, die den Datenverkehr verlangsamen. Dieser Nebeneffekt sollte jedoch nur vorübergehend sein, da die ACKs nach der Neuklassifizierung mit einer neuen Tempo-Angabe-frequenz abgerechnet werden.
-
Obwohl der Gegenstand in einer Sprache beschrieben wurde, die für strukturelle Merkmale und / oder methodische Handlungen spezifisch ist, versteht es sich, dass der Gegenstand in den beigefügten Ansprüchen nicht notwendigerweise auf die oben beschriebenen spezifischen Merkmale oder Handlungen beschränkt ist. Vielmehr werden die oben beschriebenen spezifischen Merkmale und Handlungen als beispielhafte Formen der Umsetzung der Ansprüche offenbart. Andere Konfigurationen der beschriebenen Ausführungsformen sind Teil des Umfangs dieser Offenbarung. Ferner können Implementierungen, die mit dem Gegenstand dieser Offenbarung übereinstimmen, mehr oder weniger Handlungen als beschrieben aufweisen oder Handlungen in einer anderen Reihenfolge als gezeigt ausführen. Dementsprechend sollten die beigefügten Ansprüche und ihre rechtlichen Äquivalente nur die Erfindung definieren und keine spezifischen Beispiele.