Was beim Timeout passiert, geht aus der Zeichnung ziemlich deutlich hervor ... Die Größe des Überlastungsfensters fällt auf den ursprünglichen Wert von 1 zurück und der langsame Start wird erneut ausgeführt.
Wie ein TCP-Stack mit Überlastungsereignissen umgeht, hängt davon ab, welche Variante Sie verwenden. Diese Zeichnung sieht aus wie ein Beispiel für den TCP-Reno- Algorithmus.
Wenn 3 doppelte ACKs angezeigt werden, kommt TCP Reno zu dem Schluss, dass eine Überlastung vorliegt, das Netzwerk jedoch weiterhin funktioniert, da einige Segmente bestätigt wurden. Im Falle einer Auszeit ist die Situation schlimmer: Das Netzwerk scheint völlig nicht mehr zu reagieren. Tatsächlich bedeutet die Tatsache, dass doppelte Bestätigungen empfangen werden, bevor ein Zeitgeber für die erneute Übertragung abläuft, dass Segmente immer noch von der anderen Seite empfangen werden, obwohl einige möglicherweise verloren gegangen sind (oder neu angeordnet wurden).
Im Fall der 3 doppelten Bestätigungen wird das Überlastungsfenster halbiert und dann linear vergrößert. Dies wird als schnelle Wiederherstellung bezeichnet . Ziel ist es, das Warten auf Zeitüberschreitungen bei der erneuten Übertragung zu vermeiden.
Wenn ein Timeout für die erneute Übertragung auftritt, ist die Reaktion drastischer. TCP Reno beginnt mit einem langsamen Start von einem Überlastungsfenster der Größe 1 und einem langsamen Startschwellenwert von der Hälfte des Werts des Überlastungsfensters, als das Timeout auftrat. Wenn der Schwellenwert erreicht ist, wird der Anstieg wieder linear (additiver Anstieg).
TCP Tahoe enthielt keine schnelle Wiederherstellung und reagierte in beiden Fällen gleich, wobei das Überlastungsfenster auf seinen Anfangswert zurückgesetzt und ein langsamer Start ausgeführt wurde. Die schnelle Wiederherstellung von TCP Reno überspringt im Wesentlichen den langsamen Start, setzt das Überlastungsfenster sofort auf den Schwellenwert und startet den linearen Anstieg.
Beachten Sie, dass viel mehr Varianten existieren und tatsächliche Implementierungen komplexer sein können. Auch die Beobachtung dieser Algorithmen bei der Arbeit ist nicht einfach, da andere TCP-Mechanismen stören können.
Ich weiß nicht, ob das, was Sie sich vorgestellt haben (in beiden Situationen eine schnelle Wiederherstellung verwenden), als bekannter und implementierter Algorithmus zur Vermeidung von Überlastungen existiert. Es wurde wahrscheinlich getestet und verworfen, als Reno implementiert wurde. Fühlen Sie sich frei, in den wissenschaftlichen Arbeiten in diesem Bereich herumzusuchen.