6. Aplikační vrstva PB156: Počítačové sítě Eva Hladká Fakulta informatiky Masarykovy univerzity jaro 2010 Eva Hladká (FI MU) 6. Aplikační vrstva jaro 2010 1 / 20 Struktura přednášky 1 Přehled 2 Úvod 3 Základní členění aplikací Komunikační modely ­ Client-Server vs. Peer-to-peer Přístup k informacím ­ Pull model vs. Push model Nároky na počítačovou síť ­ nízké vs. vysoké 4 Pohled programátora 5 Vybrané síťové aplikace Eva Hladká (FI MU) 6. Aplikační vrstva jaro 2010 2 / 20 Přehled L7. Aplikační vrstva ­ Přehled Proč nestačí L4? z pohledu sítě stačí, z pohledu uživatele potřebujeme síťové aplikace Co nás nyní čeká. . . představení L7 základní členění aplikací pohled programátora vybrané síťové aplikace Eva Hladká (FI MU) 6. Aplikační vrstva jaro 2010 3 / 20 Přehled L7 z pohledu sítě ­ kde se pohybujeme? aplikační programy ­ interface pro uživatele Eva Hladká (FI MU) 6. Aplikační vrstva jaro 2010 4 / 20 Úvod Úvod I. aplikační vrstva: poskytuje služby pro uživatele: aplikační programy (aplikace) specifické pro požadovaný účel např. elektronická pošta, WWW, DNS, atd. atd. aplikace = hlavní smysl existence počítačových sítí zahrnuje síťové aplikace/programy a aplikační protokoly aplikační protokoly (HTTP, SMTP, atd.) jsou součástí síťových aplikací (web, email) nejedná se o aplikace samotné protokoly definují formu komunikace mezi komunikujícími aplikacemi aplikační protokoly definují: typy zpráv, které si aplikace předávájí (request/response) syntaxi přenášených zpráv sémantiku přenášených zpráv (jednotlivých polí) pravidla, kdy a jak aplikace zprávy vysílají Eva Hladká (FI MU) 6. Aplikační vrstva jaro 2010 5 / 20 Úvod Úvod II. Eva Hladká (FI MU) 6. Aplikační vrstva jaro 2010 6 / 20 Základní členění aplikací 1 Přehled 2 Úvod 3 Základní členění aplikací Komunikační modely ­ Client-Server vs. Peer-to-peer Přístup k informacím ­ Pull model vs. Push model Nároky na počítačovou síť ­ nízké vs. vysoké 4 Pohled programátora 5 Vybrané síťové aplikace Eva Hladká (FI MU) 6. Aplikační vrstva jaro 2010 7 / 20 Základní členění aplikací Základní členění aplikací Dle využitého komunikačního modelu: Client-Server model Peer-to-peer model Dle přístupu k informacím: pull model push model Dle nároků na počítačovou síť: aplikace s nízkými nároky na přenosovou síť aplikace s vysokými nároky na přenosovou síť Eva Hladká (FI MU) 6. Aplikační vrstva jaro 2010 8 / 20 Základní členění aplikací Komunikační modely ­ Client-Server vs. Peer-to-peer Komunikační modely ­ Client-Server vs. Peer-to-peer I. Client-Server Peer-to-peer komunikace iniciována klientem (klient = aplikační program ovládaný uživatelem) po ustavení komunikačního kanálu klient zasílá požadavky na server, ten mu odpovídá (mechanismus request-response) po ukončení komunikace je komunikační kanál uzavřen (centralizace zdrojů) valná většina aplikací v Internetu (WWW, FTP, DNS, SSH, . . . ) jednotliví klienti spolu komunikují přímo (uzly jsou si rovnocenné) každý uzel poskytuje své zdroje (výpočetní síla, úložná kapacita, atp.) ostatním uzlům každý uzel využívá zdrojů poskytovaných ostatními uzly (decentralizace zdrojů) např. sdílení souborů (Gnutella, G2, FastTrack), Skype, VoIP, atp. Eva Hladká (FI MU) 6. Aplikační vrstva jaro 2010 9 / 20 Základní členění aplikací Komunikační modely ­ Client-Server vs. Peer-to-peer Komunikační modely ­ Client-Server vs. Peer-to-peer II. Client-Server Peer-to-peer Eva Hladká (FI MU) 6. Aplikační vrstva jaro 2010 10 / 20 Základní členění aplikací Přístup k informacím ­ Pull model vs. Push model Přístup k informacím ­ Pull model vs. Push model Pull model Push model přenos dat iniciován klientem (forma požadavek-odpověď) např. webové prohlížeče vlastnosti: asymetrický datový tok rozmanité požadavky na propustnost přenos dat iniciován serverem automaticky na základě znalosti uživatelova profilu (požadavků) např. streaming multimedií (IPTV) vlastnosti: jednosměrný datový tok definované (a stálé) požadavky na propustnost (a zpoždění, jitter, atp.) Eva Hladká (FI MU) 6. Aplikační vrstva jaro 2010 11 / 20 Základní členění aplikací Nároky na počítačovou síť ­ nízké vs. vysoké Nároky na počítačovou síť ­ nízké vs. vysoké Základní parametry sítě pohledem aplikací: ztrátovost (loss) ­ pravděpodobnost ztráty (poškození) přenášených dat propustnost (bandwidth) ­ objem přenesených dat za časovou jednotku časová omezení (timing) ­ zpoždění (delay) (doba nutná pro přenos dat po síti) a kolísání zpoždění (jitter) Eva Hladká (FI MU) 6. Aplikační vrstva jaro 2010 12 / 20 Pohled programátora 1 Přehled 2 Úvod 3 Základní členění aplikací Komunikační modely ­ Client-Server vs. Peer-to-peer Přístup k informacím ­ Pull model vs. Push model Nároky na počítačovou síť ­ nízké vs. vysoké 4 Pohled programátora 5 Vybrané síťové aplikace Eva Hladká (FI MU) 6. Aplikační vrstva jaro 2010 13 / 20 Pohled programátora Aplikační vrstva ­ pohled programátora aplikace spolu komunikují skrze tzv. sockety struktura, která jednoznačně popisuje komunikující aplikaci jsou nezbytné na obou komunikujících stranách socket definuje: Family ­ třída využitého protokolu (IPv4, IPv6, . . . ) Type ­ proudový (stream, TCP), datagramový (UDP) či základní (raw, ICMP) Protocol ­ obvykle nastaveno na 0 pro TCP a UDP Lokální adresa socketu ­ kombinace lokální IP a čísla portu lokální aplikace Vzdálená adresa socketu ­ kombinace IP a čísla portu vzdálené aplikace (komunikující strany) Eva Hladká (FI MU) 6. Aplikační vrstva jaro 2010 14 / 20 Pohled programátora Aplikační vrstva ­ pohled programátora Typy socketů Eva Hladká (FI MU) 6. Aplikační vrstva jaro 2010 15 / 20 Pohled programátora Aplikační vrstva ­ pohled programátora Obsluha socketu pro nespojovanou službu (UDP aplikace) I. Eva Hladká (FI MU) 6. Aplikační vrstva jaro 2010 16 / 20 Pohled programátora Aplikační vrstva ­ pohled programátora Obsluha socketu pro nespojovanou službu (UDP aplikace) II. Eva Hladká (FI MU) 6. Aplikační vrstva jaro 2010 17 / 20 Pohled programátora Aplikační vrstva ­ pohled programátora Obsluha socketu pro spojovanou službu (TCP aplikace) I. Eva Hladká (FI MU) 6. Aplikační vrstva jaro 2010 18 / 20 Pohled programátora Aplikační vrstva ­ pohled programátora Obsluha socketu pro spojovanou službu (TCP aplikace) II. Eva Hladká (FI MU) 6. Aplikační vrstva jaro 2010 19 / 20 Vybrané síťové aplikace 1 Přehled 2 Úvod 3 Základní členění aplikací Komunikační modely ­ Client-Server vs. Peer-to-peer Přístup k informacím ­ Pull model vs. Push model Nároky na počítačovou síť ­ nízké vs. vysoké 4 Pohled programátora 5 Vybrané síťové aplikace Eva Hladká (FI MU) 6. Aplikační vrstva jaro 2010 20 / 20