Quali sono esattamente le regole per richiedere la ritrasmissione dei dati persi?
Il destinatario non richiede la ritrasmissione. Il mittente attende un ACK per l'intervallo di byte inviato al client e quando non viene ricevuto, invia nuovamente i pacchetti, dopo un intervallo particolare. Questo è ARQ (ReQuest ripetizione automatica). Ci sono diversi modi in cui questo è implementato.
Stop-and-wait ARQ
Go-Back-N ARQ
Selective Repeat ARQ
sono dettagliate nel RFC 3366.
A che ora vengono eseguite le richieste di ritrasmissione?
Le ritrasmissioni: i tempi e il numero di tentativi non vengono applicati dallo standard. È implementato in modo diverso da diversi sistemi operativi, ma la metodologia è fissa. (Uno dei modi per impronte digitali dei sistemi operativi forse?)
I timeout sono misurati in termini di tempi RTT (Round Trip Time). Ma questo non è necessario molto spesso a causa della ritrasmissione rapida che interviene quando vengono ricevuti 3 ACK duplicati.
C'è un limite superiore al numero?
Sì, c'è. Dopo un certo numero di tentativi, l'host viene considerato "inattivo" e il mittente si arrende e distrugge la connessione TCP.
Esiste una funzionalità che consente al client di indicare al server di dimenticare l'intero segmento TCP per il quale la parte è scomparsa quando il pacchetto IP è scomparso?
L'intero punto è comunicazione affidabile. Se si desidera che il client dimentichi una parte, in primo luogo non si utilizzerà TCP. (Forse UDP?)
fonte
2012-10-18 14:17:11
in genere il tempo di ritrasmissione = tempo di andata e ritorno * un po 'costante e un ritardo fisso (che è piuttosto pessimista) per il pacchetto 'syn'. –