Das moderne Netzwerk enthält eine Reihe von Verbesserungen gegenüber dem grundlegenden TCP / IP-Stack. Eines dieser besonders nützlichen Datencenter wurde 2010 von
Microsoft Research entwickelt und überraschenderweise als DataCenter TCP (DCTCP) bezeichnet.
DCTCP ist eine Reihe von Änderungen an TCP, die zwei Eigenschaften erfüllen sollen:
1. Verbessern Sie die Latenz für latenzempfindliche kleine Nachrichten
2. Den Durchsatz für durchsatzempfindliche große Flüsse nicht verringern
Die Latenz innerhalb des Netzwerks ergibt sich aus der Warteschlange innerhalb der Router. Daher versucht DCTCP, die Warteschlange klein zu halten. Die Warteschlange bleibt klein, wenn sie kleiner als K Nachrichten ist.
Der vorgeschlagene Algorithmus verkleinert das TCP-Überlastungsfenster adaptiv, so dass die Warteschlange klein bleibt.
Die Verbesserungen gegenüber TCP erfordern die Änderung aller drei Komponenten: Router, Empfänger, Absender:
1. Markieren von Paketen mit dem CE-Flag (Congestion Experienced), während die Warteschlange von einem Router länger als K wird.
2. Umwandlung eines Stroms von CE-Flags in einen Strom von ACK-TCP-Paketen durch einen Empfänger. Insbesondere sendet der Empfänger sofort ACK, wenn sich das CE-Flag im aktuellen Paket vom vorherigen unterscheidet. Während das CE-Flag unverändert bleibt, sendet es normale verzögerte ACKs. Das ACK-Paket enthält immer den letzten Wert des CE-Flags.
3. Anpassen der Größe des Überlastungsfensters basierend auf dem aggregierten ECN-Echo-Paketstrom durch den Absender. Zunächst berechnet der Absender das Congestion Ratio (CR) - den exponentiellen gleitenden Durchschnitt unter den CE-Flags. DCTCP verkleinert die Fenstergröße proportional zu CR. Wenn CR gleich 1 ist (jedes Paket hatte ein CE-Flag), würde sich die Fenstergröße genau wie bei TCP halbieren.
Die Auswertung zeigt, dass die Abfragelatenz bei kurzen Übertragungen deutlich besser ist. Die Leistung für durchsatzsensitive Anforderungen ist nicht schlechter.
Obwohl es seit 2010 mehrere Artikel mit Überprüfung und Verbesserungen von DCTCP gab.
"Ease the Queue Oscillation: Analyse und Verbesserung von DCTCP" aus dem Jahr 2013 führt ein Experiment durch und stellt fest, dass DCTCP starken Schwankungen der tatsächlichen Warteschlangengröße ausgesetzt ist. Dies geschieht, weil zwischen dem ersten Paket mit CE-Flag und der Reaktion des Absenders mindestens eine RTT-Verzögerung auftritt. Das Papier schlägt vor, einen einzelnen Schwellenwert K in zwei Schwellenwerte K1 <K <K2 aufzuteilen, so dass das Setzen von CE-Flags beginnt, wenn die Warteschlangengröße gleich K1 ist, bevor eine tatsächliche Überlastung auftritt, und bei K2 endet, bevor die Warteschlangengröße zu stark reduziert wird.
Ein weiteres Papier ist das 2015 veröffentlichte „Ein frühes Feedback- und Ratenanpassungsschema für Überlastungen für die Eins-zu-Eins-Kommunikation in Cloud-basierten Daten“, in dem NewDCTCP vorgeschlagen wird - das zwei Verbesserungen umfasst:
1. CE-Flags werden auch für Pakete gesetzt, die vor der Überlastung angekommen sind
2. Unterschiedliches Schema zur Anpassung der Fenstergröße
Eine der neuesten Veröffentlichungen ist "Mehrere Überlastungspunkte und Überlastungsreaktionsmechanismen zur Verbesserung der DCTCP-Leistung in Rechenzentrumsnetzwerken", die im Juni 2018 veröffentlicht wurde. Dies zeigt, dass das Thema auf dem neuesten Stand bleibt und das Problem noch ungelöst ist. Wie auch immer, das Papier kombiniert den Doppelschwellenansatz und führt eine neue Idee ein - die Anpassung des Überlastungsfensters. Es berücksichtigt die Anzahl der gesendeten Pakete und empfangenen ACKs während der Änderung der Fenstergröße.