Kvantitativní analýza internetového provozu (3) Ladislav Lhotka lhotka@cesnet.cz Osnova přednášky * Metody sběru dat ­ SNMP * Časové řady * Autokorelační funkce * Časové řady s trendem a sezónními vlivy * Predikce časových řad 2 SNMP Simple Network Management Protocol: RFC 3416 (verze 2) Na straně serveru (managed device) se o komunikaci stará agent (softwarový démon). Zabezpečení přístupu: SNMP communities (read-only, read-write) Dva režimy: 1. Dotaz-odpověď: klient/manažer požádá agenta o určitou akci, ten ji provede (nebo také ne) a pošle odpověď. 2. Trap: asynchronní zpráva generovaná agentem, která manažera upozorňuje na změnu stavu zařízení nebo nějaký jev. 3 Management objects Každý objekt reprezentuje konkrétní údaj (konfigurační parametr, statistiku) nebo jejich posloupnost. Soubor (databáze) objektů se nazývá Management Information Base (MIB). Objekty jsou dále tématicky členěny (podle typu zařízení nebo služby apod.) do MIB modulů. 4 Struktura MIB 5 Dotazy na data U všech jsou jako parametry OID objektů, jejichž hodnota se žádá. * GetRequest jedna nebo více hodnot MIB objektů * GetNextRequest hodnota následujícího prvku posloupnosti * GetBulkData umožňuje přenést celé posloupnosti 6 Software pro SNMP * Net-SNMP: http://www.net-snmp.org * MRTG (Multi-Router Traffic Grapher): http://oss.oetiker.ch/mrtg/ * Nagios: http://www.nagios.org/ 7 Časové řady Diskrétní časová řada je posloupnost pozorování jedné nebo více náhodných veličin uspořádaná v čase: {Xt1 , Xt2 , . . . , Xtn } Předpokládáme ekvidistantní časový interval ­ řada se pak zapisuje {X1, X2, . . . , Xn} Proměnná Xn obvykle závisí na předchozí historii, např. opakované hody kostkou se nepovažují za časovou řadu. 8 Značení X = E(X) . . . střední hodnota D(X) . . . rozptyl (X) . . . standardní odchylka C(X, Y) . . . kovariance (X, Y) . . . koeficient korelace 9 Objemové statistiky provozu Vzorek z mezinárodního okruhu (,,global Internet") 10 telia-3roky.data 2005-06-29T20:00:00 ­ 2008-10-01T20:00:00, t = 1 týden. 1120089600 357446623.982743 1120694400 193276988.836032 1121299200 218319212.625317 1121904000 214722634.92688 1122508800 230670664.3727 1123113600 220978686.182301 ... Levý sloupec: Unix time [s] Pravý sloupec: průměrná hodnota za t - t 2 , t + t 2 [bit/s] 11 50 100 150 t 4.0 10 8 6.0 10 8 8.0 10 8 1.0 10 9 1.2 10 9 1.4 10 9 bit s Public Internet Praha 3 years 12 Software pro časové řady * R ­ http://www.r-project.org * S-PLUS, SAS * Mathematica, MAPLE 13 Stacionarita časové řady Stacionarita 1. řádu: E(Xt) nezávisí na t. Stacionarita 2. řádu: Platí podmínka stacionarity 1. řádu a navíc C(Xt, Xt+s) závisí pouze na s. 14 Autokorelační funkce Autokovarianční funkce pro řadu se stacionaritou 2. řádu: s = C(Xt, Xt+s) = E((Xt - X)(Xt+s - X)) Autokorelační funkce s = C(Xt, Xt+s) (Xt)(Xt+s) = k 0 15 Odhady ACF ze vzorku ^s = n-s t=1 (Xt - X)(Xt+s - X) n t=1 (Xt - X)2 16 Složky časové řady Xt = Tt + St + et Tt . . . trend St . . . sezónní složka Tt . . . trend et . . . zbytek 17 Separace složek Buys-Ballotova tabulka 1 2 . . . T Celkem Průměr x1 x2 . . . xT xT+1 xT+2 . . . xT ... ... ... ... xn-T+1 xn-T+2 . . . xn Celkem Průměr T je perioda 18 Určení trendu ­ klouzavý průměr Tt = 1 2a + 1 a i=-a xi V R lze použít funkci filter(). Pro naše data zkusíme klouzavý průměr přes 52 hodnot: filter(bps, filter=rep(1/52,52)) 19 Stroje pracují za nás Funkce stl() odhaduje z časové řady Xt trend Tt pomocí regresní metody LOESS a dopočítává sezónní složku St a zbytek et. Ze seznamu hodnot je ale potřeba vytvořit objekt ,,time-series": rada.6 <- ts(bps, start=0, freq=6) plot(stl(rada.6, s.window="periodic")) 20 Predikce Střední hodnota celé řady obvykle nefunguje. Klouzavý průměr několika předchozích hodnot je lepší. filter(bps, sides=1, filter=rep(1/3,3)) 21 Exponenciální vyhlazování Předpovídaná hodnota ^Xt+1 = ^at ^at = Xt + (1 - )^Xt = Xt + (1 - )^at-1 Váha předchozích pozorování (smoothing parameter) se zmenšuje směrem do minulosti: ^at = Xt + (1 - )Xt-1 + (1 - )2 ^at-2 = . . . Počáteční hodnotu můžeme nastavit např. takto: ^a0 = X1. 22 Holtova metoda ­ lineární trend ^Xt+1 = ^at + ^btt Zvolíme t za časovou jednotku. ^at = Xt + (1 - )(^at-1 + ^bt-1) ^bt = (^at - ^at-1) + (1 - )^bt-1 23 Wintersova metoda ­ sezónní variace Aditivní model ^Xt+1 = ^at + ^btt + ^st ^at = Xt + (1 - )(^at-1 + ^bt-1) ^bt = (^at - ^at-1) + (1 - )^bt-1 ^st = (Xt - ^at) + (1 - )^st-p 24 Multiplikativní model ^Xt+1 = (^at + ^btt)^st ^at = Xt + (1 - )(^at-1 + ^bt-1) ^bt = (^at - ^at-1) + (1 - )^bt-1 ^st = (Xt/^at) + (1 - )^st-p 25