it-swarm.com.de

Was sind die Regeln für die erneute Übertragung von TCP?

Der Wikipedia-Artikel über TCP gibt an, dass die IP-Pakete, die TCP) - Segmente transportieren, manchmal verloren gehen können und dass TCP "eine erneute Übertragung von anfordert verlorene Daten ".

Welche genauen Regeln gelten für die Anforderung der erneuten Übermittlung verlorener Daten? Zu welcher Zeit werden die Neuübertragungsanforderungen ausgeführt? Gibt es eine Obergrenze für die Zahl? Gibt es Funktionen, die der Client dem Server anzeigen kann, um das gesamte TCP) - Segment zu vergessen, für das ein Teil fehlte, als das IP-Paket fehlte?

53
Randomblue

Welche genauen Regeln gelten für die Anforderung der erneuten Übertragung verlorener Daten?

Der Empfänger fordert die erneute Übertragung nicht an. Der Absender wartet auf eine ACK für den an den Client gesendeten Byte-Bereich und sendet die Pakete nach einem bestimmten Intervall erneut, wenn sie nicht empfangen werden. Dies ist [~ # ~] arq [~ # ~] (Automatic Repeat reQuest). Es gibt verschiedene Möglichkeiten, wie dies implementiert wird.

Stop-and-wait ARQ
Go-Back-N ARQ
Selective Repeat ARQ

ausführliche Informationen finden Sie im RFC 3366 .

Zu welcher Zeit werden die Neuübertragungsanforderungen ausgeführt?

Die Neuübertragungszeiten und die Anzahl der Versuche werden vom Standard nicht erzwungen. Es wird von verschiedenen Betriebssystemen unterschiedlich implementiert, die Methodik ist jedoch festgelegt. (Eine der Möglichkeiten, Betriebssysteme mit Fingerabdrücken zu versehen?)

Die Timeouts werden in RTT-Zeiten (Round Trip Time) gemessen. Dies ist jedoch nicht sehr häufig erforderlich, da bei einer erneuten schnellen Übertragung 3 doppelte ACKs eingehen.

Gibt es eine Obergrenze für die Zahl?

Ja da ist. Nach einer bestimmten Anzahl von Wiederholungsversuchen gilt der Host als "down" und der Absender gibt auf und trennt die TCP Verbindung.

Gibt es Funktionen, die der Client dem Server anzeigen kann, um das gesamte TCP Segment zu vergessen, für das ein Teil fehlte, als das IP-Paket fehlte?

Der springende Punkt ist zuverlässige Kommunikation. Wenn Sie wollten, dass der Client einen Teil vergisst, würden Sie TCP an erster Stelle nicht verwenden. (UDP vielleicht?)

53

Es gibt keine feste Zeit für die erneute Übertragung. Einfache Implementierungen schätzen die RTT (Round-Trip-Time) und wenn in dieser Zeit zweimal keine ACK zum Senden von Daten empfangen wurde, senden sie erneut.

Sie verdoppeln dann die Wartezeit und senden erneut, wenn erneut keine Antwort erfolgt. Spülen. Wiederholen.

Anspruchsvollere Systeme können besser einschätzen, wie lange das ACK dauern soll, und können genau erraten, welche Daten verloren gegangen sind.

Das Fazit ist, dass es keine feste Regel gibt, wann eine erneute Übertragung erfolgen soll. Es liegt an der Umsetzung. Alle Neuübertragungen werden nur vom Absender ausgelöst, wenn der Empfänger nicht antwortet.

TCP nie löscht Daten, also gibt es keine Möglichkeit anzuzeigen, dass ein Server ein Segment vergessen sollte.

11
Brian White