Яке значення помилки "скидання з'єднання одноранговими" на з'єднанні TCP? Це фатальна помилка чи просто сповіщення чи пов’язана з відмовою в мережі?
Яке значення помилки "скидання з'єднання одноранговими" на з'єднанні TCP? Це фатальна помилка чи просто сповіщення чи пов’язана з відмовою в мережі?
Відповіді:
Це фатально. Віддалений сервер надіслав вам пакет RST, який вказує на негайне припинення з'єднання, а не на звичайне рукостискання. Це обходить нормальний напівзакритий перехід стану. Мені подобається цей опис :
"Скидання з'єднання одноранговим" - це еквівалент TCP / IP відхилення телефону назад на гачку. Це ввічливіше, ніж просто не відповідати, залишаючи одне повішеним. Але це не FIN-ACK, якого очікує справді ввічливий конвертор TCP / IP.
Це означає, що отримано RST TCP і з'єднання закрито. Це відбувається, коли пакет надсилається з вашого кінця з'єднання, але інший кінець не розпізнає з'єднання; він надішле назад пакет із встановленим бітом RST для примусового закриття зв'язку.
Це може статися, якщо інша сторона виходить з ладу, а потім повертається назад або якщо вона зателефонує close()
в сокет, поки є дані від вас в дорозі, і є вказівкою для вас, що деякі з даних, які ви раніше надіслали, можливо не були отримані.
Це ви, чи це помилка; якщо інформація, яку ви надсилали, була лише на користь віддаленого клієнта, це може не мати значення, що будь-які кінцеві дані можуть бути втрачені. Однак вам слід закрити сокет і звільнити будь-які інші ресурси, пов'язані з цим з'єднанням.