Serwisanci dostępni teraz · czynne całą dobę, także w weekendy i świętaWarszawa i okolice · dojazd bezpłatny
Darmowa diagnoza laptopa
Darmowa diagnoza laptopa
Dojazd do klienta bezpłatnie
Dojazd do klienta bezpłatnie
Laptopy zastępcze bezpłatnie
Laptopy zastępcze bezpłatnie
Odbiór i zwrot sprzętu bezpłatnie
Odbiór i zwrot sprzętu bezpłatnie

Error 10054 – połączenie zresetowane przez hosta

Termin Definicja
Error 10054 – połączenie zresetowane przez hosta

Error 10054 oznacza, że istniejące połączenie sieciowe zostało wymuszenie zerwane przez zdalnego hosta, np. serwer SQL.

Error 10054 jako kod warstwy Windows Sockets

Error 10054 to kod błędu Windows Sockets oznaczony symbolem WSAECONNRESET. Oznacza, że połączenie ustanowione wcześniej między lokalnym programem a zdalnym hostem zostało zresetowane przez drugą stronę albo przez urządzenie działające w jej imieniu. Nie jest to komunikat opisujący konkretną przyczynę awarii aplikacji, lecz informacja z warstwy komunikacji sieciowej, że istniejący kanał TCP przestał być użyteczny.

W praktyce program może otrzymać ten błąd podczas odczytu lub zapisu danych przez gniazdo sieciowe. Zdalny host może oznaczać serwer aplikacji, serwer bazy danych, usługę sieciową albo inne urządzenie odpowiadające za zakończenie połączenia. Reset różni się od zwykłego, kontrolowanego zamknięcia połączenia, przy którym aplikacja otrzymuje sygnał zakończenia sesji zgodny z normalnym przebiegiem protokołu. Sam kod 10054 nie wskazuje, czy powodem było zatrzymanie usługi, odrzucenie sesji, filtr sieciowy, błąd oprogramowania czy utrata stanu połączenia.

Jak powstaje reset istniejącej sesji TCP

Połączenie TCP utrzymuje stan po obu stronach. Program wysyła dane z użyciem lokalnego gniazda, a system operacyjny i zdalny host śledzą numery sekwencyjne, potwierdzenia oraz stan sesji. Jeżeli zdalny system nie ma już odpowiedniego gniazda albo zamyka sesję w sposób awaryjny, może wysłać segment TCP z flagą RST. Windows przekazuje wtedy aplikacji kod WSAECONNRESET, czyli Error 10054.

Reset może wystąpić również wtedy, gdy połączenie zostanie przerwane przez zaporę sieciową, moduł kontroli ruchu, router lub system równoważenia obciążenia. Z punktu widzenia programu lokalnego skutek jest podobny: operacja odczytu albo zapisu kończy się błędem, ponieważ dalsza komunikacja po tym gnieździe nie może być kontynuowana. Ponowienie operacji może zadziałać, jeśli problem był chwilowy, ale nie usuwa przyczyny stałej, takiej jak niedziałająca usługa, błędny port, reguła filtrowania albo przeciążenie zdalnego systemu.

Rozróżnienie błędu sieciowego od przyczyny aplikacyjnej

Podczas analizy Error 10054 należy ustalić, na jakim etapie doszło do przerwania. Jeżeli błąd pojawia się przy pierwszym połączeniu, trzeba sprawdzić adres hosta, numer portu, dostępność usługi i reguły zapory. Jeżeli występuje dopiero po kilku minutach bezczynności, możliwe jest przekroczenie limitu czasu bezczynności po stronie serwera, urządzenia pośredniczącego albo klienta. Gdy błąd powtarza się przy określonej operacji, znaczenie może mieć sposób obsługi sesji przez konkretną aplikację.

W przypadku programu korzystającego z serwera SQL kod 10054 nie powinien być traktowany jako dowód uszkodzenia samej bazy danych. Trzeba oddzielić warstwę transportową od komunikatów silnika i aplikacji: sprawdzić log klienta, log usługi zdalnej, czas wystąpienia zdarzenia oraz ewentualne wpisy zapory. Pomocne jest porównanie, czy inne połączenia do tego samego hosta również są zrywane. Jeżeli błąd dotyczy wyłącznie jednego programu, należy uwzględnić jego mechanizm ponawiania połączeń, pulę połączeń oraz reakcję na nieoczekiwane zamknięcie gniazda.

Postępowanie po pojawieniu się kodu 10054

Najpierw warto zapisać dokładny moment błędu, nazwę programu, adres zdalnego hosta, numer portu oraz operację wykonywaną w chwili przerwania. Następnie należy sprawdzić, czy usługa po stronie zdalnej działa, czy host odpowiada w sieci lokalnej i czy połączenie nie jest zamykane przez zaporę lub urządzenie pośredniczące. W systemie Windows można przeanalizować dzienniki zdarzeń oraz logi aplikacji, a do obserwacji ruchu wykorzystać narzędzia diagnostyczne przeznaczone do analizy TCP. Sam test odpowiedzi hosta nie potwierdza jednak poprawności usługi na konkretnym porcie, ponieważ osiągalność urządzenia i działanie aplikacji to różne kwestie.

Jeżeli reset wystąpił jednorazowo, aplikacja może bezpiecznie nawiązać nowe połączenie, o ile jej dokumentacja przewiduje ponowienie operacji i nie grozi to wielokrotnym wykonaniem tej samej transakcji. Przy regularnych rozłączeniach potrzebna jest analiza obu końców komunikacji, parametrów czasu bezczynności, obciążenia hosta oraz konfiguracji zabezpieczeń sieciowych. W środowisku z laptopem lub komputerem PC diagnostyka powinna obejmować także sterownik karty sieciowej, stabilność połączenia i aktualny stan systemu, ale wymiana podzespołu ma sens dopiero po wykluczeniu problemu po stronie usługi lub sieci.

+48 22 100 48 29Zadzwoń teraz · serwisant w 1 godzinę