Jitter

Jitter to nierówne tempo docierania pakietów (zmienność opóźnienia, w ms). Psuje rozmowy VoIP i wideo, a w bezpieczeństwie maskuje beaconing C2.

Jitter to nierówne tempo, w jakim pakiety danych docierają przez sieć. Wyobraź sobie pociągi, które miały kursować co minutę — ale jeden przyjeżdża po 50 sekundach, kolejny po 70, następny po 55. Średnio nadal jest „co minutę”, jednak odstępy skaczą. Właśnie to wahanie odstępów między pakietami nazywamy jitterem. Po polsku mówi się o zmienności opóźnienia (ang. packet delay variation), a wartość podaje się w milisekundach.

Warto odróżnić jitter od zwykłego opóźnienia (latency). Opóźnienie mówi, ile czasu pakiet wędruje od nadawcy do odbiorcy — to jak długość podróży. Jitter mówi, na ile ta podróż jest nieprzewidywalna — czy pakiety przychodzą równo, czy w nierównych zrywach. Łącze może być szybkie (niskie opóźnienie), a mimo to mieć wysoki jitter, i odwrotnie.

Dlaczego jitter przeszkadza?

Najbardziej psuje rzeczy, które dzieją się „na żywo”. W rozmowie głosowej (VoIP) czy na wideokonferencji dźwięk i obraz muszą napływać w równym rytmie. Gdy pakiety zaczynają przychodzić nierówno, słyszysz przerywany głos, robotyczne zacinanie albo „gubione” fragmenty zdań. Przy zwykłym przeglądaniu stron czy pobieraniu plików jitter prawie nie ma znaczenia — tam i tak nie liczy się rytm, a protokół TCP cierpliwie układa pakiety we właściwej kolejności.

Z czego bierze się jitter? Najczęściej z przeciążenia sieci, gdy pakiety czekają w kolejce w buforach routerów. Wpływ mają też zmiany trasy (pakiety wędrują różnymi ścieżkami), brak priorytetu dla ruchu „na żywo”, zakłócenia Wi-Fi oraz przeciążony sprzęt po drodze.

Jak się go mierzy i co jest „dobre”?

W uproszczeniu jitter to średnia z tego, jak bardzo różnią się odstępy między kolejno przychodzącymi pakietami. Dla połączeń na żywo precyzyjnie definiuje to standard RTP/RTCP (RFC 3550): wylicza zmienność na podstawie znaczników czasu i wygładza wynik, żeby pokazywał bieżącą tendencję, a nie pojedynczy skok. Z grubsza warto zapamiętać kilka progów:

  • Rozmowy i wideokonferencje — komfortowo poniżej ok. 30 ms.
  • Streaming wideo — znosi więcej, nawet ok. 100 ms, bo odtwarzacz buforuje materiał z wyprzedzeniem.
  • Zwykłe przeglądanie i pobieranie — jitter praktycznie bez znaczenia.

Najprostszym lekarstwem jest bufor jittera (jitter buffer) po stronie odbiorcy. To mały „poczekalnia” na pakiety: urządzenie celowo przetrzymuje je przez ułamek sekundy i wypuszcza w równym rytmie, mimo że przyszły nierówno. Bufor może być stały albo dostrajany na bieżąco. To zawsze kompromis — większy bufor lepiej wygładza, ale dokłada opóźnienia. Dodatkowo mechanizmy QoS (priorytet dla ruchu na żywo) ograniczają jitter, zanim w ogóle dotrze do bufora.

Jitter w cyberbezpieczeństwie

Co ciekawe, w świecie bezpieczeństwa słowo jitter znaczy coś nieco innego — i tu chodzi o celowe wprowadzanie nieregularności. Złośliwe oprogramowanie regularnie „melduje się” u swojego serwera dowodzenia (C2), wysyłając krótkie sygnały (beaconing). Gdyby robiło to równo co 60 sekund, taki zegarowy rytm łatwo wyłapać. Dlatego atakujący dodają jitter — losowo rozrzucają odstępy (raz 55 s, raz 65 s, raz 58 s), żeby ukryć regularność i zmylić proste reguły. Tę sztuczkę stosowały m.in. popularne frameworki C2 oraz zaawansowane kampanie, jak SUNBURST z długimi, losowymi przerwami.

Haczyk w tym, że losowość nie maskuje wszystkiego. Dla zespołów SOC i systemów NDR beaconing wciąż zostawia statystyczny ślad: powtarzalny rozkład odstępów, podobne rozmiary połączeń i uparcie ten sam adres docelowy. Analiza takich szeregów czasowych — a często też uczenie maszynowe — potrafi dostrzec ukryty wzorzec pod warstwą wprowadzonego jittera.

Dowiedz się więcej