Az előadás letöltése folymat van. Kérjük, várjon

Az előadás letöltése folymat van. Kérjük, várjon

Mobil hálózatok és alkalmazásaik tehetséggondozó program

Hasonló előadás


Az előadások a következő témára: "Mobil hálózatok és alkalmazásaik tehetséggondozó program"— Előadás másolata:

1 Mobil hálózatok és alkalmazásaik tehetséggondozó program
Dr. Bilicki Vilmos Szoftverfejlesztési Tanszék

2 A mai előadás témája HTTP XMPP Web Szolgáltatások P2P

3 HTTP(Hyper Text Transfer Protocol)
Kliens-szerver modell Állapotmentes Alkalmazásszintű protokol Megbízható átviteli közegre épül Új fogalmak: Webszerver Proxy szerver

4 HTTP 1.1 Kapcsolatorientált Részletes proxy specifikáció 80-as port
URI (Universal Resource Identifier)

5 URI Rfc2396 <protokol>:<protokol specifikus rész>
<protokol>://<azonosítás><elérési- útvonal>?<Lekérdezés> US-ASCII Más karaterek: %

6 URL HTTP specifikus: URL (Universal Resource Locator)
http : // host [ : ] [ port ] [ abszolút-útvonal [ ? query ] ] Relatív útvonal

7 HTTP üzenetek Kérés (request) Válasz (response) kezdő sor fejléc sorok
üres sor az üzenet tartalma

8 Kérés üzenetek(kezdő sor)
GET OPTIONS POST HEAD TRACE

9 GET GET / HTTP/1.1 Host: sirius.cab.u-szeged.hu HTTP/1.1 200 OK
Date: Thu, 13 Dec :55:37 GMT Server: Apache/ (Unix) PHP/4.0.6 Transfer-Encoding: chunked Content-Type: text/html 8a0 <HTML> <HEAD> <TITLE>Irinyi Kabinet</TITLE> </HEAD> <body... </ADDRESS> </BODY> </HTML>

10 OPTIONS OPTIONS /cgi-bin/szotarE HTTP/1.1 Host: sirius.cab.u-szeged.hu
HTTP/ OK Date: Mon, 17 Dec :05:54 GMT Server: Apache/ (Unix) PHP/4.0.6 Content-Length: 0 Allow: GET, HEAD, POST, OPTIONS, TRACE

11 HEAD HEAD /teszt/ HTTP/1.1 Host: wilma.cab.u-szeged.hu HTTP/1.1 200 OK
Server: Microsoft-IIS/5.0 Cache-Control: max-age=86400 Expires: Tue, 18 Dec :47:33 GMT Content-Location: Date: Mon, 17 Dec :47:33 GMT Content-Type: text/html Accept-Ranges: bytes Last-Modified: Mon, 17 Dec :03:32 GMT ETag: "fc50cd9c387c11:88e" Content-Length: 83

12 POST POST /teszt/ HTTP/1.1 Host: wiliam.u-szeged.hu adat: research

13 TRACE TRACE / HTTP/1.1 Host: wiliam.u-szeged.hu Adat: research
HTTP/ OK Server: Netscape-Enterprise/6.0 Date: Sun, 23 Dec :49:45 GMT Content-type: message/http Content-length: 62

14 Egyéb CONNECT DELETE PUT

15 Fejléc mezők Host If-Modified-Since User-Agent Adat: research …

16 Válasz üzenet Állapot mező Válasz fejléc mezők Erőforrás
erőforrás fejléc erőforrás tartalom

17 Állapot mezők 1xx – Információs 2xx – Siker 3xx – Átirányítás
4xx – Kliens oldali hiba 5xx – Szerver oldali hiba

18 Válasz fejléc WWW-Authenticate Age Cache-Control Expires Content-Type

19 MIME Text Plain Html Image Audio Video Application

20 Biztonság HTTP -> magas rendelkezésre állás Más szempontok:
adatok titkossága adatok megbízhatósága egyének azonosítása

21 PKI és társai Kivonat (Hash) Titkos kulcsú titkosítás (Symetric)
Nyilvános kulcsú titkosítás (Asymetric) Digitális aláírás (Digital Siganture) Digitlis tanúsítvány (Digital Certificate) Tanúsítvány hatóság (Certificate Authority)

22 Kivonat Tetszőleges bemenet Pl.: 128 bites kimenet
A bemeneten egy kis változtatás is megváltoztatja a kimenete is Nem visszafejthető

23 Szimmetrikus kulcsú titkosítás
Közös kulcs Gyors Kulcselosztás?

24 Aszimmetrikus kulcsú titkosítás
Nyilvános kulcs Titkos kulcs Lassú

25 Digitális aláírás

26 Digitális tanúsítvány

27 Tanúsítvány hatóság

28 Biztonsági megoldások

29 TLS (Tranport Layer Security)
Új réteg bevezetése: Netscape SSL Microsoft PCT IETF TLS Megbízhatóság, Adatvédelem, Azonosítás Definiálja a csatorna paramétreinek egyeztetési módszerét Viszony/Kapcsolat

30 TLS felosztása I. TLS Handshake Session identifier Peer certificate
Compression method Cipher spec Master secret Is resumable

31 TLS felosztása II. TLS Record Fragmentálás Tömörítés Tartalom védelem
Titkosítás

32 Kapcsolat felépítés Hello üzenetcsere Rejtjelezési paraméter csere
Bizonyítvány csere Főkulcs Adatcsere

33 Azonosítási eljárások
Basic Authentication Digest Authentication

34 Basic Authentication UID Password Realm
HTTP/ Authorization Required

35 Példa HTTP/1.1 401 Authorization Required
Date: Fri, 28 Dec :24:32 GMT Server: Apache/ (Unix) PHP/4.0.6 X-Powered-By: PHP/4.0.6 WWW-Authenticate: Basic realm="My Realm" Transfer-Encoding: chunked Content-Type: text/html Authorization: Basic base64(user:pass)

36 Hátrányok Nem biztonságos Használata mellőzendő, veszélyes
Lehallgatható Nem titkosított Nincs megoldva a jelszó elosztása Használata mellőzendő, veszélyes Ha mégis akkor: Csak generált jelszavakkal szabad

37 Digest Authentication
challenge-response nonce URI Idő Véletlen szám … Kivonatoló függvény (hash) MD5 Nehéz visszafejteni

38 A kérés paraméterei Challenge Domain Nonce Opaque Stale Algorithm
Qop-int

39 A válasz paraméterei username digest-URI message-qop cnonce
nonce-count response

40 message-qop Nincs Auth Auth-int A1 = username-value:realm-value:passwd
A2 = Method:digest-uri-value response = "KD(H(A1),nonce:H(A2))" Auth response = "KD(H(A1),nonce:nonce-count:cnonce:qop:H(A2))" Auth-int A2 = Method:digest-uri-value:H(entity-body)

41 Példa WWW-Authenticate: Digest realm="testrealm@host.com",
HTTP/ Unauthorized WWW-Authenticate: Digest qop="auth,auth-int", nonce="dcd98b7102dd2f0e8b11d0f600bfb0c093", opaque="5ccc069c403ebaf9f0171e9517f40e41" Válasz: Authorization: Digest username="Mufasa", uri="/dir/index.html", qop=auth, nc= , cnonce="0a4f113b", response="6629fae49393a c4ef1",

42 Előnyök Titkosított jelszó Szótáras támadás védhető(cnonce)
Megvéd a replay támadásoktól Biztosít bizonyos adatbiztonságot

43 Hátrányok Nem mond semmit a jelszó kiosztásáról
Nincs titkosítva a tartalom Limitált integritás védelem A nonce használatának teljesítménybeni korlátai vannak

44 Felhasznált technológia
Szimmetrikus kulcsú titkosítás Gyors Probléma a közös kulcs eljuttatása Aszimmetrikus (nyilvános) kulcsú titkosítás Lassú Nem jelent problémát a kulcs publikálása Digitális Aláírás Digitális Bizonyítvány

45 Új megoldások Két megközelítési mód: Új réteg: Módosított HTTP TLS
SHTTP

46 SHTTP Felülről kompatibilis a HTTP protokollal
Üzenetek becsomagolása CMS,MOSS Digitális aláírás MAC nonce Kulcssere és titkosítás Üzenet integritás és küldő azonosítás Aktualitás ellenőrzése Sok titkosító algoritmus

47 SHTTP Hasonló üzenet mint a HTTP protokollnál: Kérés:
Secure * Secure-HTTP/1.4 Válasz: Secure-HTTP/ OK

48 TLS (Tranport Layer Security)
Új réteg bevezetése: Netscape SSL Microsoft PCT IETF TLS

49 XMPP RFC 3920 Extensible Messaging and Presence Protocol (XMPP)
Jabber open-source community Közel valósidejű üzenetcsere IM, Jelenlét alkalmazások Nincs különösebb architektúra kötöttsége de jelenleg kliens-szerver Szerver: Kapcsolat menedzsment Útvonal választás Adat tárolás (legtöbb implementáció) Átjátó (IRC, SIP, SMS, …)

50 XMPP Címzés Aszinkron adatcsere TLS/SASL használat
URI- JID : Aszinkron adatcsere XML folyamok <stream> </stream> Egyirányú to, from, id, xml:lang, … XML strófa, versszak (stanza) Önnáló XMl elem <presence> <iq> TLS/SASL használat

51 XMPPP Több mint 50 bővítmény: Jingle
User Geolocation: building,… street User Mood: afraid, …, in_love User Activity: drinking, … traveling User Tune: atrist, title, … Jingle P2P kapcsolatok menedzselése Jelzés, adat elkülönítése Felépítése: Viszony menedzsment Tartalom kezelés Étvitel kezelés

52 XMPP - Jingle

53 Web Szolgáltatások Bevezető Web Szolgáltatás szabványok SOAP WSDL
JAX-RPC JEE – WS UDDI WS profilok WS-Security WS-Interoperability Web Szolgáltatás architektúrák

54 Bevezető Trendek Szolgáltatás Orientált Architektúra Jellemzői
Integráció Üzleti folyamatok teljes automatizálása (EDI) Szolgáltatás Orientált Architektúra Szolgáltatás gyártó Szolgáltatás közvetítő Szolgáltatás fogyasztó Jellemzői A kliens nem a szerverhez, hanem a szolgáltatáshoz kötődik Az új és a régi komponensek blokkokba vannak csomagolva ezek web szolgáltatáson csatlakoznak A komplex alkalmazásokon belül az üzleti logika el van különítve Szolgáltatásokat futásidőben lehet cserélgetni A csatolások konfigurációs fájlokban vannak definiálva

55 A SOA fő elemei XML SOAP WSDL WSIL UDDI

56 A web szolgáltatások jellemzői
Önhordó Önleíró A weben keresztül van publikálva, fellelve és használva Moduláris Nyelv független Nyílt szabvány Lazán csatoltak Dinamikusak Programozható hozzáférést biztosítanak

57 Története Web sikersztori H2A működik A2A nem igazán
1999: Microsoft XML alapú protokol: SOAP IBM, Microsoft, Ariba: WSDL Ma több mint 40 ajánlás/specifikáció

58 Web szolgáltatás szabványok

59 Alapvető szabványok SOAP: Simpe Object Access Protocol
Struktúrált és típusos XML dokumentumok cseréjét írja le elosztott környezetben Önhordó, önleíró Alapesetben állapotmentes, egyirányú kommunikáció WSDL: Web Service Description Language A web szolgáltatást mind absztrakt végpontot definiálja A műveletek és az üzenetek is megfelelő absztrakcióval vannak leírva Az aktuális üzentekre építő protokoll pedig konkrét szolgáltatásokat specifikál UDDI: Universal Description, Discovery, and Integration Web szolgáltatások felderítése és publikálása

60 Leírás és felderítés WS-Inspection: Web Services Inspection Language (WSIL) UDDI nélküli felderítés WS-Discovery Többesküldés alapú web szolgáltatás felderítés WS-MetadataExchange Üzenetváltás a kezdeti infócseréhez (XSD,WSDL, WS-Policy) WS-Policy Szíbályok leírása (azonosítás, QoS, …) WS-PolicyAssertions Általános követelmény gyűjtemény (szöveg kódolás, …) WS-PolicyAttachment Kapcsolatok leírása DNS Endpoint Discovery (DNS-EPD) DNS alapú felderítés

61 Üzenetküldés ASAP: Asynchronous Services Access Protocol
SOAP Messages with Attachments (SwA) MIME kezelés SOAP Message Transmission Optimization Mechanism Szelektív kódolás WS-Addressing WS-Notification Publish/Subscirbe WS-Eventing WS-Enumeration WS-MessageDelivery WS-ReliableMessaging WS-Resources WS-Transfer

62 Menedzsment WSDM: Web Services Distributed Management WS-Manageability
SPML: Service Provisioning Markup Language WS-Provisioning

63 Üzleti folyamatok BPEL: Business Process Execution Language WS-CDL
WS-CAF

64 Tranzakciók WS-Coordination (WS-COOR) WS-Transaction
WS-AtomicTransaction (WS-AT) WS-BusinessActivity (WS-BA)

65 Biztonság XML-Encryption XML-Signature WS-Security
WS-SecureConversation WS-SecurityPolicy WS-Trust WS-Federation SAML: Security Assertion Markup Language

66 SOAP XML alapú protokol
Envelope Header Body Független az átviteli protokolltól (HTTP, JMS, FTP, …) Jelenleg HTTP (WS-I Basic Profile 1.0) Üzenetváltás minta (Message Exchange Pattern - MEP) Egyirányú/Kétirányú

67 SOAP elemei Boríték (Envelope) Egy vagy több fejléc (Header)
Ez tárolja a többit Vezérlő információk Cím, … Egy vagy több fejléc (Header) Vezérlő információk (QoS) Ki és hogyan kezelje az üzenetet? Egy törzs (Body) Üzenet azonosítás Paraméterek Mit csináljunk? Kódolási szabályok Megadja, hogy az adatot hogyan sorosítsuk Programozási nyelv független adat séma (XSD)

68 Fejlécek Általános és flexibilis mechanizmus a SOAP üzenetek kiterjesztésére Nem szükséges a felek között előzetes egyeztetés Előre definiált fejléc attribútum: SOAP köztes entitás A fejlécek egy része ezekhez az entitásokhoz szól SOAP-ENV:actor A hibák kezelése a MEP-től függ (mustUnderstand fault WS-I BP 1.0) A fejlécek viszik át a biztonság, tranzakció, titkosítás, .. infókat is Hordozhatnak kliens vagy projekt specifikus információkat is

69 WS-I konformancia fejléc

70 Törzs (Body) A végső címzettnek szóló információcserére szolgáll
A Body elemen belül található XML elemek a test bejegyzések (body entries) A bejegyzések egymástól függetlenül vannak kódolva A legtöbb esetben a body tartalma: Üzenet neve Egy referencia a szolgáltatás példányra Egy vagy több paraméter

71 Hibakezelés A SOAP definiál egy body elemet erre a célra
Fault element (nulla vagy egy lehet belőle) faultcode soapenv:Client soapenv:Server sopaenv:VersionMismatch soapenv:MustUnderstand faultstring Ember által értelmezhető szöveges leíárs faultactor Opcionális, a hiba forrását adja meg (URI) A köztes elemeknek ezt kötelező kitöltenie detail Alkalmazás specifikus mező, opcionális

72 Adatmodell Nyelvfüggetlen absztrakció Egyszerű XSD típusok
Összetett típusok Struktúrák Tömbök (benne lehet struktúra vagy tömb, …) A SOAP-ENC névtérben specifikálják az elemeket A SOAP csak azt mondja meg, hogy hogyan lehet az adattípusokat megadni, azt nem hogy ezek milyenek

73 Tömbök

74 Kommunikációs stílusok
Dokumentum Üzenet orientált stílus Alacsonyabb absztrakciós megoldás Az in paraméter egy XML dokumentum A válasz bármi (vagy semmi) RPC Szinkron kommunikáció Részei A távoli objektum címe (URI) A metódus neve Paraméterek Opcionális fejléc adatok

75 Kódolás/Üzenetváltás módok
A sorosítás, visszaállítás módját adja meg Programozás nyelv független! Típusai: SOAP encoding (SOAP adat modell elemek) Literal (XSD) – ezt támogatja a WS-I basic profile Literal XML (nem használják) Üzenetváltás módok Document/Literal – a legjobb megoldás Java és nem Java alkalmazások együttműködésére RPC/Literal – Java – Java RPC/Encoded – régi java implementációk Document/Encoded – Nem használt

76 SOAP megvalósítások

77 WSDL XML alapú Megadja, hogy
Mit csinál a web szolgáltatás Hol tudjuk elérni Hogyan lehet meghívni A web szolgáltatás biztosítója megadhatja: A nevét A protokollt és a kódolást Tipus információkat (műveletek, paraméterek, adattípusok)

78 A WSDL szerkezete Types – adattípus definiciók tárolója. Pl.: XSD
Message – Az átküldött adat absztrakt típusos megadása Port type – egy vagy több prot által támogatott absztrakt műveletek megadása Operation – a szolgáltatás által támogatott akció leírása (kimenő/bejövő üzenet esetleg hiba) Binding – Konkrét protkol és adatformátum egy adott prot típushoz. (protokol név, meghívási mód, szolgáltatás id, kódolás) Service – összetratozó portok listája Port – egy végpont kötés – hálózati cím összekapcsolása

79 types

80 message Egy vagy több logikai részt tartalmaz Egy interakciót ír le

81 Port type Absztrakt műveletek és a felhasznált absztrakt üzenetek halmaza Műveletek Egyirányú Kérés-Válasz Megszólítás-Válasz Értesítés

82 Bindings Protokol specifikus általános csatoló adatok (pl.: SOAP kommunikációs stílus)

83 Service definition/port definition
Szolgáltatás Összefog több portot egy név alatt Port Egy konkrét végpont egy konkrét címmel

84 WSDL csatolás típusok Kiegészítő fejlécek
SOAP – binding, operation, body, fault, address, header, headerfault HTTP – get/post (address, binding) MIME – több részből állhat, … (content, multipartRelated, body, mimeXml) EJB JMS

85 JAX-RPC Java API for XML based RPC
Programozás model a SOAP alapú alkalmazásokhoz Leképezést biztosít a Java és a WSDL között Java alkalmazás könnyedén kommunikálhat nem Java alkalmazással RPC alapon

86 JAX-RPC

87 WS kliensek Statikus csonk WSDL-ből generált csonkokat használ
Szolgáltatás végpont interfész (SEI) Szolgáltatás interfész (hogyan kapjuk meg a SEI-t) Szolgáltatás kereső osztály (hozzáférés a SEI-hez) Kapcsolódó csonk (az aktuális hívásokat kezeli)

88 WS kliensek Dinamikus proxy A web szolgáltatás cím változhat

89 WS kliensek Dinamikus hívó interfész A WSDL változhat
Nem használ proxy fájlokat hanem a WSDL-t használja futás időben

90 Adat típus csatolás Java-XML, XML-Java Egyszerű típusok automatikusan
Egyes adatstruktúrákra is adott

91 Web Szolgáltatások JEE környezetben
WSEE Hogyan valósítsuk meg a web szolgáltatásokat J2EE környezetben? Kliens Szerver Web konténer EJB konténer Kezelők Egy feldolgozási láncban kezelhetik a SOAP fejléceket Tranzakció (a helyi tranzakciókat felfüggesztik)/Biztonság nincs (HTTPS, …) (?)

92 UDDI Univerzális Leírás, Felderítés és Integráció
Segítségével egyszerűbbek a B2B tranzakciók UDDI felépítés Üzleti entitás Üzleti szolgáltatás Kötő minta tModel Takszonómia Publákációs megjegyzések

93 Web Szolgáltatás biztonság
Tipikus problémák Megoldások TLS-SSL WS-Security Üzenet szintű biztonsági beállítások Vég-Vég megoldás

94 WS-Security

95 Példa

96 WS-I Web Szolgáltatások együttműködése
A web szolgáltatás elvileg azért jó mert platform független , … Sok SOAP megvalósítása Sok szabványosítási testület (OASIS, IETF, W3C, …) WS-I együttműködési minimum specifikálása WS-I profilok Implementációs javaslatok Basic Profile v1.1 (pl.: document/literal vagy RPC/literal kötelező, SOAP/HTTP kötés, HTTP POST metódus, …) Attachements Profile v1.0 Simple SOAP binding Profile v1.0 Basic Security Profile Minta alkalmazások Teszt eszközök

97 WS architektúra

98 MEP

99 SOAP modell

100 Központosított vs. Elosztott rendszerek
Erőforrás fellelés Lehet közponosított, elosztott Két lépés: Fellelő szolgáltatás felfedezése Keresés Példák (DNS, Jini keresés, Jxta randevú pont, JNDI, UDDI, LDAP,…) Egyébb pl.: Google Erőforrás rendelkezésre állás Központosított : Web szerver (weboldal - IP cím) Elosztott: absztrakt erőforrás leíró Erőforrás kommunikáció Közvetített kommunikáció – egy központi szerveren keresztül érhető el (JMS, ) Pont-pont kommunikáció

101 P2P rendszerek Egyenrangú felekből áll ARPANET Kései kötés
DNS bejegyzés örök PC kliensek? Kései kötés Definició: A P2P olyan alkalmazás csoport mely felhasználja az Internet végein fekvő erőforrásokat. Minden egyed kliensként és szerverként is működhet Nincs központi menedzsment

102 P2P kategóriák Központosított Közvetített Elosztott
A csomópontok egy központi szerverhez csatlakoznak Közvetített Egy központon közvetíti egymásnak a feleket, de közvetlenül kommunikálnak Elosztott Minden fél egyenrangú Bármelyik csomópontnál lehet csatlakozni

103 Problémák/Megoldások
NAT Tűzfal Megoldások Fedő (Overlay) hálózat

104 Példák

105 Skálázhatóság Szociális analógia
1995 Stanley Milgram 200 millió címzett 160 levél különböző helyeken egy címzettel 42 érkezett meg Az átlagos ugrás szám 5.5 volt Nagyon csomópontos Elosztott rendszerrel is ezt kellene elérni

106 P2P rendszerek Hasonló a szociális hálózathoz
Gyakran Ad-Hoc módon szerveződik Megbízhatatlan környezet, csomópontok. Mérőszámai: Meddig tart egy keresés? Mennyi sávszélességet igényel egy keresés? Mennyi ugrást kell megtennie a csomagnak a társ csomópontig? Amennyiben elveszek/hozzáadok egy csomóponot a hálózat hibatűrő marad? Mennyire skálázható a rendszer?

107 P2P rendszerek Kihívások: Kommunikáció Keresés Terhelés elosztás
A felhasználók többsége DSL vonalat használ Nem optimális útvonal választás (IP réteg feletti réteg) Keresés Nincs központi szerver Párhuzamos keresések Terhelés elosztás Elméletben egyenrangú felek Gyakorlatban 70% csak felhasználó

108 P2P topológiák Központosított Gyűrű Hierarchikus Decentralizált
Kliens - Szerver Gyűrű Hierarchikus Gyors keresés Decentralizált Hibatűrő Lassú keresés Központosított/Gyűrű Web szerver farm Központosított/Központosított N rétegű alkalmazás Központosított/Decentralizált Üzembiztos Relatív gyors keresés KaZaA, FastTrack

109 Gnutella Receptek cseréjére lett kifejlesztve Elosztott
Servent Szomszédok felderítése Protokoll: Ping Pong Query QueryHit Push Gnutella2 Hub-ok Keresés – séta Kivonattal azonosított fájlok

110 Freenet Cenzúra kijátszó hálózat
Fre Üzenő fal Weboldalak A felhasználók sávszélességet és merevlemezt osztanak meg Minden titkosítva van Csak kulcs alapján lehet keresni Az egyes csomópont nem határozhatja meg, hogy mit tárol yTMFgtZjcP2ge-AYPAgM/sites//

111 Hogyan kezdődött? Egy killer alkalmazás: Naptser
Ingyen zene az Interneten keresztül Alap ötlet: Osszuk meg az egyes felhasználók tartalmát, tárolóját és a sávszélességét Internet

112 Model Minden felhasználó egy fájlhalmazt oszt meg
Mindenki mindenki fájlát eléri, letölti

113 Probléma Hol az az adott fájl E F D E? C A B

114 Problémák Skálázhatóság: Több százezer gép?
Dinamizmus: a gépek jönnek, mennek

115 Napster Közponosított trendszer, működő gépekhez köti a zeneszámokat
Hogyan találjunk meg egy zeneszámot? Keresni kell az index-ben, a troló gépet kell visszaadni Ideális esetben a legközelebbit ftp hozzáférés Előnyök: Egyszerűség, egyszerű fejlett kereső megoldásokat implementálni az index rendszer tetején Hátrányok: Robosztusság, skálázhatóság

116 Napster: Példa m5 E m6 E? F D m1 A m2 B m3 C m4 D m5 E m6 F m4 E? m5 C

117 Gnutella Elosztott fájl fellelés Ötlet: elársztásos keresés
Hogyan keressük meg a fájlt: Minden szomszédnak küldünk egy kérdést A szomszédok hasonló módon továbbküldik A gép amely rendelkezik a válasszal visszaküldi azt Előnyök: Teljesen decentralizált, robosztus Hátrányok: Nem skálázható, az egész hálózat leültethető a kereséssel (TTL)

118 Gnutella: Példa Felépítés: m1 szomszédai m2 és m3; m3 szomszédai m4 és m5;… m5 E m6 E E? F D m4 E? C A B m3 m1 m2

119 Freenet További célok: Architektúra:
A publikáó anonimitása, biztonsága Támadásoknak ellenálló – egy harmadik fél nem tudja leállítani a hálózatot, a hozzáférést egy adott fájlhoz Architektúra: Minden fájl egyedi azonosítóval azonosított Minden gép a fájlok egy csoportját tárolja és egy forgalomirányítótáblát tart karban az egyes kérések irányítására

120 Adat struktúra … … Minden csomópont azonos algoritmust futtat
id – fájl azonosító next_hop – mások csoópont amely az adott id-t tárolja file – a fájl Továbbítás: Minden üzenet tartalmazza a fájl id-t amire hivatkozik Amennyiben lokálisan megvan akkor megáll Ha nincs akkor a legközelebbi id alapján keres és a következő ugrásnak továbbítja id next_hop file

121 Kérés API: file = query(id); Adott fájl id keresés beérkezése seté
Megvan-e lokálisan Igen akkor visszaadja Ha nem akkor továbbküldi Megjegyzés: Minden lekérdezés TTL-lel rendelkezik (a kereső elrejtése érdekében): TTL véletlenszám adott keretek között Amikor TTL=1 akkor véges valószínűséggel továbbítják Hurkok kezelése, minden csomópont naplózza, hogy mi ment át rajta Amikor a fájlt visszaküldik akkor az útvonal mentén gyorsítótárazzák

122 Más megoldások Cél: Mindég találjuk meg a fájlt
Absztrakció: elosztott kivoinat tábla DHT insert(id, item); item = query(id); Note: item can be anything: a data object, document, file, pointer to a file… Megoldások CAN, Chord, Kademlia, Pastry, Viceroy, Tapestry, etc

123 Content Addressable Network (CAN)
Minden csomópont egy egyedi azonosító egy d dimmenziós térben Cél Többszázezer csomópntra is skálázható A csomópontok gyors váltakozását is elviseli Tulajdonságok A forgalomirányító tábla mérete O(d) Garantálja, hogy a fájllegfeljebb d*n1/d megtalálható

124 CAN példa Space divided between nodes All nodes cover the entire space
Each node covers either a square or a rectangular area of ratios 1:2 or 2:1 Example: Node n1:(1, 2) first node that joins  cover the entire space 7 6 5 4 3 n1 2 1 1 2 3 4 5 6 7

125 Példa (2 dimmenzió): Node n2:(4, 2) joins  space is divided between n1 and n2 7 6 5 4 3 n1 n2 2 1 1 2 3 4 5 6 7

126 CAN példa Node n2:(4, 2) joins  space is divided between n1 and n2 7
6 n3 5 4 3 n1 n2 2 1 1 2 3 4 5 6 7

127 CAN példa Nodes n4:(5, 5) and n5:(6,6) join 7 6 n5 n4 n3 5 4 3 n1 n2 2
1 2 3 4 5 6 7

128 CAN példa Nodes: n1:(1, 2); n2:(4,2); n3:(3, 5); n4:(5,5);n5:(6,6)
Items: f1:(2,3); f2:(5,1); f3:(2,1); f4:(7,5); 7 6 n5 n4 n3 5 f4 4 f1 3 n1 n2 2 f3 1 f2 1 2 3 4 5 6 7

129 CAN példa Each item is stored by the node who owns its mapping in the space 7 6 n5 n4 n3 5 f4 4 f1 3 n1 n2 2 f3 1 f2 1 2 3 4 5 6 7

130 CAN lekérdezés Minden csomópont ismeri a d térbeli szomszédjait
Továbbítja a célhoz legközelebbi szomszédjának Példa: n1 f4-et kérdezi 7 6 n5 n4 n3 5 f4 4 f1 3 n1 n2 2 f3 1 f2 1 2 3 4 5 6 7

131 Hiba kezelés Egyszerű hibák Komplex meghibásodások
Tudja a szomszéd szomszédjait Ha a csomópont kiesik akkor a szomszédhoz fordul A szomszédok egyike átveszi a zónáját Komplex meghibásodások A szomszédok tömeges meghibásodása Célzott elárasztás a szomszédok felderítésére Remélhetőleg ritkán jelentkezik

132 Chord Minden csomópontnak egy id egy egydimmenziós térben Célok
Több százezer csomópontot kezelhet Kezeli a csomópontok gyors váltakozását Tulajdonságok A forgalomirányító tábla mérete O(log(N)) Garantálja, hogy a fájlt megtalálják O(log(N)) lépésben

133 Adatstruktúra Az azonosító tér pl.: 0..2m
Minden csomópont karbantartja: Mutató tábla Az i bejegyzés az n csomópont mutató tábláblájában a n + 2i szomszédjára mutat Előző csomópont Az id azonsítójú elem az id azonosítójú csomópont utáni csomópontban tárolódik

134 Chord Példa Succ. Table i id+2i succ 0 2 1 1 3 1 2 5 1 1 7 6 2 5 3 4
Assume an identifier space 0..8 Node n1:(1) joinsall entries in its finger table are initialized to itself Succ. Table i id+2i succ 1 7 6 2 5 3 4

135 Chord Példa Node n2:(3) joins Succ. Table i id+2i succ 0 2 2 1 3 1
i id+2i succ 1 7 6 2 Succ. Table i id+2i succ 5 3 4

136 Chord Példa Nodes n3:(0), n4:(6) join Succ. Table i id+2i succ 0 1 1
Succ. Table i id+2i succ 1 7 Succ. Table i id+2i succ 6 2 Succ. Table i id+2i succ 5 3 4

137 Chord Példa Succ. Table Items i id+2i succ 7 0 1 1 1 2 2 2 4 6
Nodes: n1:(1), n2(3), n3(0), n4(6) Items: f1:(7), f2:(2) i id+2i succ 7 Succ. Table Items 1 7 i id+2i succ 1 Succ. Table 6 2 i id+2i succ Succ. Table i id+2i succ 5 3 4

138 Lekérdezés Succ. Table Items i id+2i succ 7 0 1 1 1 2 2 2 4 6
Upon receiving a query for item id, a node Check whether stores the item locally If not, forwards the query to the largest node in its successor table that does not exceed id Succ. Table Items i id+2i succ 7 Succ. Table Items 1 7 i id+2i succ 1 query(7) Succ. Table 6 2 i id+2i succ Succ. Table i id+2i succ 5 3 4

139 Csomópont csatlakozás
Node n joins the system: n picks a random identifier, id n performs n’ = lookup(id) n->successor = n’

140 Amikor n’’ éretsítést kap erről
Állapot karbantartás Periodikusan Megkérdezi az utódját n’, az elődjéről n’’ Amennyiben n’’ ő ezek között van akkor n->successor = n’’ értesíti n’’ that hogy ő az elődje Amikor n’’ éretsítést kap erről Amenniyben n n’’ elődje után van akkor n’’->predecessor = n Rovosztusságf növelés Minden csomópont utód listát tart karban (általában 2*log N méretűt)

141 CAN/Chord optimalizáció
RTT alapú súlyozás A szomszéd kiválasztásánál az RTT alapján dönt Csökkenti az útvonal késleltetést Több fizikai csomópont egy virtuális mögött Csökkenti az útvonal hosszát(kevesebb virtuális csomópont) Csökkenti az útvonal késleltetst (RTT alapú vrituális csomópont választás) Nagyobb hibatűrés (a virtuálsi csomópont elemeiből csak egynek kell működnie)

142 Konklúzió DHT kritikus fontosságú
CAN: O(d) állapot, O(d*n1/d) távolság Chord: O(log n) állapot, O(log n) távolság Egyszerűek

143 Jxta Középréteg Elemek Randevú pontok Csövek
Szabványos elemek a P2P hálózat használatához, létrehozásához Platform független Nyelv független Hálózat független Elemek Csomópontok felderítése Önszervezés Szolgáltatások hirdetése, fellelése Kommunikáció Monitorozás Randevú pontok Csövek


Letölteni ppt "Mobil hálózatok és alkalmazásaik tehetséggondozó program"

Hasonló előadás


Google Hirdetések