Что означает ошибка «сброс соединения по одноранговой сети» в TCP-соединении? Является ли это фатальной ошибкой или просто уведомлением или связано с сетевым сбоем?
Что означает ошибка «сброс соединения по одноранговой сети» в TCP-соединении? Является ли это фатальной ошибкой или просто уведомлением или связано с сетевым сбоем?
Ответы:
Это смертельно. Удаленный сервер отправил вам пакет RST, который указывает на немедленное прекращение соединения, а не на обычное рукопожатие. Это обходит нормальный переход полузамкнутого состояния. Мне нравится это описание :
«Сброс соединения по одноранговому узлу» - это TCP / IP-эквивалент сброса телефона на крючок. Это более вежливо, чем просто не отвечать, оставляя одного повешенным. Но это не FIN-ACK, ожидаемый от действительно вежливого конвертера TCP / IP.
Это означает, что был получен TCP RST, и теперь соединение закрыто. Это происходит, когда пакет отправляется с вашего конца соединения, но другой конец не распознает соединение; он отправит обратно пакет с установленным битом RST, чтобы принудительно закрыть соединение.
Это может произойти, если другая сторона аварийно завершает работу, а затем возвращается в исходное состояние или если она вызывает close()
сокет, пока есть данные от вас в пути, и является для вас сигналом того, что некоторые из ранее отправленных вами данных, возможно, не были получены.
Это зависит от вас, является ли это ошибкой; если информация, которую вы отправляли, была предназначена только для удаленного клиента, то, возможно, не имеет значения, что какие-либо окончательные данные могли быть потеряны. Однако вы должны закрыть сокет и освободить любые другие ресурсы, связанные с соединением.