Antworten:
Wenn ein Paket mit TCP gesendet wird, wird eine Sequenznummer übertragen. Wenn der Empfänger das Paket empfängt, sendet er eine Bestätigung an den Absender mit der Sequenznummer, die angibt, dass das Paket empfangen wurde. Aufgrund der Art und Weise, wie Sie Ihre Frage gestellt haben, gehe ich davon aus, dass Sie dies wissen. Ich wollte es für andere Leser einsetzen.
TCP Retransmission ist nur ein Paket, das innerhalb des Timeouts nicht bestätigt wird.
TCP Fast Retransmission ist, wenn die Quelle eine Bestätigung erhält, dass das Paket nicht empfangen wurde ... zitiert aus Fast retransmit - Wikipedia, der freien Enzyklopädie
Wenn ein TCP-Absender drei doppelte Bestätigungen mit derselben Bestätigungsnummer empfängt (dh insgesamt vier Bestätigungen mit derselben Bestätigungsnummer), kann der Absender ziemlich sicher sein, dass das Segment mit der nächsthöheren Sequenznummer gelöscht wurde
Ich habe dies von Microsoft verdaut :
TCP startet einen Zeitgeber für die erneute Übertragung, wenn jedes ausgehende Segment an die IP-Schicht (Internet Protocol) übergeben wird. Wenn TCP vor Ablauf des Timers keine Bestätigung für die Daten in einem bestimmten Segment erhält, wird das Segment erneut übertragen.
Das Zeitlimit für die erneute Übertragung wird im laufenden Betrieb angepasst, um den Eigenschaften der Verbindung zu entsprechen. Dabei werden SRTT-Berechnungen (Smoothed Round Trip Time) verwendet, wie in Van Jacobson und Mike Karels 'Artikel "Vermeidung und Kontrolle von Überlastungen" in Proceedings of the ACM SIGCOMM Conference beschrieben on Data Communication, November 1988. Dieses Papier befindet sich in der ACM Digital Library der Association for Computing Machinery. Weitere Informationen zu SRTT-Berechnungen finden Sie in RFC 793: Transmission Control Protocol DARPA Internet Program Protocol Specification . Das Zeitlimit für die erneute Übertragung für ein bestimmtes Segment wird nach jeder erneuten Übertragung dieses Segments verdoppelt.
Mit diesem Algorithmus stellt sich TCP auf die übliche Verzögerung einer Verbindung ein. TCP-Verbindungen über Verbindungen mit hoher Verzögerung benötigen eine viel längere Zeitüberschreitung als Verbindungen über Verbindungen mit niedriger Verzögerung, um ein falsches Zeitlimit zu vermeiden, wenn eine Verbindung nur langsam und nicht vorhanden ist.
Unter bestimmten Umständen überträgt TCP Daten erneut, bevor der Zeitgeber für die erneute Übertragung eines bestimmten Segments abläuft. Der häufigste derartige Umstand tritt aufgrund einer Funktion auf, die als schnelle Neuübertragung bekannt ist.
Wenn ein Empfänger, der eine schnelle erneute Übertragung unterstützt, ein Paket mit einer Sequenznummer empfängt, die höher als die aktuell erwartete ist, wird so vorgegangen, als ob einige Daten gelöscht worden wären. Um den Absender so schnell wie möglich auf die scheinbar gelöschten Daten aufmerksam zu machen, sendet der Empfänger sofort eine Bestätigung (ACK), wobei die ACK-Nummer auf die Sequenznummer gesetzt wird, die scheinbar fehlt. Der Empfänger sendet eine weitere Bestätigung für diese Sequenznummer für jedes zusätzliche TCP-Segment im eingehenden Stream, das mit einer Sequenznummer ankommt, die höher als die fehlende ist.
Wenn der Absender einen Strom doppelter ACKs empfängt, die dieselbe Sequenznummer bestätigen und die angegebene Sequenznummer früher als die Sequenznummer des aktuell gesendeten Segments ist, kann der Absender schließen, dass ein oder mehrere zuvor gesendete Segmente gelöscht wurden. Nach dem Empfang einer bestimmten Anzahl doppelter ACKs senden Absender, die den Algorithmus für die schnelle erneute Übertragung unterstützen, das Segment oder die Segmente erneut, die der Empfänger anfordert, um die Lücke in den Daten zu füllen, ohne darauf zu warten, dass der Zeitgeber für die erneute Übertragung für die fehlenden Segmente abläuft. Diese Optimierung verbessert die Leistung in einer ausgelasteten Netzwerkumgebung erheblich.
Bei einer schnellen erneuten Übertragung überträgt der Absender die fehlenden TCP-Segmente erneut, bevor ihre Zeitgeber für die erneute Übertragung ablaufen. Da die Zeitgeber für die erneute Übertragung für die fehlenden TCP-Segmente nicht abgelaufen sind, werden fehlende Segmente am Ziel empfangen und vom Empfänger schneller bestätigt als ohne schnelle erneute Übertragung, und der Absender kann spätere Segmente schneller an den Empfänger senden. Dieser Vorgang wird als schnelle Wiederherstellung bezeichnet. Schnelle Neuübertragung und schnelle Wiederherstellung sind in RFC 2581: TCP Congestion Control beschrieben .
Eine erneute Übertragung, die im Wesentlichen mit der automatischen Wiederholungsanforderung (ARQ) identisch ist, ist das erneute Senden von Paketen, die entweder beschädigt wurden oder verloren gegangen sind. Dieser Begriff bezieht sich auf einen der grundlegenden Mechanismen, die von Protokollen verwendet werden, die über ein paketvermitteltes Computernetzwerk arbeiten, um eine zuverlässige Kommunikation bereitzustellen. ABER Fast Retransmit ist eine Erweiterung von TCP, die die Wartezeit eines Absenders vor der erneuten Übertragung eines verlorenen Segments verkürzt. Die Erweiterung für schnelle erneute Übertragung funktioniert wie folgt: Wenn ein TCP-Absender eine bestimmte Anzahl von Bestätigungen empfängt, die normalerweise auf drei doppelte Bestätigungen mit derselben festgelegt ist Bestätigungsnummer (dh insgesamt vier Bestätigungen mit derselben Bestätigungsnummer) kann der Absender ziemlich sicher sein, dass das Segment mit der nächsthöheren Sequenznummer gelöscht wurde und nicht in unregelmäßiger Reihenfolge ankommt. Der Absender überträgt dann das Paket, von dem angenommen wurde, dass es verworfen wurde, erneut, bevor er auf seine Zeitüberschreitung wartet. Überprüfen Sie diesen Link für weitere Details und Algorithmen http://www.isi.edu/nsnam/DIRECTED_RESEARCH/DR_WANIDA/DR/JavisInActionFastRetransmitFrame.html
Einfach ausgedrückt hängt die erneute Übertragung von TCP hauptsächlich von der Zeitüberschreitung des Pakets ab, um einen Fehler zu erkennen, während bei der schnellen erneuten Übertragung von TCP eine doppelte Bestätigung für ein bestimmtes Paket dessen Fehlschlag symbolisiert.
Meist werden 3 doppelte Bestätigungen für ein Paket als Paketfehler abgeleitet. Die Quelle kann dann die Sequenznummer des Pakets sehen, für die der NACK ausgelöst wurde. Dies ist die Sequenznummer des fehlenden Pakets und kann an den Empfänger gesendet werden.
Der Vorteil der schnellen erneuten Übertragung von TCP besteht darin, dass nicht auf das Paket-Timeout gewartet wird, um eine Übertragung zu initiieren, und daher eine schnellere erneute Übertragung des Pakets, wie der Name ebenfalls andeutet.