Połączenie TCP
ważność krytycznamierzonysposób tcp
Czy port 80/443 serwera odpowiada na połączenie. Podstawowy sygnał, że serwer żyje — pada zanim HTTP zdąży odpowiedzieć.
WIKI
artykuł z 16.09.2026 · źródeł 10Połączenie TCP to parametr monitoringu stron internetowych, który sprawdza, czy serwer przyjmuje połączenie TCP na porcie usługi WWW: 80 dla HTTP albo 443 dla HTTPS. Pomiar kończy się jednym z trzech wyników: połączenie przyjęte, połączenie odrzucone albo brak odpowiedzi w wyznaczonym czasie. TCP (Transmission Control Protocol) jest protokołem połączeniowym, który za pomocą numerów portów wskazuje usługi aplikacyjne i rozdziela strumienie danych między hostami [1].
Jak działa
Połączenie TCP jest wyznaczone przez parę gniazd, czyli adresów IP z numerami portów po obu stronach [1]. Serwer, który czeka na klientów, utrzymuje port w stanie LISTEN, oznaczającym oczekiwanie na żądanie połączenia od dowolnego zdalnego hosta [1]. Połączenie powstaje w trójetapowym uzgadnianiu (ang. three-way handshake): klient wysyła segment SYN, serwer odpowiada segmentem z flagami SYN i ACK, a klient potwierdza go segmentem ACK [1].
Jeśli na porcie nie działa żadna aplikacja, połączenie nie istnieje, a odpowiedzią na przychodzący segment jest reset (RST) [1]. Według RFC 9293 próba otwarcia połączenia może zawieść na trzy sposoby: przez wyczerpanie ponownych transmisji segmentu SYN, przez otrzymanie RST albo przez komunikat ICMP Port Unreachable [1]. Komunikaty ICMP Destination Unreachable norma dzieli na błędy miękkie, po których TCP nie może przerwać połączenia, i twarde, po których powinien je przerwać [1]. Brak odpowiedzi nie jest wynikiem natychmiastowym: stos TCP ponawia SYN, a ponawianie SYN musi trwać co najmniej 3 minuty, zanim połączenie zostanie zamknięte [1].
Sprawdzenie strony przechodzi przez kilka warstw. Przeglądarka najpierw pyta DNS o adres serwera, a dopiero potem wysyła żądanie HTTP, przesyłane przez TCP/IP [4]. HTTP działa ponad niezawodnym połączeniem warstwy transportowej lub sesji [3], a kod statusu jest częścią odpowiedzi serwera i opisuje wynik żądania [3]. Awaria TCP oznacza więc, że do wymiany HTTP w ogóle nie doszło. Błąd HTTP, np. kod 500, oznacza, że połączenie powstało, a serwer odpowiedział [3]. Przyjęte połączenie TCP nie mówi nic o poprawności certyfikatu, kodzie odpowiedzi ani treści strony.
Standardy i specyfikacje
- RFC 9293 opisuje TCP: stany połączenia, trójetapowe uzgadnianie, reset i ponawianie SYN [1].
- Rejestr portów IANA przypisuje port 80 usłudze
http, a port 443 usłudzehttps, opisanej jako HTTP przez TLS/SSL; oba wpisy odsyłają do RFC 9110 [2]. - RFC 9110 ustala, że przy braku portu w adresie domyślny dla
httpjest TCP 80, a dlahttpsTCP 443, zarezerwowany dla HTTP przez TLS [3]. Przy połączeniu HTTPS klient musi zweryfikować tożsamość serwera, czyli sprawdzić certyfikat [3]. Sonda TCP kończy pracę przed tym etapem. - RFC 9114 definiuje HTTP/3 jako odwzorowanie semantyki HTTP na protokół QUIC, udostępniany na portach UDP [9]. Gdy UDP jest zablokowane, klienci powinni przejść na wersje HTTP oparte na TCP [9]. Sonda TCP nie sprawdza więc dostępności HTTP/3.
Zagrożenia i skutki
Brak usługi na porcie. Port jest zamknięty, gdy host odpowiada, ale żadna aplikacja na nim nie nasłuchuje [5]. Taki obraz daje zatrzymany proces serwera WWW, na przykład po awarii albo w trakcie restartu.
Filtrowanie. Port jest filtrowany, gdy filtr pakietów nie dopuszcza sondy: może to być osobny firewall, reguły routera albo firewall na samym hoście [5]. Filtry częściej po cichu porzucają pakiety, niż odsyłają komunikat ICMP [5]. Program Fail2Ban analizuje logi i po zbyt wielu nieudanych logowaniach zmienia reguły firewalla tak, by odrzucać nowe połączenia z danego adresu IP przez ustalony czas [8]. Jeśli taka blokada obejmie adres sondy, strona dla zwykłych użytkowników może działać, a pomiar pokaże awarię.
Przepełnienie kolejki. Argument backlog funkcji listen określa maksymalną długość kolejki oczekujących połączeń [6]. Gdy kolejka jest pełna, klient może dostać błąd ECONNREFUSED albo żądanie zostanie zignorowane, a późniejsza próba może się udać [6].
SYN flood. Atak SYN flooding to metoda odmowy usługi, w której atakujący wysyła serię segmentów SYN, często z podszytych adresów, i zapełnia kolejkę półotwartych połączeń [7]. Przy pełnej kolejce kolejne SYN są ignorowane albo zastępują niedokończone połączenia, a prawidłowe żądania są odrzucane [7]. Zachowanie zależy od implementacji i może obejmować wysyłanie RST [7].
Pomiar z jednej lokalizacji. Brak odpowiedzi nie musi oznaczać awarii serwera. Nmap ponawia sondy, bo pakiet mógł zginąć z powodu przeciążenia sieci, a nie filtrowania [5]. Nagios Core, żeby unikać fałszywych alarmów przy przejściowych problemach, pozwala ustalić, ile razy sprawdzenie ma zostać powtórzone, zanim stan uzna się za rzeczywisty problem [10].
Przykłady
| Wynik sondy | Co zobaczy sonda | Typowa przyczyna |
|---|---|---|
| Połączenie przyjęte | SYN-ACK, uzgadnianie kończy się ACK [1] | aplikacja nasłuchuje na porcie [5] |
| Odrzucone | segment RST [1] | serwer WWW zatrzymany, nic nie nasłuchuje [5] |
| Nieosiągalny | komunikat ICMP Port Unreachable lub Destination Unreachable [1] | cel nieosiągalny po drodze, filtr odsyłający błąd [1] [5] |
| Brak odpowiedzi | ponawiane SYN bez odpowiedzi do limitu czasu [1] | firewall porzucający pakiety, blokada IP sondy [5] [8] |
| Przejściowe odrzucenia lub brak odpowiedzi | ECONNREFUSED albo zignorowane SYN [6] | pełna kolejka połączeń, SYN flood [6] [7] |
| Przyjęte, strona nie działa | połączenie TCP poprawne, błąd w wyższej warstwie [3] | kod 5xx, błąd certyfikatu, problem z treścią [3] |
- [1] RFC 9293 — Transmission Control Protocol (TCP) · IETF
- [2] Service Name and Transport Protocol Port Number Registry · IANA
- [3] RFC 9110 — HTTP Semantics · IETF
- [4] How the web works · MDN Web Docs
- [5] Port Scanning Basics — Nmap Reference Guide · Nmap Project
- [6] listen(2) — Linux manual page · man7.org
- [7] RFC 4987 — TCP SYN Flooding Attacks and Common Mitigations · IETF
- [8] Fail2Ban — README · Fail2Ban Project
- [9] RFC 9114 — HTTP/3 · IETF
- [10] State Types — Nagios Core Documentation · Nagios Enterprises
STATS
wyniki z systemu · tylko liczby zbiorcze- Stron zmierzonych
- 204w ostatnim dniu pomiaru
- OK
- 335odczytów
- Fail
- 5odczytów
- Nie dało się sprawdzić
- 4timeout, blokada, limit zapytań
- Udział fail
- 1,5%bez „nie dało się”
- Stron łącznie
- 206choć jeden odczyt
- OK
- 1933odczytów
- Fail
- 12odczytów
- Nie dało się sprawdzić
- 21timeout, blokada, limit zapytań
- Udział fail
- 0,6%bez „nie dało się”
| Dzień | fail | nie dało się sprawdzić | ok |
|---|---|---|---|
| 23.08.2026 | 0 odczytów | 0 odczytów | 0 odczytów |
| 24.08.2026 | 0 odczytów | 0 odczytów | 0 odczytów |
| 25.08.2026 | 0 odczytów | 0 odczytów | 0 odczytów |
| 26.08.2026 | 0 odczytów | 0 odczytów | 0 odczytów |
| 27.08.2026 | 0 odczytów | 0 odczytów | 0 odczytów |
| 28.08.2026 | 0 odczytów | 0 odczytów | 0 odczytów |
| 29.08.2026 | 0 odczytów | 0 odczytów | 0 odczytów |
| 30.08.2026 | 0 odczytów | 0 odczytów | 0 odczytów |
| 31.08.2026 | 0 odczytów | 0 odczytów | 0 odczytów |
| 01.09.2026 | 0 odczytów | 0 odczytów | 0 odczytów |
| 02.09.2026 | 0 odczytów | 0 odczytów | 0 odczytów |
| 03.09.2026 | 0 odczytów | 0 odczytów | 0 odczytów |
| 04.09.2026 | 0 odczytów | 0 odczytów | 0 odczytów |
| 05.09.2026 | 0 odczytów | 0 odczytów | 0 odczytów |
| 06.09.2026 | 0 odczytów | 0 odczytów | 0 odczytów |
| 07.09.2026 | 0 odczytów | 0 odczytów | 0 odczytów |
| 08.09.2026 | 0 odczytów | 0 odczytów | 0 odczytów |
| 09.09.2026 | 0 odczytów | 0 odczytów | 0 odczytów |
| 10.09.2026 | 0 odczytów | 0 odczytów | 0 odczytów |
| 11.09.2026 | 0 odczytów | 0 odczytów | 0 odczytów |
| 12.09.2026 | 0 odczytów | 0 odczytów | 0 odczytów |
| 13.09.2026 | 0 odczytów | 0 odczytów | 0 odczytów |
| 14.09.2026 | 0 odczytów | 0 odczytów | 0 odczytów |
| 15.09.2026 | 0 odczytów | 0 odczytów | 0 odczytów |
| 16.09.2026 | 0 odczytów | 0 odczytów | 0 odczytów |
| 17.09.2026 | 2 odczyty | 0 odczytów | 204 odczyty |
| 18.09.2026 | 1 odczyt | 3 odczyty | 202 odczyty |
| 19.09.2026 | 3 odczyty | 10 odczytów | 617 odczytów |
| 20.09.2026 | 1 odczyt | 4 odczyty | 575 odczytów |
| 21.09.2026 | 5 odczytów | 4 odczyty | 335 odczytów |
- Otwarte teraz
- 9stron: 9 · w okresie łaski: 4
- Nowe w ostatnim dniu
- 421.09.2026
- Otwarte od początku
- 61stron: 47
- Zamknięte
- 48od początku
- Mediana trwania
- 5 h 59 minod wykrycia do zamknięcia
| Ustalenie | Skutek | Otwarte teraz | Łącznie | Zamknięte |
|---|---|---|---|---|
| Połączenie TCP tcp | DOWN | 9 | 61 | 48 |
| Dzień | nowe ustalenia |
|---|---|
| 23.08.2026 | 2 ustalenia |
| 24.08.2026 | 0 ustaleń |
| 25.08.2026 | 1 ustalenie |
| 26.08.2026 | 0 ustaleń |
| 27.08.2026 | 1 ustalenie |
| 28.08.2026 | 0 ustaleń |
| 29.08.2026 | 0 ustaleń |
| 30.08.2026 | 1 ustalenie |
| 31.08.2026 | 2 ustalenia |
| 01.09.2026 | 1 ustalenie |
| 02.09.2026 | 0 ustaleń |
| 03.09.2026 | 0 ustaleń |
| 04.09.2026 | 0 ustaleń |
| 05.09.2026 | 0 ustaleń |
| 06.09.2026 | 14 ustaleń |
| 07.09.2026 | 0 ustaleń |
| 08.09.2026 | 0 ustaleń |
| 09.09.2026 | 1 ustalenie |
| 10.09.2026 | 0 ustaleń |
| 11.09.2026 | 0 ustaleń |
| 12.09.2026 | 0 ustaleń |
| 13.09.2026 | 0 ustaleń |
| 14.09.2026 | 0 ustaleń |
| 15.09.2026 | 0 ustaleń |
| 16.09.2026 | 0 ustaleń |
| 17.09.2026 | 1 ustalenie |
| 18.09.2026 | 3 ustalenia |
| 19.09.2026 | 3 ustalenia |
| 20.09.2026 | 0 ustaleń |
| 21.09.2026 | 4 ustalenia |
- Przebiegów
- 60sposób tcp
- W 30 dni
- 60przebiegów
- Ostatni
- 19.09.2026start przebiegu
- Stron w przebiegach
- 20461 przebiegów bez liczby stron
CARD
karta z kodu CREATO_PING, odczyt 16.09.2026| Obszar i ważność | Dostępność · krytyczna (D01) |
|---|---|
| Workflow i częstotliwość | creato_ping_avail_v2 działa na LAB247cron co 24 h, osobno T1–T4 · Strony w stanie DOWN i WARNING dostają dodatkowy odczyt co 6 h (timer availability_recheck poza n8n). Od 2026-09-16 sposób ssl daje odczyt ssl_expiry (dni do wygaśnięcia certyfikatu); od 2026-09-17 odczyty trafiają do check_results. |
| Sonda i helper | sposób tcp · CREATO_PING/helpers/tcp_check.py |
| Testy |
|
| Typ wyniku | enum: ok / fail / timeout + czas połączenia |
| Jednostka | ms (czas do nawiązania połączenia) |
| Próg i reguła | Timeout 2,0 s (+0,5 s marginesu wyłącznika). Odrzucenie albo błąd sieci = fail, brak odpowiedzi w czasie = timeout. |
| Gdzie leżą pokrętła | CREATO_PING/helpers/config.py → TIMEOUTS["tcp"]CREATO_PING/helpers/site_params.py → CRITICAL_CHECK_TYPES |
| Retencja odczytów | Każdy odczyt w tabeli check_results bazy LAB247; kod LAB247 tej tabeli nie czyści. Polityki retencji nikt jeszcze nie ustalił. |
| Karta przepisana z | CREATO_PING/helpers/tcp_check.py · CREATO_PING/helpers/config.py · CREATO_PING/helpers/site_params.py · LAB247/site/src/lib/ingest/apply.ts · odczyt 16.09.2026 |
1. fail = ustalenie w okresie łaski (IN PROGRESS, bez alertu). 2. fail z rzędu = ustalenie otwarte i status strony DOWN — sprawdzenie należy do krytycznych (tcp, dns, http, ssl). Wyjątki bijące DOWN: BLOKADA (strona odpowiada z innych lokalizacji, zablokowane jest IP monitoringu) i CONFIG (działa tylko jedna forma adresu). Pierwszy odczyt ok zamyka ustalenie.
| Ustalenie | Powaga | Pewność | Skutek | Subtask / alarm | Co zrobić |
|---|---|---|---|---|---|
| Połączenie TCPtcp | Wysokie | Ewidentne | DOWN | tak / tak | Sprawdź hosting: serwer, firewall, limit połączeń. |
LOOP
pętli: 2Trafności jeszcze nie liczymy: zamknięcie subtaska nie niesie dziś werdyktu (prawdziwy / fałszywy / nie dało się sprawdzić). Cztery liczby pojawią się, gdy każde zamknięcie dostanie werdykt — to warunek startu pętli 1.
Sygnał: Strona wisiała na DOWN, choć działała: hosting klienta zbanował IP serwera monitoringu (SYN porzucany, nie odrzucany) po serii automatycznych odpytań. · dotyczy też: Kod odpowiedzi HTTP, SSL: ważność certyfikatu
- 1. Zbiórkaręcznieodczyt z nocnego skanu, bez zapisu per strona
- 2. Werdyktręczniedostępność potwierdzona z innych lokalizacji
- 3. Miarabrakliczników trafności wtedy nie było
- 4. Kartabrakkarta parametru powstała 2026-09-16
- 5. Zmianazrobionezewnętrzny cross-check i nowy status strony
- 6. Replaybrakbrak zapisanych odczytów do replayu
| Data | Zmiana | Powód | Wpływ na system | Commit · replay |
|---|---|---|---|---|
| 2026-07-19 | Timeout TCP/HTTP z naszego serwera sprawdzany z zewnątrz; odpowiedź z innych lokalizacji = status BLOKADA zamiast DOWN.helpers/network_block_check.py · helpers/site_params.py | Blokada sieciowa monitoringu to inny mechanizm niż blokada UA — działa poniżej HTTP. | cały system Nowy status strony w kolejności pierwszeństwa, nad DOWN — zmienia status każdej strony, nie tylko tego parametru. | 8c0c0c6bez replayubez zapisu zatwierdzenia |
Sygnał: Adres bez www odpowiadał 200, a forma z www miała certyfikat samopodpisany — silnik eskalował to do DOWN. · dotyczy też: Rozwiązywanie DNS, Kod odpowiedzi HTTP, SSL: ważność certyfikatu, Przekierowanie www ↔ bez www
- 1. Zbiórkaręcznieodczyt z nocnego skanu, bez zapisu per strona
- 2. Werdyktręcznieużytkownicy widzą sprawną stronę, więc alarm był fałszywy
- 3. Miarabrakliczników trafności wtedy nie było
- 4. Kartabrakkarta parametru powstała 2026-09-16
- 5. Zmianazrobionesprawdzenie częściowej dostępności i status CONFIG
- 6. Replaybrakbrak zapisanych odczytów do replayu
| Data | Zmiana | Powód | Wpływ na system | Commit · replay |
|---|---|---|---|---|
| 2026-08-04 | Częściowa dostępność (jedna forma 200, druga zepsuta) daje status CONFIG, który bije DOWN.helpers/site_params.py · helpers/partial_availability_check.py | Błąd konfiguracji do naprawy to nie awaria; realny DOWN zostaje, gdy nie odpowiada żadna forma. | cały system Nowy status strony nad DOWN; dotyczy wszystkich sprawdzeń krytycznych (tcp, dns, http, ssl). | 091e318bez replayubez zapisu zatwierdzenia |