Il cavo di rete non interromperà una connessione TCP (1) anche se interromperà le comunicazioni. È possibile ricollegare il cavo e una volta stabilita la connettività IP, tutti i dati di back si sposteranno. Questo è ciò che rende il TCP affidabile, anche su reti cellulari.
Quando TCP invia i dati, si aspetta un ACK in risposta. Se nessuno arriva entro una certa quantità di tempo, ritrasmette i dati e attende di nuovo. Il tempo che attende tra le trasmissioni generalmente aumenta in modo esponenziale.
Dopo un numero di ritrasmissioni o una quantità di tempo totale senza ACK, TCP considererà la connessione "interrotta". Quante volte o quanto tempo dipende dal tuo sistema operativo e dalla sua configurazione, ma in genere scade nell'ordine di molti minuti.
Da Linux di tcp.7 man page:
tcp_retries2 (integer; default: 15; since Linux 2.2)
The maximum number of times a TCP packet is retransmitted in
established state before giving up. The default value is 15, which
corresponds to a duration of approximately between 13 to 30 minutes,
depending on the retransmission timeout. The RFC 1122 specified
minimum limit of 100 seconds is typically deemed too short.
Questo è probabilmente il valore si vorrà adattarsi al cambiamento quanto tempo ci vuole per rilevare se la connessione è svanito.
(1) Ci sono eccezioni a questo. Il sistema operativo, notando che un cavo è stato rimosso, potrebbe comunicare agli strati superiori che tutte le connessioni dovrebbero essere considerate "interrotte".
fonte
2012-10-26 12:59:40
Forse [questo] (http://stackoverflow.com/questions/5907527/application-control-of-tcp-retransmission-on-linux) dà la risposta per te. – SKi