Számítógépes Hálózatok és Internet Eszközök 2010 24. Felhasználói réteg DNS, email, HTTP, WWW, Web Caching, P2P 1 Felhasználói réteg Domain Name System Példák a felhasználói rétegre: E-Mail WWW Content Delivery Networks Peer-to-Peer-Networks A forgalom az Interneten 2
Domain Name System (DNS) Minden hálózat interface egy hálózatban világszerte egyértelmő IP címmel rendelkezik Domain Name System (DNS) Megfeleltet az IP-címnek egy nevet, mint pl. a 157.181.161.52 címnek a pandora.inf.elte.hu nevet Elosztott robosztus adatbázis Részletesen: 19. elıadás fóliái 3 DNS DNS neveket képez le IP-címekre Pontosabban: neveket erıforrás-bejegyzésekre A nevek hierarchikusan struktúráltak egy névtérben Minden domain-en belül, a domain tulajdonosa ügyeli fel a névteret a domain alatt A névtér zónákra van osztva 4
DNS Reverse Name Lookup Melyik számítógéphez tartozik az 157.181.161.9 IP-cím? Lekérdezés: 9.161.181.157.in-addr.arpa Miért van megfordítva a cím? dns.inf.elte.hu root arpa hu in-addr elte 157 181 161 inf dns 157.181.161.9 9 5 Email (RFC 821/822) Komponensei: user agents (UA) message transfer agents (MTA) Szolgáltatások kompozíció, küldés, értesítés, megjelenítés, rendelkezés (disposition) További szolgáltatások továbbküldés, auto-válasz, szabadság-funkciók, levelezı listák, Struktúra: Boríték a szállításhoz szükséges információ, a MTA használja Tartalom Fejléc kontroll információ a UA-nek Törzs a valódi tartalom 6
E-Mail: SMTP és POP SMTP: POP: IMAP: Simple Mail Transfer Protocol Post Office Protocol Internet Message Access Protocol 7 World Wide Web Client-Server-Architektúra Web-Server web-oldalakat bocsát rendelkezésre Formátum: Hyptertext Markup Language (HTML) Web-Browser oldalakat kérdez le a web-server-tıl Server és browser Hypertext Transfer Protocol (HTTP) által kommunikálnak egymással 8
A Word Wide Web története 1945: Vannevar Bush egy cikkben javasol egy gépet, melyet Memex-nek hív, amely szöveg és kép információt egymással tetszılegesen összelinkelve tárol. 1965: Ted Nelson bevezeti a hypertext és hypermedia fogalmat az ACM 20th national conference konfelencián 1972: ZOG fejlesztésének kezdete a Carnegie-Mellon egyetemen ZOG egy szöveg adatbank A bejegyzések tartalmaztak címet, leírást és menüpontokat, amelyek más bejegyzésekhez vezettek ZOG-fejlesztık Donald McCracken és Robert Akscyn késıbb kifejlesztették KMS-t, Knowledge Management System 1978: Andrew Lippman (MIT) vezetésével fejlesztették az elsı valódi Hypermedia-terméket: Aspen Movie Map virtuális túra Aspenben 1984: Hypertext rendszer: Notecard (Xerox PARC) 1987: Bill Atkinson (Apple) bemutatja a HyperCard Hypertext rendszert 9 A Web története 1989: Megjelenik a Word wide Web: Tim Berners-Lee (CERN) Information Management: A Proposal World-Wide Web: An Information Infrastructure for High-Energy Physics Böngészık: 1991 Worldwideweb 1993 Lynx 1993 Mosaic (Browser) 1994 Netscape 1998 Mozilla 2002 Firefox 2002 Camino 1995 Microsoft Internet Explorer 1999 Konqueror 2002 Safari 10
Hypertext Transfer Protocol (HTTP) Kommunikációs protokoll a World Wide Web-hez Cél: HTML Hypertext-oldalakhoz való hozzáférés és azok megjelenítése A fejlesztést koordinálják: World Wide Web Consortium Internet Engineering Task Force RFC 2616 (1999) definiálja HTTP/1.1 protokollt HTTP egy lekérdezés/válasz Protokoll kliensek és szerverek között Kliens Pl.: Web-böngészı, Spider,... Web-szerver HTML file-okat tárol vagy létrehoz Köztük: Proxy-k, gateway-k és alagutak HTTP-kliens felépít egy TCP-kapcsolatot (default port 80) HTTP-szerver ezen a porton hallgatózik HTTP-erıforrásokat Uniform Ressource Identifyers/Locators (URI/URL) azonosítanak, pl. http://www.elte.hu/index.html 11 HTTP parancsok A HTTP 8 metódust ismer: GET Standard lekérdezés egy web oldalhoz POST Adatokat visz át az ellenkezı oldalra HEAD Lekérdezés, amely azonos a GET-lekérdezéssel, csak tartalom (body) nélkül csak a fejléc PUT PUT Fiele-ok feltöltése a web-szerverre. Ma alig implementált. DELETE Törli az erıforrást TRACE A lekérdezést változatlanul visszaküldi OPTIONS Kiadja a szerver HTTP metódusait CONNECT: A lekérdezést egy TCP/IP-alagútba konvertálja, rendszerint, hogy SSL-kapcsolatot tegyen lehetıvé 12
HTTPS https egy URL-séma biztonságos HTTP kapcsolathoz A https kapcsolat: Az URL jelzi a HTTP-ek, hogy egy speciális TCP-port (443) kerül felhasználásra és a HTTP és a TCP között még egy titkosító/autentifikáló réteg van A Netscape Communications Corporation fejlesztette ki biztonságot követelı kommunikációhoz, mint online fizetés, login,... Szigorúan véve HTTPS nem egy szeparált protokoll HTTP és Secure Socket Layer (SSL) vagy Transport Layer Security (TLS) kombinációja Védelem lehallgatás és Man-in-the-Middle támadások ellen 13 TLS/SSL Transport Layer Security (TLS) és annak elıdje, a Secure Sockets Layer (SSL) kriptografikus protokollok biztonságos kommunikációhoz, alkalmazásokhoz mint HTML, E-Mail, Instant Messaging Ezek tartalmaznak Public-Key-titkosított kulcs kicserélést és certifikátum-alapú autentifikálást Szimmetrikus titkosítást az adatforalomhoz Jelenlegi implementációk megengedik a következı protokollokat Public-Key kriptográfia: RSA, Diffie-Hellman, DSA Szimmetrikus titkosítás: RC2, RC4, IDEA, DES, Triple DES, AES One-Way-Hash függvények: MD2, MD4, MD5, SHA. 14
Dinamikus HTML Dinamikus HTML a következık kombinációját jelenti HTML, style-sheets és skriptek Cascading style sheets Skriptek, mint pl. Javascript... Animált HTML: a Web oldal tud reagálni a felhasználó akcióira annélkül, hogy a Web szerver reagálna Különbözı megoldások Netscape-ben MS Internet Explorer-ben 15 EXtensible Markup Language (XML) XML Adatokat és az adatleírást írja le HTML Adatokat jelenít meg, a megjelenítésre koncentrál XML tags Nem elıre definiáltak, létre kell ıket hozni Document Type Definition (DTD) vagy XML-séma írja le az adatokat XML adatok beágyazhatók HTML-be XHTML HTML és XML kombinációja Szintaktikai különbségek: XHTML elemeket rendesebben kell egymásba ágyazni XHTML elemek kisbetőkkel... 16
World Wide Web Client-Server-Architektúra Web-Server web-oldalakat bocsát rendelkezésre Formátum: Hyptertext Markup Language (HTML) Web-Browser oldalakat kérdez le a web-server-tıl Server és browser Hypertext Transfer Protocol (HTTP) által kommunikálnak egymással 17 Szerver-Farm A szerver oldal teljesítményének növeléséhez több web-server dolgozik Front end Fogadja a lekérdezéseket Továbbítja a lekérdezéseket egy különálló csomóponthoz további feldolgozásra 18
Web-Server-ek és adatbázisok Web-Server-ek nem csak statikus web-oldalakat bocsátanak rendelkezésre Web-oldalakat automatikusan is létre lehet hozni Ehhez egy adatbázisból kérdeznek le adatokat Ez az adatbázis nem szükségszerően statikus, interakció által megváltoztatható lehet Probléma: Konzisztencia Megoldás Web-szolgáltatás és adatbázis egy 3-fokú architektúrája Server farm Client1 Server 1 Adatbázis Web- Browser Client n Server 2 Server 3 19 Web-Cache Server-Farm ellenére a várakozási idı gyakran kritikus Megoldás: Cache (Proxy) Helye A kliens oldalon A lokális hálózatban (egy Proxy-n) Az Internet-Service-Provider-nél Kérdések Adatok elhelyezése, nagysága, aktualitása Érvénytelenítés Time-Out által 20
WWW terhelés kiegyensúlyozás (load balancing) Web-szörfözéskor tipikusan: Web-szerverek web-oldalakat bocsátanak rendelkezésre Web-kliensek web-oldalakat kérnek le Rendszerint ezek a halmazok diszjunktak A lekérések a web-szervereken terhelést okoznak: Átviteli sávszélesség Számítási igény (idı, tár) www.apple.com www.google.com www.eltehu 21 Terhelési elvárások www.google.com Egyes szervereknek mindig magas terhelést kell kiszolgálni Pl. hír-oldalak, web-keresık A szervereket a permanens igénynek megfelelıen kell dimenzionálni Más szervereken nagy az igények ingadozása Pl. különleges eseménykor: apple.com (iphone piacra kerülésekor) A szervert nem célszerő bıvíteni A lekérdezések kiszolgálása viszont fontos Hétfı Kedd Szerda 22
Terhelés kiegyensúlyozás a WWW-n Hétfı Kedd Szerda Az idıbeli ingadozás rendszerint csak egyes szervereken okoz egyszerre túl nagy terhelést A B A B A B (Kommerciális) megoldás Szolgáltatók ilyen esetre Cache-szervereket kínálnak A sok lekérés ezekre a szerverekre kerül elosztásra A B Hogyan? 23 Web Caching Leighton, Lewin, et al. STOC 97 Consistent Hashing and Random Trees: Distributed Caching Protocols for Relieving Hot Spots on the World Wide Web Dinamikus hash-függvények Web-Cache segítségével osztják el az adatokat a szervereken, az ingadozó terhelésnek megfelelıen Leighton és Lewin (MIT) megalapítják Akamai-t 1997-ben 24
Kiindulási szituáció Terhelés kiegyensúlyozás nélkül: Minden böngészı (web-kliens) ugyanattól web-szervertıl tölti le a web-oldalt Web-szerver Web-oldalak Elıny: Egyszerő request Hátrány: A szervert a legrosszabb esethez kell dimenzionálni Web-kliensek 25 Web-hely Caching Az egész web-helyet több web-cachebe másoljuk (replikáljuk) A böngészı a web-szervertıl kér egy oldalt Web-szerver átirányítja a kérést a web-cache-hez (redirect) Web-cache elküldi a web-oldalt Web-szerver redirect Web-cache Elıny: Az oldalak elosztásának jó kiegyensúlyozása Hátrány: szők keresztmetszet: Redirect Nagy overhead a teljes web-hely replikálása miatt Web-kliensek 26
Proxy Caching Minden web-helyet egyes (néhány kevés) Web-cache-re osztunk el Csak az elsı kérés éri el a web-szervert A linkek az oldalon web-cachebeli oldalakra mutatnak Ezután a kliens csak a web-cache-ben szörfözik Elıny: Nincs szők keresztmetszet Hátrány: Terhelés kiegyensúlyozás csak implicit lehetséges Magas követelmények a caching algoritmussal szemben Web-szerver redirect Link 2. 3. request 1. 4. Web-kliens Webcache 27 Követelmények a caching algoritmussal szemben 1. Balance oldalak egyenletes elosztása 2. Dynamik új web-cache-szerver hatékony hozzáadása/elvétele?? new X X 3. Views a web-kliensek a webcache-ek különbözı halmazait látják 28
Forgalom az Interneten http://www.cachelogic.com/research/2005_slide07.php# 29 Mi az hogy Peer-to-Peer hálózat? Mi nem Peer-to-Peer hálózat? Egy Peer-to-Peer hálózat nem kliens-szerver hálózat! Definíció Peer-to-Peer egyenértékő partnerek közötti kapcsolatot jelenti P2P = Peer-to-Peer (Internet slang) Egy Peer-to-Peer hálózat egy számítógépek közötti kommunikációs hálózat az Interneten melyben nincs központi irányítás és megbízható partner sem. 30
Napster Shawn (Napster) Fanning 1999 júniusában adta közre az azóta legendás P2P hálózat beta verzióját Cél: File-sharing rendszer Valójában: Zene cserebörze 1999 ıszén Napster volt az év download-ja A zene ipar szerzıi jog pere 2000 júniusában 2000 végére kooperációs szerzıdés Fanning és Bertelsmann Ecommerce között jogilag is biztosított 2001 óta Napster egy kommerciális file-sharing rendszer 31 Hogy mőködik Napster? Kliens-szerver struktúra A szerver tárolja Indexet meta-adatokkal File-név, dátum, stb... Táblázatot a résztvevı kliensek közötti kapcsolatokról Táblazatot a résztvevı kliensek minden file-járól Lekérdezés (query) Kliens a file-nével kérdezi le a szervert A szerver megkeresi a megfelelı résztvevıket, akik tárolják a file-t A szerver válaszol, ki tárolja a file-t A lekérdezı kliens a file-t a tulajdonos klienstıl tölti le file 32
Gnutella - Történet Gnutella 2000 márciusában tette közzé Justin Frankel és Tom Pepper a Nullsoft-tól Nullsoft 1999 óta AOL tulajdona File-Sharing rendszer Cél: mint Napster-nél De teljesen központi struktúrák nélkül dolgozik 33 Gnutella File lekérdezés: a szomszédoknak küldi a kliens azok a saját szomszédjaikhoz küldik amíg hop-ok egy megadott számát nem lépi túl TTL mezı (time to live) Protokoll Query A file lekérdezése TTL hop-ig továbbítódik (restricted flooding) Query-hits A válasz a fordított útvonalon Ha file-t megtalálta, direkt letöltés a tulajdonos klienstıl file 34
Peer-to-Peer összefoglalás Peer-to-Peer hálózatok forgalmának túlnyomó része szerzıi jogokat sért De vannak legális felhasználások: Internet-telefon, pl. Skype Szoftver elosztás (pl. Suse disztribúció BitTorrent által) Gyorsabb letöltés, szerverek tehermentesítése Group Ware néhány Group Ware rendszer Peer-to-Peer-t használ GNU-licence alatti szoftver cseréje Privát filmek, fényképek, dokumentumok cseréje Peer-to-Peer hálózatok illegális haszonélvezıit az utóbbi idıben egyre inkább büntetıjogilag üldözik 35