Opóźnienie (ang. latency) to czas, jaki dane potrzebują na przebycie drogi od nadawcy do odbiorcy w sieci. Podaje się je w milisekundach (ms). Najczęściej mierzy się je na dwa sposoby: jako czas w jedną stronę (one-way delay) albo jako czas obiegu w obie strony — z ang. round-trip time, czyli RTT. Niskie opóźnienie znaczy, że system odpowiada niemal od razu. Wysokie czuć: strona się ładuje z ociąganiem, w grze pojawia się lag, a rozmowa internetowa się rwie. Opóźnienie to co innego niż przepustowość. Nawet bardzo „szerokie” łącze może mieć wysokie opóźnienie, jeśli dane mają daleko do przebycia albo czekają w kolejkach.
Z czego składa się opóźnienie sieciowe?
Na każdym urządzeniu po drodze (na każdym przeskoku, czyli hopie) dokłada się kilka rodzajów zwłoki. Całkowite opóźnienie to ich suma. Składniki są cztery:
- Opóźnienie propagacji (propagation delay) — czas potrzebny na pokonanie fizycznej odległości. Ogranicza je prędkość światła w danym medium. W światłowodzie sygnał biegnie z prędkością ok. 200 000 km/s (to mniej więcej 2/3 prędkości światła w próżni). W praktyce oznacza to około 0,5 ms opóźnienia w jedną stronę na każde 100 km trasy, czyli około 1 ms RTT. Na dalekich połączeniach to zwykle najważniejszy składnik. Jako jedynego nie da się go usunąć — można go tylko skrócić, stawiając serwer bliżej użytkownika.
- Opóźnienie serializacji (serialization delay) — czas potrzebny, by „wstrzyknąć” wszystkie bity ramki na łącze. Zależy od przepustowości łącza. Ramka o rozmiarze 1500 bajtów na łączu 1 Gb/s schodzi w około 12 µs. Im wolniejsze łącze, tym ten składnik większy.
- Opóźnienie kolejkowania (queuing delay) — czas, przez jaki pakiet czeka w buforze urządzenia, gdy łącze jest akurat zajęte. To najbardziej zmienny składnik. Przy przeciążeniu i zbyt dużych buforach (zjawisko zwane bufferbloat) potrafi gwałtownie rosnąć. To główne źródło jittera, czyli wahań opóźnienia.
- Opóźnienie przetwarzania (processing delay) — czas, w którym router lub switch analizuje nagłówek, sprawdza trasę i przepuszcza pakiet dalej. We współczesnym sprzęcie liczy się je w mikrosekundach i zwykle jest pomijalne. Rośnie jednak przy głębokiej analizie pakietów (DPI), szyfrowaniu czy translacji adresów (NAT).
Czym jest RTT i czym różni się od opóźnienia w jedną stronę?
RTT (round-trip time, czas obiegu w obie strony) to czas, w jakim pakiet dociera do celu i wraca potwierdzenie. Z grubsza RTT ≈ 2 × opóźnienie w jedną stronę, ale rzadko jest to dokładnie podwojenie. Trasa „tam” i „z powrotem” bywa różna, a kolejki w każdą stronę inne. RTT łatwiej zmierzyć — nie trzeba mieć zsynchronizowanych zegarów po obu końcach. To właśnie RTT decyduje o wydajności protokołów opartych na potwierdzeniach. Działa tu iloczyn pasma i opóźnienia (bandwidth-delay product, BDP): im wyższe RTT, tym mniejszą realną przepustowość osiągnie pojedynczy strumień TCP i tym wolniej nawiązują się połączenia (handshake TCP, TLS).
Jak mierzy się opóźnienie?
- Ping (ICMP echo) — najprostszy pomiar RTT do hosta. Pokazuje wartość minimalną, średnią i maksymalną oraz utratę pakietów.
- Traceroute / MTR — opóźnienie i straty na kolejnych przeskokach. Pomaga znaleźć wąskie gardło na trasie.
- TTFB (Time To First Byte, czas do pierwszego bajtu) — czas do pierwszego bajtu odpowiedzi aplikacji. Łączy opóźnienie sieci z czasem pracy serwera.
- Aktywne sondy — protokoły TWAMP/OWAMP do precyzyjnego pomiaru opóźnienia (także jednokierunkowego) i jittera między wybranymi punktami sieci.
- Pomiar pasywny — analiza prawdziwego ruchu (na podstawie przepływów i telemetrii), bez dokładania własnych pakietów. Czas między
SYNaSYN-ACKprzybliża opóźnienie sieci, a czas między żądaniem a odpowiedzią aplikacji — opóźnienie po stronie aplikacji.
Czym różni się opóźnienie od przepustowości, throughputu i jittera?
- Przepustowość, czyli pasmo (bandwidth) — ile danych łącze przepuści w jednostce czasu (np. Gb/s). To „szerokość rury”. Opóźnienie to czas przepłynięcia przez nią. Szersza rura nie skraca opóźnienia.
- Throughput — przepustowość faktycznie osiągnięta. Jest niższa od nominalnej z powodu opóźnienia, strat i kolejkowania (opisuje to BDP).
- Jitter — wahania opóźnienia między kolejnymi pakietami. Dla aplikacji czasu rzeczywistego (rozmowy głosowe przez internet, czyli VoIP, oraz wideokonferencje) jitter bywa groźniejszy niż wysokie, ale stabilne opóźnienie.
- Utrata pakietów (packet loss) — odsetek pakietów, które nie dotarły. Wymusza ponowne wysyłanie, a przy wysokim RTT dodatkowo wydłuża faktyczne opóźnienie.
Jakie opóźnienie jest akceptowalne?
Progi zależą od zastosowania, ale orientacyjnie: poniżej 30 ms RTT wpływ jest pomijalny; 30–60 ms widać już w grach sieciowych; do około 100 ms zwykle wystarcza do rozmów VoIP i przeglądania; 100–150 ms daje wyraźną „ociężałość”; powyżej 150 ms robi się problematyczne dla wszystkiego, co dzieje się na żywo. Dla jittera dobrym punktem odniesienia jest poniżej 20–30 ms. To wartości poglądowe. Liczy się tu nie tylko sama średnia, ale przede wszystkim stabilność i najgorsze przypadki — czyli percentyle p95/p99 (wartości, których nie przekracza odpowiednio 95% i 99% pomiarów).
Co zwiększa opóźnienie?
- Odległość geograficzna i liczba przeskoków na trasie.
- Rodzaj łącza — połączenia radiowe i satelitarne mają wyższe opóźnienie niż światłowód.
- Przeciążenie i bufferbloat — zbyt długie kolejki w obciążonych urządzeniach.
- Obciążenie serwera i aplikacji — wolne odpowiedzi backendu podnoszą TTFB.
- Przetwarzanie po drodze — szyfrowanie, głęboka analiza pakietów (DPI), translacja adresów (NAT), źle ustawiony QoS.
Dlaczego opóźnienie ma znaczenie dla bezpieczeństwa i monitoringu sieci?
Opóźnienie to nie tylko miara wydajności. To także sygnał telemetryczny, który wykorzystuje się w monitoringu wydajności sieci (NPM) oraz w wykrywaniu zagrożeń (NDR, praca zespołów SOC):
- Wykrywanie ataków wolumetrycznych — wzrost opóźnienia i jittera (rosnące kolejki) bywa wczesnym objawem ataku DDoS lub przeciążenia łącza, zanim usługa w ogóle przestanie działać.
- Odróżnienie problemu sieci od problemu aplikacji — rozbicie opóźnienia na część sieciową (np. z handshake’u TCP) i aplikacyjną pozwala stwierdzić, czy winne jest łącze, czy przeciążony lub zaatakowany serwer. Skraca to czas reakcji (MTTR).
- Baseline i wykrywanie anomalii — gdy znamy normalny profil opóźnień dla tras i usług (baseline), łatwiej zauważyć odstępstwa: przekierowanie ruchu (np. podejrzane zmiany trasy w protokole BGP), nową, nieoczekiwaną ścieżkę albo degradację, która może świadczyć o wycieku danych lub o nieuprawnionym pośredniku (atak typu man-in-the-middle, podstawione proxy).
- Ukryte kanały i tunelowanie — analiza rozkładu opóźnień i odstępów między pakietami pomaga wykrywać kanały czasowe (timing channels) oraz tunele (np. w ruchu DNS czy ICMP) służące do wykradania danych.
- SLA i higiena sieci — ciągły pomiar opóźnienia, jittera i strat wobec percentyli (p95/p99) to podstawa egzekwowania umów o poziomie usług (SLA) i wyłapywania powolnej degradacji, która potrafi maskować incydenty.
Jak ograniczać opóźnienie?
- Przybliżać treść i usługi do użytkownika (sieci CDN, edge, dobór lokalizacji serwerów).
- Skracać i porządkować trasy (peering, usuwanie zbędnych przeskoków).
- Stosować QoS i aktywne zarządzanie kolejką (AQM, np. CoDel/FQ-CoDel) przeciw bufferbloatowi.
- Optymalizować backend i korzystać z pamięci podręcznej (cache), by obniżyć TTFB.
- Mierzyć opóźnienie aktywnie i pasywnie, ustalać baseline i alarmować na percentylach.
Dowiedz się więcej
- ARP Spoofing – jak wykryć atak Man-in-the-Middle i zatruwanie ARP w sieci LAN — ARP spoofing może zwiększać opóźnienia przez przekierowanie i pośredniczenie w ruchu sieciowym.
- NOC (Network Operations Center) — NOC monitoruje opóźnienia, aby szybko wykrywać degradację usług i awarie sieci.
- Błędy DNS i bezpieczeństwo DNS – DNSSEC, ochrona przed atakami DNS i DNS management errors — Błędy DNS wydłużają czas odpowiedzi usług, bo opóźniają rozwiązywanie nazw.