Che cosa significa "connessione ripristinata dal peer"?


649

Qual è il significato dell'errore "connessione reimpostata dal peer" su una connessione TCP? È un errore fatale o solo una notifica o correlato al fallimento della rete?

Risposte:


772

È fatale. Il server remoto ti ha inviato un pacchetto RST, che indica una caduta immediata della connessione, piuttosto che la normale stretta di mano. Questo ignora la normale transizione di stato semichiuso. Mi piace questa descrizione :

"Connessione reimpostata dal peer" è l'equivalente TCP / IP di riagganciare il telefono. È più educato del semplice non rispondere, lasciandolo sospeso. Ma non è il FIN-ACK previsto dal conversatore TCP / IP veramente gentile.


49
Perché è etichettato "reset della connessione dal peer "? Sembra che dovrebbe essere "reset della connessione dall'host" o "reset della connessione dal server"
Robert,

27
@Robert Perché è qui che è venuto il reset. Il peer ha inviato un pacchetto RST.
Marchese di Lorne,

106
... Robert, la tua preoccupazione non ha senso per me. Il pari è semplicemente più generale di così. In un tipico modello client-server, il server può altrettanto facilmente ricevere questa notifica dal "client". La macchina che inizialmente richiede la connessione ha la stessa potenza per inviare questa notifica. A livello TCP, sembra identico quando la connessione è in corso. Le due macchine, quando comunicano, sono solo colleghi.
codetaku,

9
Questo pacchetto avrebbe potuto essere inviato da un altro dispositivo nel mezzo come un router?
Arnold Roa,

3
Non può essere chiamato "connessione reimpostata dal server" perché può essere inviato dal client o dal server. Non può essere "escluso". Se un client riceve questo errore significa che la connessione TCP non è più aperta nel server, ad esempio dal momento in cui il server si è arrestato in modo anomalo ed è stato riavviato.
Johannes Overmann,

193

Ciò significa che è stato ricevuto un TCP RST e la connessione è ora chiusa. Ciò si verifica quando un pacchetto viene inviato dall'estremità della connessione ma l'altra estremità non riconosce la connessione; invierà indietro un pacchetto con il bit RST impostato per chiudere forzatamente la connessione.

Questo può accadere se l'altro lato si arresta in modo anomalo e poi ritorna su o se chiama close()sul socket mentre sono in transito dati da te in transito, e ti indica che alcuni dei dati che hai precedentemente inviato potrebbero non essere stati ricevuti.

Sta a te decidere se si tratta di un errore; se le informazioni che stavi inviando erano solo a beneficio del client remoto, potrebbe non essere importante che tutti i dati finali siano andati persi. Tuttavia, è necessario chiudere il socket e liberare qualsiasi altra risorsa associata alla connessione.


11
Se si imposta l'opzione socket SO_LINGER su zero quando si apre un nuovo socket, quindi si chiude normalmente, verrà impostato il bit RST. Quindi TUTTA la connessione terminerà con un reset. Non provarlo a casa, è solo fastidioso. stackoverflow.com/questions/3757289
Chris Huang-Leaver

1
Come risolvere questo problema, quindi, è necessario riavviare sia il telecomando che il nostro host?
user2225190,

3
@ user2225190 È necessario riconnettere il client, ma prima è necessario esaminare il software per assicurarsi che non sia dovuto a un errore del protocollo dell'applicazione, vale a dire la chiusura di una connessione su cui l'altra estremità sta ancora scrivendo.
Marchese di Lorne,

1
Grazie per il tuo commento. Ha funzionato per due mesi. Lo sto provando anche da una riga di comando, ma sto ancora ottenendo questo errore. Provo "sftp user @ machine". L'errore è incoerente.
user2225190,
Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.