Was genau sind die Regeln für die Anforderung der Übertragung von verlorenen Daten?
Der Empfänger fordert die Neuübertragung nicht an. Der Absender wartet auf einen ACK für den Bytebereich, der an den Client gesendet wird, und sendet die Pakete nach einem bestimmten Intervall erneut, wenn er nicht empfangen wird. Dies ist ARQ (Automatic Repeat reQuest). Es gibt mehrere Möglichkeiten, wie dies implementiert wird.
Stop-and-wait ARQ
Go-Back-N ARQ
Selective Repeat ARQ
sind in der RFC 3366 detailliert.
Zu welcher Zeit werden die Wiederholungsanforderungen durchgeführt?
Die Retransmissions-Zeiten und die Anzahl der Versuche wird vom Standard nicht erzwungen. Es wird von verschiedenen Betriebssystemen unterschiedlich implementiert, aber die Methodik ist fest. (Eine der Möglichkeiten, um das Betriebssystem zu überprüfen?)
Die Timeouts werden in Bezug auf die RTT (Round Trip Time) Zeiten gemessen. Aber das wird nicht sehr oft wegen Fast-Retransmit benötigt, welches eintritt, wenn 3 Duplicate ACKs empfangen werden.
Gibt es eine Obergrenze für die Nummer?
Ja, es gibt. Nach einer bestimmten Anzahl von Wiederholungen wird der Host als "down" betrachtet und der Sender gibt auf und reißt die TCP-Verbindung ab.
Gibt es eine Funktion für den Client, um dem Server anzuzeigen, dass er das gesamte TCP-Segment vergessen hat, für das ein Teil fehlte, als das IP-Paket fehlte?
Der springende Punkt ist eine zuverlässige Kommunikation. Wenn Sie möchten, dass der Client ein Teil vergessen hat, würden Sie TCP gar nicht erst verwenden. (UDP vielleicht?)
normalerweise die Retransmissionszeit = Umlaufzeit * einige Konstante und eine feste Verzögerung (die ziemlich pessimistisch ist) für das 'syn' Paket. –