Что означает "сброс соединения одноранговым узлом"?

Что означает "Соединение прервано" ошибка соединения TCP? Это фатальная ошибка или просто уведомление или связано с сбоем сети?

2 ответов


Это смертельно. Удаленный сервер отправил вам первый пакет, который указывает на немедленное удаление соединения, а не обычное рукопожатие. Это обходит нормальный полузакрытый переход состояния. Мне нравится описание:

"сброс соединения одноранговым узлом" является эквивалентом TCP/IP захлопывания телефона обратно на крючок. Это более вежливо, чем просто не отвечать, оставив одного висеть. Но это не FIN-ACK, ожидаемый от действительно вежливого TCP/IP converseur.


это означает, что сначала был получен TCP, и соединение теперь закрыто. Это происходит, когда пакет отправляется с вашего конца соединения, но другой конец не распознает соединение; он отправит обратно пакет с первым битом, установленным для принудительного закрытия соединения.

Это может произойти, если другая сторона аварийно завершает работу, а затем возвращается или вызывает close() на сокете, пока есть данные от вас в пути, и является признаком того, что некоторые из данные, которые вы ранее отправили, возможно, не были получены.

Это зависит от вас, является ли это ошибкой; если информация, которую вы отправляли, была только в интересах удаленного клиента, то может не иметь значения, что какие-либо окончательные данные могут быть потеряны. Однако вы должны закрыть сокет и освободить любые другие ресурсы, связанные с подключением.