Kvantitativní analýza internetového provozu Ladislav Lhotka {IhotkaQjcesnet. cz) Obsah kurzu 1. Principy komunikace v Internetu, protokoly TCP/IP 2. Hlavní kvantitativní charakteristiky datového provozu IP IP toky, způsoby měření, nástroje na analýzu a vizualizaci 3. Charakteristické rysy hlavních aplikačních protokolů (HTTP, FTP, SSH, P2P,XMPPaj.) 4. Objemové veličiny (počty bajtů a paketů), statistická analýza časových řad, metody založené na predikci 5. Rozložení klíčových položek IP toků (např. IP adres) ve vzorcích provozu: entropie a PCA 6. Kvantitativní charakteristiky vícerozměrných vzorků: fraktální a korelační dimenze, multifraktální míry Osnova dnešní přednášky • Úvod, motivace • Historické srovnání: telefonní síť versus Internet • Komunikační model ISO OSI a protokoly TCP/IP • Datagram IPv4 a IPv6, adresy • Směrovací hierarchie • Spojovaná komunikace: TCP 3 Proč měřit a analyzovat internetový provoz? (A proč o tom učit?) 4 Je to zajímavé Internet je dnes asi nejrozsáhlejší a nejsložitější systém, který člověk vytvořil. Podle posledních odhadů je připojeno téměř 1,5 miliardy lidí, ve vyspělých státech 50-70 %. Zpomalení růstu není nikde v dohledu, naopak - integrace mobilních telefonů, připojené domácí spotřebiče, auta, bezdrátové senzory,... Internet je postmoderní komunikační médium, kde se děje úplně všechno. Charakteristika provozu je proto obvykle velmi komplikovaná. 5 Je to užitečné Agregované veličiny pomáhají správci sítě v mnoha směrech: 1. Sledování zátěže, plánování rozvoje 2. Indikace výpadků linek nebo síťových prvků 3. Odhalování bezpečnostních problémů, zejména masivních útoků typu DoS nebo nelegálního sdílení 6 Je to obtížné Ukládání kompletních dat není možné: saturovaná linka 10 Gb/s znamená 100 TB za den. Problém je v tom, jak z neúplných dat získat co nejvíc informací a jak je efektivně reprezentovat a analyzovat. Potřebné znalosti: • protokoly a technologie TCP/IP • aplikační protokoly • metody ukládání dat, data mining • vizualizace • matematika, statistika 7 Počátky telefonie 6.4.1875 - Betlův patent 161 739 Transmitters and Receivers for Electric Telegraphs 10.3.1876 - první telefonní hovor (A. G. Bell): "Mr. Watson, come here, I want to see you." 27.4.1877 - Edisonův patent 474230 (uhlíkový mikrofon) Betlův i Edisonův telefon vyžadoval fyzické vedení mezi oběma stranami. 8 Telefonní sít Vodivé spojení mezi telefonujícími stranami se vytváří podle požadavků, Telefonní číslo je vlastně "program" sestavení cesty. (c) 1975 Joseph A. Car^H eTonrist.ca Strowger stepper f S a Modul-) ÍTo. 447,018. 3 Sheets—Sheet 1. ■ Á. B. STROW&EB. AUTOMATIC TELEPHONE EXCHANGE. Patented liar, 10, 1891. 10 Datové komunikace Komunikační síť pro přenos dat byla nejdříve utvářena podle telefonního vzoru. Dva zásadní problémy: 1. Strukturální nespolehlivost: pravděpodobnost chyby roste exponenciálně s počtem zařízení v cestě; 2. Časové zpoždění při sestavování cesty. 11 60. léta - revoluční myšlenky • Paul Baran: Distribuovaná komunikace Hustě propojená síť, next-hop routing • Donald Davies: Přepojování datových paketů Zpráva rozsekaná do paketů, každý opatřen hlavičkou, mj. s cílovou adresou. 19 57 r. fcT'-ff'* Telekomunikační komunita je zavrhla, padly ale na úrodnou půdu v ARPA (Advanced Research Projects Agency) —> ARPAnet 12 ARPA NETWORK, LOGICAL MAP, SEPTEMBER 1973 ^^^^^^^■^ 13 ČATENET Princip přepojování paketů se stal díky ARPAnetu populárním a uznávaným, a v 1. pol. 70. let ho používala kromě něj řada dalších sítí. Tyto sítě spolu však nemohly komunikovat. Bob Kahn a Vint Ceď proto začali v roce 1973 pracovat na specifikacích, které sjednotí protokoly, rozhraní a datové objekty vyměňované mezi těmito sítěmi —> TCP/IP. Mimoto rozdělili protokoly a příslušný software do vrstev, které poskytují různé úrovně abstrakce. Tato práce je zárodkem Internetu jakožto překryvné sítě nad různými transportními technologiemi. 14 End-to-end Principle Většinu komunikačních funkcí lze lépe a efektivněji implementovat na samotných koncích spojení než uvnitř síťové infrastruktury. Síť nemusí být bezchybná, koncové aplikace se s přiměřeným množstvím chyb dovedou vyrovnat. 15 SAM FFUHCPÍCO BA* ŕllEA packif haOIQ het McmwF^i^N defiuM riířiTAnrii EST4«llIllulHT FJlLtlH. «O»*** ME NI O t*lcK, \ CALIFORNIA PŕC"íT n*[HD riÉŕf Aierc M\ŕM4\I IMP AFIPAWEF Tlř »iianc iw PHlCriHETVWjnu ŕjňUwAT řJlítET ľlADIDj ÍIA.TIOH V UNIVfUITV OF EMJimňH CALIFORNIA |NFOňW*TION SCIEífťít IHS1ITUTE É*Anif#A díl nur. (jalif-oania ,™- rfllil (IF PA4XE K 16 RFC 1149 D. Waitzman: A Standard for the Transmission of IP Datagrams on Avian Carriers. IETF, 1 ApriM990. Bergen, Norsko 28.4.2001 17 TCP/IP Stack Application layer: HTTP, SSH, SMTP, DNS, ... Transport layer: TCP, U DP Internet layer: IP, I CM P Link layer: Ethernet, GPRS, satelit 18 Enkapsulace v paketu Data UDP header UDP data IP header IPd ata Frame header Fn ame dat a Frame footer Application Transport Internet Link 19 File Edit View Go Capture Analyze Statistics Help '■C-rť 'C-rf U ; ; □ Filter: + Expression. Vymazat ^"Použít No. Time Source Destination Protocol Info 1 0.000000 2 0.027162 3 0.027213 4 0.0276SS 172.29.2.201 147.251.5.37 172.29.2.201 172.29.2.201 147.251.5.37 172.29.2.201 147.251.5.37 147.251.5.37 HTTP 41749 > http [SYN] Seq http > 41749 [SYN, ACK 41749 > http [ACK] Seq GET / HTTP/1.1 =0 Win=5840 L ] Seq=0 Ack=l =1 Ack=l Win= ietransmission] HI 1 !► l> Frame 4 [543 b> tes or wire. 543 by tes es ptured] I> Ethernet II. Src: HewlettP_ ad:16:d c (00: 15:60: ad: 16: de), Dst: AsustekC_24:f5 :52 [00:13:d4:24:f5:52] > In ternet Pre tocol, Src: 172 .29.2.201 (172.29.; !.20l), Dst: 147.251.5.37 [147. 251.5.37) l> Transmission Control Pre tocol, Src Port: 4174E ) (41749), Dst Por t: http (80), Seq: 1, Ack: 1, Len: 477 I> Hypertext Transfer Protocol 0000 0010 1EEIEE! 00 15 60 ad 16 de 08 OOl 45 93 00 f b ■mm .%...... A 1 02 11 f9 ba 40 00 40 06 f 7 25 ac Id 02 c9 ....@.@. 0020 05 25 a 3 15 00 50 S3 e 3 dO ba fl ab e9 43 30 18 .V . .P. . .....C. . 0030 00 5c 4a Oa 00 00 01 01 08 Oa 00 20 29 08 00 00 ■ \J..... ... )... 0040 00 00 47 45 54 20 2f 20 48 54 54 50 2f 31 2e 31 ..GET / HTTP/1.1 0050 Od Oa 48 6f 73 74 3a 20 77 77 77 2e 6d 75 6e 69 ..Host: www.muni 0060 2e 63 7a od Oa 55 73 65 72 2d 41 67 65 6e 74 3a .cz..Use r-Agent: 0070 20 4d if.f 7a 69 6c 6c 61 2f 35 2e 30 20 28 58 31 Mozilla /5.0 (XI 0080 31 3b 20 55 3b 20 4c 69 6e 75 78 20 69 36 38 36 1; U; Li nux 1686 0090 3b 20 63 73 2d 43 5a 3b 20 72 76 3a 31 2e 39 2e ; es-CZ; rv:1.9. 00a 0 30 2e 31 29 20 47 r-5 63 6b 6f 2f 32 30 30 38 30 0.1) Gee ko/20080 oobo 37 32 38 32 30 20 46 69 72 65 66 6f 78 2f 33 2e 72820 Fl refox/3. OOcO 30 2e 31 Od Oa 41 63 63 65 70 74 3a 20 74 65 78 0.1..Ace ept: tex oodo 74 2f 68 74 6d 6c 2c 61 70 70 6c 69 63 61 74 69 t/html,a pplicati QQeO ■if if« 2f 78 68 74 e-d 6c 2b 78 6d 6c 2c 61 70 70 on/xhtml +xml,app oof o fc~c 69 63 61 74 69 of 6e 2f 78 6d 6c 3b 71 3d 30 lication /xml;q=0 0100 2e 39 2c 2a 2f 2a 3b 71 3d 30 2e 38 Od Oa 41 63 .9,*/*;q =0.8..Ac Ethernet 1 et h 1. ľ byl es Packets: 278 Displayed 278 Marked: 0 D ropped: 0 ji Profile: Default 20 File Edit View Go Capture Analyze Statistics Help '■C-rť 'C-rf U ; ; □ Filter: + Expression. Vymazat ^"Použít No. Time Source Destination Protocol Info 1 0.000000 2 0.027162 3 0.027213 4 0.027688 172.29.2.201 147.251.5.37 172.29.2.201 172.29.2.201 147.251.5.37 172.29.2.201 147.251.5.37 147.251.5.37 HTTP 41749 > http [SYN] Seq=0 Win=5840 L http > 41749 [SYN, ACK] Seq=Q Ack=l 41749 > http [ACK] Seq=l Ack=l Win= GET / HTTP/1.1 ietransmission] HI 1 !► l> Frame 4 [543 b> te= or wine. 543 by tes cě ptuned] I> Ethernet II. Snc: HewlettP_ ad:16:d c (00: 15:60: ad: 16:dc ), Dst: AsustekC_24:f5 :52 [00:13:d4:24:f5:52] > In tennet Pnc tocol, Snc: 172 .29.2.201 (172.29.2 .201), Dst: 147.251.5.37 [147. 251.5.37) l> Transmission Contnol Pnc tocol, Snc Pont: 4174E (41749) Seq: 1, Ack: 1, Len: 477 I> Hypertext Tnansfer Pnotocol 0000 0010 0020 0030 00 13 d4 24 7? 52 00 15 60 ad 16 de 08 00 |45 93 ■ \J........ )-.. A 1 102 11 f9 ba 40 00 40 06 f 7 25 ac Id 02 c9 a 3 4a 15 Oa 00 00 50 00 33 01 e 3 01 dO b a 08 Oa fl ab 00 20 e9 43 29 08 30 00 13 00 00 5c 0040 00 00 47 45 54 20 2f 20 48 54 54 50 2f 31 2e 31 ..GET / HTTP/1.1 005© Od Oa 43 if.f 73 74 3a 20 77 77 77 2e 6d 75 6e 69 ..Host: www.muni 0060 2e 63 7a od Oa 55 73 65 72 2d 41 67 65 6e 74 3a .cz..Use n-Agent: 0070 20 4d if.f 7a <:■■? 6c 6c 61 2f 35 2e 30 20 28 53 31 Mozilla /5.0 (XI 0080 31 3b 20 55 3b 20 4c <-:■■? 6e 75 78 20 69 36 33 36 1; U; Li nux 1686 0090 3b 20 63 73 2d 43 5a 3b 20 72 76 3a 31 2e 33 2e ; cs-CZ; rv:1.9. 00a 0 30 2e 31 29 20 47 r-5 63 6b 6f 2f 32 30 30 33 30 0.1) Gec ko/20080 OObO 37 32 33 32 30 20 46 &■? 72 65 66 6f 78 2f 33 2e 72820 Fi nefox/3. 00C0 30 2e 31 Od Oa 41 63 63 65 70 74 3a 20 74 65 73 0.1..Acc ept: tex oodo 74 2f 63 74 6d 6c 2c 61 70 70 6c 69 63 61 74 69 t/html,a pplicati OOeO ■if 6 http [SYN] Seq=G Win=584G L 2 0.027162 147.251.5. 37 172.29 2.201 TCP http > 41749 [SYN, ACK] Seq=0 Ack=l 3 0.027213 172.29 .2.201 147.251.5 37 TCP 41749 > http [ACK] Seq=l Ack=l Win= 4 3 0.027688 172.29 •01 147.251.5 3:7 HTTP GET / ■^transmission]GET / HTTP/1.1 JĽ I> Frame 4 [543 b> tes on wire. 543 b;, tes Cr )ptured] I> Ethernet II. Src: HewlettP_ ad:16:d c (00 15:60: ad: 16 :dc), Dst: AsustekC_24:f£ :52 (00:13:d4:24:f5:52) I> Internet Pre tocol, Src: 172 .29.2.201 (172.29.2 .201) , Dst: 147.251.5.37 (147. 251.5.37) I> Transmission Co ntrol Pre tocol, Src Port 4174E (41749), Dst Port: http (80), Seq: 1, Ack: 1, Len: 477 I> Hypertext Transfer Protocol GGGG 30 13 d4 24 f5 52 00 15 60 ad 16 de 08 00 45 00 ...$.R.. '.....E. A 1 GGIG 0020 0030 0040 GG5G 01 11 f ý ba 40 00 40 06 f 7 25 ac Id 02 c9 93 ft ..@.@. .%..... 1 35 25 |a3 4a 15 Oa 00 50 83 00 00 Ol e3 01 dO ba OS Oa fl ab 00 20 e9 43 29 08 80 00 18 00 j. . .P.......C. .J........ ).. 30 5c 47 4:3: 45 6f 54 20 2f 73 74 3a 20 20 48 54 77 77 54 50 77 2e 2f 31 6d 75 2e 6e 31 IGET / HTTP/1. 3d Oa ..Host: www.muni 0060 2e 63 7a od Oa 55 73 65 72 2d 41 67 65 6e 74 3a .cz..Use r-Agent: GG7G 20 4d if.f 7a 69 6c 6c 61 2f 35 2e 30 20 28 58 31 Mozilla /5.G (XI 0080 31 3b 20 55 3b 20 4c <-:■■? 6e 75 78 20 69 36 38 36 1; U; Li nux i686 0090 3b 20 63 73 2d 43 5a 3b 20 72 76 3a 31 2e 33 2e ; cs-CZ; rv:1.9. 00a 0 30 2e 31 ■ž? 20 47 65 63 6b 6f 2f 32 30 30 38 3G 0.1) Gee ko/20080 oobo 37 32 38 32 30 20 46 &■? 72 65 66 6f 78 2f 33 2e 72820 Fi refox/3. OOcO 30 2e 31 Od Oa 41 63 63 65 70 74 3a 20 74 65 78 0.1..Ace ept: tex QQdQ 74 2f 63 74 6d 6c 2c 61 70 70 6c 69 63 61 74 6Í t/html,a pplicati OOeO if 6U ; ; □ Filter: + Expression. Vymazat ^"Použít No. Time Source Destination Protocol Info 1 0.000000 2 0.027162 3 0.027213 4 0.027688 172.29.2.201 147.251.5.37 172.29.2.2G1 172.29.2.201 147.251.5.37 172.29.2.201 147.251.5.37 147.251.5.37 HTTP 41749 > http [SYN] Seq http > 41749 [SYN, ACK 41749 > http [ACK] Seq GET / HTTP/1.1 =0 Win=5840 L ] Seq=0 Ack=l =1 Ack=l Win= ietransmission] HI 1 IH l> Frame 4 (543 bytes on wire. 543 bytes captured] > Ethernet II, Src: HewlettP_< ad:16:dc (00:15:60:ad:16 :dc), Dst: AsustekC_ 24:f5:52 [00:13:d4:24:f5:52] > Internet Protocol, Src: 172 29.2.201 (172.29.2.201) , Dst: 147.251.5.37 (147.251.5.37) l> Transmission Control Protocol, Src Port: 41749 (41749), Dst Port: http (80), Seq: 1, Ack: 1, Len: 477 I> Hypertext Transfer Protocol GGGG GO 13 d4 24 f5 52 00 15 60 ad 16 de G8 GG 45 GG ...$.R.. '.....E. M. 1 GG10 02 11 fg ba 40 00 40 06 Ť7 25 ac Id 02 c9 93 fb ____(3.(3. .%...... 0020 05 25 a3 15 00 50 83 e3 dO. ba fl ab e9 43 80 IS .%. . .9.......C. . 0030 00 5c 4a Oa 00 00 Ol Ol 08 Oa 00 20 29 08 00 00 ■ \J........ )■■■ 0G40 SEBBE147 45 54 20 2t 20 48 54 54 50 2f 31 2e 31 BCiET / HTTP/1.1 GG5G Od Oa 48 6f 73 74 3a 20 77 77 77 2e 6d 75 6e 69 ^B..Host: www.muni 0060 2e 63 7a Od Oa 55 73 65 72 2d 41 67 65 6e 74 3a B.cz..Use r-Agent: GG7G 2G 4d 6f 7a 69 6c 6c 61 2f 35 2e 3G 20 28 58 31 1 Mozilla /5.0 (XI 0080 31 3b 20 55 3b 20 4c 69 6e 75 78 2G 69 36 38 36 ll; U; Li nux 1686 0090 3b 20 63 73 2d 43 5a 3b 20 72 76 3a 31 2e 39 2e 1: cs-CZ; rv:1.3. 00a 0 3G 2e 31 29 20 47 65 63 6b 6f 2f 32 30 30 38 30 Iv.li Gee ko/20080 OGbO 37 32 38 32 30 2G 46 69 72 65 66 6f 78 2f 33 2e H72820 Fi refox/3. GGcG 3G 2e 31 Od Oa 41 63 63 65 70 74 3a 20 74 65 78 Iv. 1. . Ace ept: tex OGdO 74 2f 68 74 6d 6c 2c 61 70 70 6c 69 63 61 74 6S ^Bt/html,a pplicati GOeO 6f 6e 2f 78 68 74 6d 6c 2b 78 6d 6c 2c 61 70 70 ^Bon/xhtml +xml,app GGfG 6c 69 63 61 74 69 6f 6e 2f 78 6d 6c 3b 71 3d 3G BBlication /xml;q=C G1GG 2e 39 2c 2a 2f 2a 3b 71 3d 30 2e 38 Od Oa 41 63 H.9,*/*;q =0.8. .Ac B Hypert ext Transfer Protocol (http), 4. jj Packets: 278 Displayed: 27 8 Marked: 0 Dropped: 0 ji Profile: Default 23 Princip komunikace Network Connections Stack Connections Application ■*..........................► Application Peer-to-peer i] Transport « Internet > Transport Internet Internet I II '] Link í Internet Link Link Ethernet Fiber, Satellite. etc. 24 Datagram IPv4 7J_ 15 231 31 VER HLEN TOS total length identification flags fragment offset TTL protocol header checksum source address destination address options data 25 Datagram IPv6 1 u 15| 23| 31| I VER traffic class flow label 1 payload length next header hop limit Jjs.ina.ion add.ess ■■■■■■■■■«g 26 Smerovací hierarchie Směrování se v Internetu odehrává ve dvou základních úrovních: • exterior (inter-AS) routing • interior (intra-AS) routing Autonomní systém (AS): propojený soubor sítí a směrovačů pod koordinovanou správou, která vůči zbytku Internetu vystupuje jako konzistentní jednotka. Nazývá se též směrovací doména (routing domain). Každý AS je identifikován šestnáctibitovým číslem (ASN = AS number), přiděleným regionálním internetovým registrem (RIR). 27 Transmission Control Protocol TCP vytváří pro aplikaci abstrakci proudu - spojitého datového toku (virtuální roura). Je to spolehlivý protokol, tzn. zaručuje bezchybné doručení všech dat v pořadí, jak byla odeslána. Pozitivní potvrzování: přijímající strana odesílá sekvenční číslo prvního bajtu, který dosud nebyl (řádně) doručen. TCP také obsahuje mechanismus pro řízení rychlosti odesílání dat. 29 Hlavička TCP 1 7| 15 1 23| 31 1 source port destination port | sequence number | acknowledgement number HLEN reserved flags window size TCP checksum urgent pointer options data Flags: URG ACK PSH RST SYN FIN 30 Řízení datového toku ACK v r • příjemce ACK v r • příjemce odesílatel odesílatel 31