Elosztott adatbázisok és peerto-peer. Simon Csaba

Hasonló dokumentumok
Hálózatba kapcsolt erőforrás platformok és alkalmazásaik. Simon Csaba, Maliosz Markosz TMIT 2017

Peer-to-Peer (P2P) hálózatok

Hálózatba kapcsolt erőforrás platformok és alkalmazásaik. Simon Csaba TMIT 2017

Készítette: Weimann András

Számítógépes Hálózatok Felhasználói réteg DNS, , http, P2P

Felhasználói réteg. Számítógépes Hálózatok Domain Name System (DNS) DNS. Domain Name System

A számítástechnika gyakorlata WIN 2000 I. Szerver, ügyfél Protokoll NT domain, Peer to Peer Internet o WWW oftp opop3, SMTP. Webmail (levelező)

Hálózatba kapcsolt erőforrás platformok és alkalmazásaik. Simon Csaba TMIT 2017

10: Peer-To-Peer Hálózatok I. HálózatokII, 2007

PEER-TO-PEER HÁLÓZATOK

Számítógépes Hálózatok 2012

Elosztott rendszerek

Hálózati Technológiák és Alkalmazások. Vida Rolland, BME TMIT október 29. HSNLab SINCE 1992

Mobil Peer-to-peer rendszerek

Felhasználói réteg. Számítógépes Hálózatok Domain Name System (DNS) (RFC 821/822) Domain Name System

Hálózati Technológiák és Alkalmazások

Hálózati réteg. WSN topológia. Útvonalválasztás.

Hálózatok. Alapismeretek. A hálózatok célja, építőelemei, alapfogalmak

Információ és kommunikáció

Elosztott adatbázisok és peerto-peer. Simon Csaba

INTERNET. internetwork röviden Internet /hálózatok hálózata/ 2010/2011. őszi félév

Az Internet. avagy a hálózatok hálózata

Hálózati alapismeretek

7.1. Kommunikáció az Interneten 1

Újdonságok Nexus Platformon

Titkosítás NetWare környezetben

Számítógépes Hálózatok ősz 2006

Organizáció. Számítógépes Hálózatok ősz Tartalom. Vizsga. Web-oldal

Elosztott adatbázisok és peerto-peer. Simon Csaba

Felhő alapú hálózatok (VITMMA02) Hálózati megoldások a felhőben

Az internet az egész világot behálózó számítógép-hálózat.

Hálózatok Rétegei. Számítógépes Hálózatok és Internet Eszközök. TCP/IP-Rétegmodell. Az Internet rétegei - TCP/IP-rétegek

Organizáció. Számítógépes Hálózatok Gyakorlati jegy. Vizsga. Web-oldal

Hálózatba kapcsolt erőforrás platformok és alkalmazásaik. Simon Csaba TMIT 2017

Hálózati Technológiák és Alkalmazások. Vida Rolland, BME TMIT november 12. HSNLab SINCE 1992

IP anycast. Jákó András BME TIO

Előnyei. Helyi hálózatok tervezése és üzemeltetése 2

Hálózati Technológiák és Alkalmazások. Vida Rolland, BME TMIT november 5. HSNLab SINCE 1992

Rétegezett architektúra HTTP. A hálózatfejlesztés motorját a hálózati alkalmazások képezik. TCP/IP protokoll készlet

Információ és kommunikáció

Hálózati rendszerek adminisztrációja JunOS OS alapokon

FORGALOMIRÁNYÍTÓK. 6. Forgalomirányítás és irányító protokollok CISCO HÁLÓZATI AKADÉMIA PROGRAM IRINYI JÁNOS SZAKKÖZÉPISKOLA

Windows rendszeradminisztráció és Microsoft szerveralkalmazások támogatása. 3. óra. Kocsis Gergely, Kelenföldi Szilárd

Hálózati alapismeretek

Számítógépes alapismeretek

Flash és PHP kommunikáció. Web Konferencia 2007 Ferencz Tamás Jasmin Media Group Kft

BEVEZETÉS AZ INTERNET ÉS A WORLD WIDE WEB VILÁGÁBA. Kvaszingerné Prantner Csilla, EKF

V2V - routing. Intelligens közlekedési rendszerek. VITMMA10 Okos város MSc mellékspecializáció. Simon Csaba

COMET webalkalmazás fejlesztés. Tóth Ádám Jasmin Media Group

Molnár Gábor Zalatnay Zsolt

IP alapú távközlés. Virtuális magánhálózatok (VPN)

API tervezése mobil környezetbe. gyakorlat

INTERNETES KERESÉS. Szórád László Óbudai Egyetem TMPK

webalkalmazások fejlesztése elosztott alapon

Riak. Pronounced REE-ahk. Elosztott adattároló eszköz. Molnár Péter

P2P hálózatok. Párhuzamos és Elosztott Rendszerek II. Készítette: Dr. Mileff Péter Miskolci Egyetem Általános Informatikai Tanszék

Számítógépes munkakörnyezet II. Szoftver

Teljesítménymodellezés

Windows rendszeradminisztráció és Microsoft szerveralkalmazások támogatása. Kocsis Gergely, Supák Zoltán

SSL elemei. Az SSL illeszkedése az internet protokoll-architektúrájába

Az adatfeldolgozás és adatátvitel biztonsága. Az adatfeldolgozás biztonsága. Adatbiztonság. Automatikus adatazonosítás, adattovábbítás, adatbiztonság

Alkalmazás rétegbeli protokollok:

TestLine - zsoltix83 hálozat 1 Minta feladatsor

Hálózati ismeretek. Az együttműködés szükségessége:

Beállítások 1. Töltse be a Planet_NET.pkt állományt a szimulációs programba! A teszthálózat már tartalmazza a vállalat

Internet Protokoll 6-os verzió. Varga Tamás

Számítógépes hálózatok GY

Hálózati réteg. Feladata: a csomag eljusson a célig Több útválasztó Ez a legalacsonyabb rétek, mely a két végpont

ECDL Információ és kommunikáció

Fábián Zoltán Hálózatok elmélet

Elektronikus információbiztonsági oktatási koncepció

KOPI. KOPI Online Plágiumkereső és Információs Portál DSD. Pataki Máté MTA SZTAKI. Elosztott Rendszerek Osztály

III. előadás. Kovács Róbert

Hálózati architektúrák és Protokollok GI 8. Kocsis Gergely

Két típusú összeköttetés PVC Permanent Virtual Circuits Szolgáltató hozza létre Operátor manuálisan hozza létre a végpontok között (PVI,PCI)

Multiprotocol encapsulation (RFC1483) - IETF Classical IP over ATM (RFC1577) - IETF LAN Emulation (LANE) - ATM Forum Multiprotocol over ATM (MPOA) -

Elosztott rendszerek

Hálózati architektúrák laborgyakorlat

Párhuzamos és Grid rendszerek

Harmadik gyak. Hálózatok, Internet

Modbus kommunikáció légkondícionálókhoz

Bevezető. PoC kit felépítése. NX appliance. SPAN-Proxy

Peer-to-peer alapú elosztott fájlrendszerek

Ahol a kvantum mechanika és az Internet találkozik

Tartalom. Router és routing. A 2. réteg és a 3. réteg működése. Forgalomirányító (router) A forgalomirányító összetevői

Ne lépjen ide be senki, aki nem ismeri a geometriát (Platón, i.e.)

Félreértések elkerülése érdekében kérdezze meg rendszergazdáját, üzemeltetőjét!

IT BIZTONSÁGTECHNIKA. Tanúsítványok. Nagy-Löki Balázs MCP, MCSA, MCSE, MCTS, MCITP. Készítette:

Hálózatok építése és üzemeltetése

Hálózati architektúrák és Protokollok GI Kocsis Gergely

Tűzfal megoldások. ComNETWORX nap, I. 30. ComNETWORX Rt.

{simplecaddy code=1005}

Hálózati architektúrák és Protokollok GI 7. Kocsis Gergely

1. Gyakorlat: Telepítés: Windows Server 2008 R2 Enterprise, Core, Windows 7

Address Resolution Protocol (ARP)

Ethernet/IP címzés - gyakorlat

IPv6 bevezetés a Műegyetem hálózatán. Jákó András

Hálózati architektúrák és Protokollok PTI 5. Kocsis Gergely

Kommunikáció. 3. előadás

Számítógépes hálózatok

Átírás:

Elosztott adatbázisok és peerto-peer (P2P) Simon Csaba simon@tmit.bme.hu

Miről lesz szó? Mi a P2P? Kell-e nekünk és miért? Struktúrálatlan P2P ----------- DHT ----------- Elosztott P2P adatbázisok 2

P2P

Mi a P2P? P2P - napjaink egyik legforróbb témája Alkalmazások Kazaa minden idők legtöbbször letöltött alkalmazása > 300 millió letöltés Az Internet forgalom 50-70% P2P Nehezen mérhető, az eredmények nem megbízhatóak FastTrack, edonkey, imesh > 7 millió felhasználó (2004. február 8) Felhasználói statisztikák: http://www.slyck.com/ 4

P2P (II) Kutatás 3rd IEEE International Conf. on P2P Computing P2P Tutorial és P2P szekció Infocom, Sigcomm, stb. P2P Research Group IRTF (Internet Research Task Force) http://www.irtf.org/charters/p2prg.html Internet2 http://p2p.internet2.edu/index.html Stanford, Berkeley, stb. 5

Definíció Peer to Peer (P2P): egy alkalmazáscsoport mely kihasználja az Internet peremén levő felhasználók erőforrásait: Tárolás merevlemez kapacitás CPU számítási kapacitás Tartalom adatok, informaciók megosztása Bármilyen más megosztható erőforrás, szolgáltatás, funkció Egy alkalmazás rétegbeli Internet a fizikai Internet topológia fölött 6

Definíció (II) Peer-to-peer network = egyenrangú hálózat Peer = veled egyenrangú felhasználó Kommunista rendszer mindenki egyenlő A kliens-szerver architektúra ellentéte 7

Ádámtól Ádámig A. Oram, editor. Peer-to-Peer : Harnessing the Power of Disruptive Technologies. O'Reilly & Associates, 2001. 8

Jellemzők Minden résztvevő peer egyszerre kliens és szerver Nincs központi vezérlés Nincs központi adatbázis Senkinek nincs globális képe a hálózatról A rendszer globális működése a lokális kölcsönhatások eredménye 9

Jellemzők (II) Bármilyen megosztott erőforrás elérhető bárki által Akkor férhetsz mások erőforrásaihoz, ha megosztod a sajátaidat A peer-ek függetlenek egymástól A peer-ek és a kapcsolatok alapvetően megbízhatatlanok Gyakori be- és kilépés 10

Mire jó? P2P fájlcsere Sokminden más: Elosztott adatbázisok Elosztott számítás (distributed computing) Elosztott hálózati szuperszámítógépek (grid computing) Instant Messaging CSCW (Computer Supported Cooperative Work) Vezetéknélküli ad-hoc hálózatok Alkalmazás rétegbeli multicast szolgáltatás E-commerce, e-business alkalmazások Stb, stb, stb... 11

Miről lehet beszélni P2P kapcsán? Gnutella WinMX ICQ BearShare FastTrack imesh Pastry Freenet Yoid MP2P CAN edonkey DirectConnect OverCast Jxta Jabber Morpheus Chord Blubster Shareaza @SETI Grokster RockitNet ebay Napster OceanStore emule BitTorrent SoulSeek Mojo Nation IRC Farsite Piolet Tapestry LimeWire Kazaa 12

Pontosabban... Visszatekintés korabeli P2P rendszerek Usenet, DNS, Telnet, FTP az Internet átalakulása az új generációs P2P rendszerek megjelenése A P2P hálózatok sajátosságai: Szolgáltatás felderítés, topológia felépítés Keresés, útvonalválasztás Hozzáférhetőség, megbízhatóság Biztonsági kérdések 13

És még... P2P architektúrák: Központosított rendszerek Napster Elosztott, sík rendszerek Gnutella Hierarchikus topológiák Kazaa Más fájlcserélő alkalmazások BitTorrent, stb. Elosztott hash táblákra (DHT) alapuló keresők: CAN, Chord, Pastry, Tapestry 14

Továbbá... Alkalmazás rétegbeli multicast P2P hálózatokon A csoportos kommunikáció sajátosságai A hálózati rétegbeli multicast rövid attekintése Alkalmazás rétegbeli multicast Háló-alapú (mesh-first) módszerek Narada, Gossamer Fa-alapú (tree-first) módszerek HMTP, TBCP, Yoid, Overcast, ALMI Implicit módszerek CAN-Multicast, Scribe, Bayeux, NICE Pletykára alapuló járványszerű átvitel SCAMP, SWIM, Bi-modal multicast P2P 15

P2P és elosztott adatbázisok

Hypothesis End 2 End arguments in network community Implement a feature on upper layer as much as we can to have easier deployment for Internet Fast development of applications Moore law in computer hardware Relatively slow change in Internet core Not too many industrial researchers who work on core networking. (http://www.icir.org/floyd/talks/nsf-jan03.pdf)

Key problem: Location and Routing Hard problem in a system like this: Locating and messaging to resources and data Goals for a wide-area overlay infrastructure Easy to deploy Scalable to millions of nodes, billions of objects Available in presence of routine faults Self-configuring, adaptive to network changes Localize effects of operations/failures

The promise of P2P computing Reliability: no central point of failure Many replicas Geographic distribution High capacity through parallelism: Many disks Many network connections Many CPUs Automatic configuration Useful in public and proprietary settings

20

DHT implementation challenges 1. Scalable lookup 2. Balance load (flash crowds) 3. Handling failures 4. Coping with systems in flux 5. Network-awareness for performance 6. Robustness with untrusted participants 7. Programming abstraction 8. Heterogeneity 9. Anonymity 10. Indexing Goal: simple, provably-good algorithms Chord

Pond JNI for crypto, SEDA stages, 280+kLOC Java

Strukturálatlan P2P 23

Visszatekintés A P2P nem egy új ötlet A kezdeti Internet peer-to-peer volt ARPANET - Advanced Research Projects Agency Network 1969 US Department of Defense (DoD) University of California at Los Angeles (UCLA) Stanford Research Institute (SRI) University of California Santa Barbara (UCSB) University of Utah Különböző operációs rendszerek, egyenrangú felhasználók 24

A kezdeti hálózat 25

70-es évek újabb és újabb egyetemek, kutató laboratóriumok csatlakoznak TCP/IP kidolgozása Telnet, FTP 26

ARPANET - 1977 27

80-as évek 1983. 01. 01 IP az ARPANET-en 1984 MILNET (DoD) 1986 NSFNET NSF National Science Foundation 1990 Az ARPANET bezár 28

MILNET - 1989 29

Irodalom A History of The Internet: 1962 1992 http://www.computerhistory.org/exhibits/internet_history/ Hobbes' Internet Timeline http://www.zakon.org/robert/internet/timeline/ The Request for Comments Reference Guide http://www.ietf.org/rfc/rfc1000.txt History of Arpanet http://www.dei.isep.ipp.pt/docs/arpa.html 30

A kezdeti hálózat Egyenrangú felhasználók Bármely két gép képes volt kommunikálni egymással Egy nyított és szabad rendszer Tűzfalak nem léteztek a 80-as évek végéig Egyetemi kutatók játszótere Biztonsági gondok nem léteztek... 31

Az első P2P alkalmazások Telnet, FTP Nem vérbeli P2P alkalmazások Szigorúan nézve, kliens/szerver rendszerek Egy Telnet kliens bejelentkezik egy szerverre Egy FTP kliens fájlokat küld / tölt le egy FTP szerverről De... Bárki lehetett kliens is, szerver is Szimetrikus rendszer 32

Usenet A mai P2P alkalmazások nagypapija... 1979 Központi vezérlés nélkül fájlokat másol gépek között Tom Truscott, Jim Ellis University of North Carolina, Duke University 3 gépből álló hálózat Unix-to-Unix Control Protocol (UUCP) Egy UNIX gép automatikus felhívott egy másik gépet Fájlokat cseréltek Megszüntették az összeköttetést Levelek, fájlok, programok cseréje 33

Usenet (II) Csoportok különböző témakörök körül Newsgroups A helyi felhasználók a helyi newsgroup szerverre csatlakoznak A szerverek periodikusan kicserélik információikat Egy felhasználó üzenete minden érdeklődőt elér A szerverek egy P2P hálózatot alkotnak 34

Usenet (III) A hálózat ma hatalmas Több ezer szerver Több tízezer témakör Több millió felhasználó A rendszert skálázhatóva kellett tenni Egy szerver csak bizonyos csoportokra iratkozik fel A szerverek csak az üzenetek fejlécét továbbítják Ha valaki kiváncsi, lekéri a teljes üzenetet Korlátozott időtartamú tárolás 35

Usenet - jellemzők Elosztott rendszer Nincs központi vezérlés Egy új témacsoport létrehozása Demokratikus szavazás alapján Javaslat küldése a news.admin csoportnak Vita, szavazás Bárki szavazhat e-mail-ben Ha elfogadják, a szerverek elkezdik terjeszteni Megengedett anarchia Szavazás nélkül nyitható egy alt.* csoport 36

Usenet Network News Transport Protocol (NNTP) TCP/IP alapú Optimalizált elárasztás Útvonal az üzenetek fejlécében Egy szerver csak egyszer kap meg egy üzenetet Sok új P2P rendszerből hiányzik Gnutella 37

Usenet fájlcsere Eredetileg csak text fájlok cseréje Bináris fájlok átalakíthatóak Gond túl hosszú fájlok 700 Mb film 15 millió sor Szerver korlátok 10.000 soros üzenetek Több részre vágott fájlok 38

DNS Domain Name System Hierarchikus információs rendszer Fájlmegosztásra találták ki (1983) hosts.txt 39

IP útvonalválasztás IP útvonalválasztók (routerek) peer-ek Felfedezik és fenntartják a topológiát Egy router nem kliens és nem szerver Folyamatosan kommunikálnak egymással Függetlenek egymástól 40

Aztán robbant a Net Robbant a felhasználók száma Tudományosból kereskedelmi hálózat Biztonsági intézkedések váltak szükségessé Tűzfalak Megjelentek az otthoni felhasználók Egy modemes csatlakozó nem volt többé egyenrangú Elfogytak az IP címek Dinamikus IP címek, NAT Megjelent a Web Új kommunikációs szokások (webkliens webszerver) 41

Mégis P2P? Újabb fordulat a kommunikációs szokásokban Elkülönül a szerző és a forgalmazó Nem csak a saját maguk által készített adatokat (pl. weboldal) osztják meg a felhasználók MP3 mérföldkő a P2P tekintetében Lehetővé válik a zenefájlok cseréje DivX kódolás 1999-ben megjelenik a Napster 42

Napster 43

Napster Kronológia 1999 május Shawn Fenning és Sean Parker megalapítják a Napster-t 1999 december a RIAA elindítja az első pert a Napster ellen Recording Industry Association of America (RIAA) 2000 április Előbb a Metallica, majd Dr. Dre perlik a Napster-t 2000 július A bíróság felszólítja a Napster-t a bezárásra 2001 február 12 A bíróság a megosztott fájlok szűrésére kötelezi a Napster-t 2001 február 20 1 milliárd dolláros ajánlat a lemezcégeknek 2001 március 2 Bevezetik a szűrőket, a felhasználók elpártolnak 44

Napster Módosítás fizetős változat $9,95 havi bérlet 99 egy fájl http://www.napster.com/ Apple itunes http://www.apple.com/itunes/ 45

46

Boldog zenészek? P2P hálózatok 47

Egy CD költségei Forgalmi adó - 1000 Ft Nyereség - 540 Ft Jogdíj - 900 Ft Kulturális járulék - 60 Ft Gyártás - 300 Ft Design - 100 Ft Stúdió és marketingköltség - 800 Ft Terjesztési díj - 300 Ft Kiskereskedelmi árrés - 1000 Ft P2P hálózatok 48

A Napster működése Nem igazi P2P rendszer Központi szerver tárolja a megosztott fájlok listáját Keresés a központi szerveren Közvetlen letöltés a peer-ek között 49

Példa Napster szerver 1. Bejelentkezés (Alíz, Fájl lista) 2. Keresem a ricky.mp3 fájlt 3. Alíztól kérd Alíz 4. Közvetlen letöltés Barbara P2P hálózatok 50

A Napster jellemzői Hátrányok: Rossz skálázhatóság Szerverfarmon belüli terheléselosztás A szerver szűk keresztmetszet Könnyen perelhető Titkosság hiánya Freeriding lehetőség Előnyök Gyors keresés Ismert topológia 51

DC++ 52

DirectConnect Központosított rendszer Több száz hub Korlátozott belépés Megosztott tartalom mérete (több Gb) IP címtartomány Hozzáférési sebesség Neo Modus DC http://www.neo-modus.com/ 53

DC++ Nyílt forrású (open source) kliens DirectConnect hálózatot használja Előnyök DC++ Barátságosabb GUI Több hub-os párhuzamos csatlakozás, keresés Spyware, adware kiiktatva http://www.indx.f2s.com/index.html http://www.broadbandreports.com/faq/dc 54

edonkey Központosított hálózat 286 magán szerver A szerverek nem kommunikálnak egymással Több szerverre lehet feliratkozni egyszerre server.met a szerverek IP címlistája Folyamatosan kell frissíteni Elosztott letöltés Megosztáskor egy hash-t (azonosítót) csatol a fájl-hoz A szerver tárolja a hash-eket Kereséskor egy listát kapunk a lehetséges peer-ekről A fájl darabjait külön helyekről, párhuzamosan tölthetjük le 55

edonkey Kliens X ricky.mp3 (abcdefg) ricky.mp3 (d) Kliens Y ricky.mp3 (abc) Kliens Z ricky.mp3 (fg) ricky.mp3 (g) Kliens W ricky.mp3 () http://www.thedonkeynetwork.com/ 56

emule Népszerű edonkey kliens Open source változat Nincs spyware, adware http://www.emule-project.net/ 57

Gnutella 58

Gnutella Kronológia 2000 március 14 Justin Frankle, Nullsoft (winamp) Eredetileg receptek cseréje volt a cél GNU General Public License - Nullsoft web szerver Pár óra után az AOL letiltotta Több száz példányt már letöltöttek Kód-visszafejtés (reverse engineering) segítségével Több új kliens jelent meg 59

Gnutella Elosztott rendszer, központi szerver nélkül (v0.4) Elárasztás alapú keresés Minden peer... Megoszt állományokat Továbbítja a szomszédai felé a kapott Query csomagokat Válaszol a Query üzenetekre, ha rendelkezésére áll a keresett fájl 60

Gnutella Keresés Válasz 61

Gnutella fejléc Byte 0 15 : Message ID Egyéni azonosító V 0.6 Byte 8: 11111111, Byte 15: 00000000 Byte 16 : Function ID Az üzenet tipusa Byte 17 : TTL (Time To Live) Hányat ugorhat még Byte 18 : Hops Hányat ugrott már Byte 19 22 : Payload Length A fejléc utáni adatrész hossza Max csomag hossz: 4 kb 62

Üzenettipusok Function ID 0x00 Ping : peer-ek keresése a gnutella hálózaton 0x01 Pong : válasz egy Ping-re IP cím, port, megosztott fájlok száma, megosztott könyvtár mérete 0x80 Query : keresés indítása Keresési kritérium (szöveg), minimum sávszélesség 0x81 Query Hit : válasz találat esetén IP cím, port, sávszélesség, fájl név, fájl hossz 0x40 Push : feltöltés kérése egy tűzfal mögül Kért fájl adatai, cél IP cím/port http://rfc-gnutella.sourceforge.net/developer/stable/ 63

Előnyök Robusztusság, nincs szűk keresztmetszet Egyszerűség Jogilag nehezen támadható Nincs perelhető központi entitás 64

Hátrányok Az elárasztás nem skálázható megoldás TTL-t használva (valamilyen szinten) áthidalható Nem minden szomszédnak küldjük tovább az üzeneteket A Message ID alapján, egy üzenetet csak egyszer továbbít egy peer Egy peer többször megkaphat egy üzenetet 65

Többszöri kézbesítés 66

Hátrányok (II) Nagy hálózati forgalmat generál Példa: 4 link L / peer TTL = 7 Max csomag szám: 2 TTL i= 0 L ( L 1) i 26240 csomag 67

Hátrányok (III) A keresés időtartama nem behatárolható A keresés sikerének valószínűsége nem ismert A topológia ismeretlen, az algoritmusok nem tudják felhasználni A peer-ek hírneve nincs figyelembe véve Freeriding... 68

Freeriding Adar, Huberman, Freeriding on Gnutella, 2000 Sept. http://www.firstmonday.org/issues/issue5_10/adar/index.html 24 órás mérések: a kliensek 70%-a nem oszt meg semmit a válaszok 50%-át a peer-ek 1%-a szolgáltatja Társadalmi, és nem technikai probléma Következmények A rendszer hatákonyságának romlása (skálázhatóság?) A rendszer sebezhetőbb Központosított Gnutella jogi problémák 69

Freeriding (II) Mérések elemzése A felhasználók nagy hányada freerider A freerider-ek egyenlően en oszlanak el a hálózatban Bizonyos peer-ek olyan fájlokat osztanak meg, melyek senkit sem érdekelnek 70

Gondok és megoldások Freeloading: A Gnutella hálózat elérhető volt weboldalakról Webes keresés, letöltés, megosztás nélkül Megszakadó letöltések Hosszú letöltési idők a modemes hozzáférés miatt Csak rövid ideig futtaták a gnutella kliens-t (keresés ideje) Megoldás: Nálam van, de foglalt vagyok. Próbalkozz kesőbb 2000 végén letöltések 10%-a sikeres 2001 a letöltések 25%-a sikeres Megoldás? 71

Gondok és megoldások Kis méretű elérhető hálózat 2000: átlagosan 400-800 elérhető peer Modemes felhasználók kis sávszélesség a keresések továbbítására routing black holes Megoldás: Peer hierarchia kialakítása Csatlakozási preferenciák Nagy sávszélességű peer-ek előnyben Nagyméretű megosztott állománnyal rendelkezők előnyben Gnutella v0.6 és más hierarchikus rendszerek 72

Irodalom http://www.gnutella.com/ http://www.limewire.com/developer/ P2P hálózatok 73

KaZaa 74

KaZaa A jelenleg legelterjedtebb P2P alkalmazás A FastTrack hálózatot használja 4 millió felhasználó 3,000 terabyte megosztott adat > 50% az Internet forgalmának Leginkább az USA-ban népszerű A RIAA legnagyobb célpontja 30-40% csökkenés 2003 végén 75

Kronológia Niklas Zennström ötlete 2001 márciusa - Jaan Tallinn, Ahti Heinla és Priit Kasesalu FastTrack, KaZaa - fejlesztés Észtországban Holland cég megbízása KaZaa BV 2001 Sharman Networks megveszi a FastTrack-et Székhely: Vanuatu - sziget a Csendes Óceánban Titkos igazgatótanács, titkos részvényesek Kazaa.com LEF Interactive, Ausztrália LEF Liberté, Egalité, Fraternité Alkalmazottak mindenhol a világban, nehezen fellelhetők 76

KaZaa vs. RIAA Nemzetközi macska-egér játék Az amerikai jog nem érvényes máshol Nincs központi entitás, nincs kit perelni Megoldások? (Amerikai) felhasználókat perelni? Denial-of-Service (DoS) támadások Vírusok a rendszerben Hash linkekkel elkerülhetőek Weben keresztül megszerezhető hash-ek 77

Architektúra Hierarchikus architektúra A peer-ek egy supernode-hoz csatlakoznak supernode = supernode, hypernode A supernode-ok egyenrangúak A supernode ismeri a hozzá tartozó peer-ek IP címeit, és a megosztott fájl-ok listáját Mini Napster/Gnutella hub 78

Architektúra (II) Titkos forráskód Kód visszafejtés: peer supernode kommunikáció A supernode supernode kommunikáció alig ismert Egy supernode ismer sok más supernode-ot Majdnem teljes háló (complete mesh) Bárki lehet supernode Számítási kapacitás, sávszélesség Automatikus kiválasztás Kb 10.000 supernode Kb 200-500 peer/supernode 79

Supernode választás Lehetséges supernode-ok IP címei az alkalmazás letöltésekor Csatlakozás után egy működő supernode keresése Aktuális supernode lista letöltése Ping 5 supernode felé Választás a legkisebb RTT alapján RTT = Round Trip Time Ha a supernode meghal, új választás 80

Keresés Kulcsszó alapján A felhasználó beállítja max. hány találatot vár (x) A keresést a supernode-hoz küldi Ha a supernode-nál van x találat, vége Ha nincs, a kérést a supernode más supernode-oknak küldi Ha van x találat, vége Ha nincs, újabb supernode-ok kapják meg a kérést Valószínüleg a kezdeményező supernode indítja az újabb keresést (nem rekurzív) Válaszok hullámokban 81

Kazaa Keresem a ricky.mp3 fájlt B-nek megvan Közvetlen letöltés B A 82

Párhuzamos letöltés Ha több találat, a felhasználó párhuzamos letöltést választhat A fájl több részre osztva HTTP byte-range header alapján különbözö részek különböző peer-ektől Új szerver peer választása automatikusan, ha az előző meghal 83

Előnyök Skálázható Egy központi szerver helyett több ezer supernode Csak a supernode-ek között történik elárasztás Sorbanállás kezelése Előnyt élveznek azok, akiktől sokat töltenek le Hátrány a kis sávszélességgel rendelkezőknek lassan kerülnek kiszolgálásra Jogilag nehezen támadható 84

Más hierarchikus rendszerek FastTrack Kazaa Lite http://www.k-lite.tk/ imesh http://imesh.com/ Grokster http://www.grokster.com/ P2P hálózatok 85

Más hierarchikus rendszerek Gnutella v0.6 LimeWire http://www.limewire.com Shareaza http://www.shareaza.com/ BearShare http://www.bearshare.com/ Morpheus http://www.morpheus.com/ 86

BitTorrent

BitTorrent 2002 Bram Cohen, San Francisco Python kód, open source Népszerű nagyméretű adatok elosztott letöltése Nincs saját keresőmotor Webes keresés Nincsenek megosztott könyvtárak Letöltés közben feltöltés mások számára 88

BitTorrent Hagyományos webes keresés.torrent fájl Tracker Hash információ Egy tracker szerver címe A csatlakozó peer-nek megad egy véletlenszerű listát a lehetséges peer-ekről Default 50 Altalaban egy peer 20-40 peer-el tart kapcsolatot (peer lista) Statisztika Ha 20 alá csökken, újra a trackerhez fordul A Peer-ek idıkozonkent jelentenek a Trackernek Hány letöltés Hány peer-nél van a teljes fájl Hány peer-nél vannak fájl részek 89

BitTorrent Seed (mag) A kezdeti forrás Egy peer akinél a teljes allomány megtalálható Leech (pioca) A peer akinél a letöltés folyamatban van Swarm (raj) Egy adott fájl esetében a seed-ek és leech-ek halmaza együtt A fájl több részre osztva 64 KB és 4 MB kozott Ha túl nagy, kisebb a torrent, de nem annyira hatékony Általában 256 KB Minden rész hash információja a.torrent fájlban SHA-1 A részek tovabbi alrészekre osztva 90

Alapelvek Párhuzamos letöltés és feltöltés Leech resistance piócák kiszűrése Minél nagyobb a feltöltési sávszélesség, annál több peer-től tölthetsz le részeket párhuzamosan Megbízhatóság maximizálása Csökkenteni a sikertelen letöltések esélyét Bizonyos részek eltünnek, a fájl használhatatlan A működés ezen alapelveknek van alárendelve 91

Hogyan működik? Egy rész teljes letöltése Ha egy rész egy alrészét letöltjük, a következő alrészek előnyben részesülnek más részek alrészeivel szemben Gyors letöltést biztosít egy rész számára Ha a rész teljes, a peer ellenőrzi a hash-t Ha OK, jelzi a Tracker-nek A rész feltölthetővé válik mások számára 92

Mit töltsek? A legritkább legelőbb (rarest first) Előnyök Azt a részt tölti le előbb, mellyel a legkevesebb peer rendelkezik Növeli a letöltés globális sikerét Ha az a néhány peer (esetleg az egyedüli seed) meghal, továbbra is elérhetőek lesznek a ritka részek Biztosítja a további feltöltési kéréseket Ha egy ritka résszel rendelkezem, mások tőlem fogják azt kérni Növelem a letöltési sebességem Növeli a globális letöltési sebességet A seed-től külön részeket kér le minden peer Ugyanazt a részt nem kell többször feltöltenie a seed-nek Különösen előnyös ha lassú seed 93

Mit töltsek? Véletlenszerű első (4) rész Ameddig nincs mit feltölteni tőlem, letölteni is nehezen tudok kevés peer-t ismerek Cél egy részt minél gyorsabban megszerezni Egy ritka részt lassan tudok letölteni Kevés peer rendelkezik az alrészekkel Ha letöltöm, sokan kérik majd, nő a letöltési sebességem Egy népszerű rész letöltése gyors, de nem olyan hasznos Kevesen fogják majd tőlem kérni Nem tudom növelni a letöltési sebességem Megoldás: véletlenszerű választás 94

Mit töltsek? Choking/unchoking blokkolas/feloldas Minden peer korlatolt szamu peer-nek tolt fel Alapertelmezesben 4 slot Azokat oldom fel, akiknek a legnagyobb a feltöltési sebessége felém és kérnek tőlem valamit 10 másodpercenként újraszámolom a 4 leggyorsabbat Optimistic unchoking 30 másodpercenként feloldok egy véletlen peert is aki kért tőlem valamit Hátha nagy sebességgel tudnék letölteni tőle a jövőben Maximum 5 upload slot Az új peereket háromszor nagyobb valószínűséggel Bootstrap mechanizmus 95

Tulajdonságok Lassú indulás Változó letöltési sebesség Függ a feltöltés alatt álló résszel rendelkezők számától, feltöltési sebességétől Sikeres letöltés után illik az alkalmazást tovább futtatni Ekkor a peer seed-ként működik Jogilag könnyen támadható A tracker szolgáltatása, IP címe nyilvános Felelősségre vonható Trackerless BitTorrent 96

BitTorrent vs. edonkey Hasonló elveken működnek Részekre osztott fájlok Párhuzamos letöltés A BitTorrent-ben csak egy fájl-t töltünk le egyszerre Nagyobb a rendelkezésre álló sávszélesség minden peer-nél (Elvileg) gyorsabb letöltés Az edonkey-ban nincs piócaszűrés A feltöltésből nincs igazán haszna a peer-nek A BitTorrent-ben nincs keresőmotor A.torrent fájlt weben kell megkeresni Jogilag könnyen támadható A tracker szolgáltatása, IP címe nyílvános Felelősségre vonható 97

Egyszerű interfész P2P hálózatok 98

BitTorrent linkek Hivatalos oldal http://bitconjurer.org/bittorrent Protokoll specifikáció FAQ http://bitconjurer.org/bittorrent/protocol.html http://www.dessent.net/btfaq/#what Torrent-ek http://www.suprnova.org/ 2004 végén bezárták http://isohunt.com/ 159k tracker, 6.8mill aktív torrent, 161mill fájl, 12.2 PB adat, 25.8mill peer 99

irate Bay Az egyik legnépszerőbb weboldal a neten 2003 novemberben indult 2006. május 31-én a svéd rendőrség lefoglalja a szervereket A per 3 napig offline a weboldal 2009. április 17-én a szolgáltatás működtetőit (Peter Sunde, Fredrik Neij, Gottfrid Svartholm, Carl Lundstrom) 1 év börtönre és 30mill SEK (~700mill HUF) büntetésre ítélik Fellebbezés, a bírót elfogultsággal vádolják 4 millio regisztrált (2009 dec.) felhasználó > 25mill peer (2008 nov.) A letöltéshez nem kell regisztrálni csak a kommentekhez és a feltöltéshez Pirate Party 7.1 % a svéd EU parlamenti választásokon 100

Anonimitás elosztott módon P2P 101

Anonimitás Első lépés Követők, lehallgatók összezavarása Nem tudják, hogy ki is tölt le P2P módon együttműködnek a felhasználók relay 102

Tor P2P Tor 103

Tor P2P 104

Tor 105

Anonimitás elosztott módon P2P 106

Anonimitás Második lépés Követők, lehallgatók összezavarása P2P rendszerben történik a routolás is Adatot is szétosztjuk ELOSZTOTT ADATBÁZIS Igazából egy elosztott cache Keresés 107

Freenet Ian Clarke, végzős hallgató University of Edinburgh Teljesen elosztott, egyenrangú hálózat A peer-ek tárolófelületet és sávszélességet ajánlanak fel a rendszernek Nem tudják a rendszer mit tárol ott Minden adat kódolva van Freenet földrajzilag elosztott nagyméretű virtuális merevlemez, névtelen (anonymous) hozzáféréssel

Freenet Biztosítja a szerzők és az olvasók anonimitását Nem lehet megállapítani az adatok forrását és célállomását Az adatokat kulcsok azonosítják A peer-ek nem tudják mit tárol a rendszer a gépükön Nem (vagy nehezen) vonhatóak felelősségre A keresést abba az irányba továbbítja, ahol a legvalószínűbb a találat Nincs központi szerver (Napster) Nincs elárasztás (Gnutella) A fájlok azonosítása tárolási helyüktől független

Freenet Az adatok dinamikus elosztása a rendszerben A hálózati topológia (gráfstruktúra) folyamatosan változik Új kapcsolatok jönnek létre a peer-ek között Az állományok vándorolnak a rendszerben Dinamikus, adaptív útválasztás

Freenet fejléc UniqueID (64 bit) Azonosítja az üzenetet A hurkok elkerülésére szolgál Hops To Live Depth Source Még hányszor lehet továbbküldeni a csomagot Hányat ugrott már a küldés óta Az üzenet forrását azonosítja

Üzenet típusok HandshakeRequest Kapcsolatot kezdeményez egy peer-el HandshakeReply Válasz a HandshakeRequest-re DataRequest DataReply A megadott kulcsnak megfelelő adatot kéri Válasz a DataRequest-re A közbeeső peer-ek cache-ben tárolják az adatot A következő hasonló kérésre már tudnak közvetlenül válaszolni RequestFailed Sikertelen keresés esetén

Üzenet típusok InsertRequest Megegyezik a DataRequest-el Azt ellenőrzi, hogy a megadott kulcsnak megfelelő fájl megtálalható-e a rendszerben Ha igen, egy DataReply érkezik Ha nem, egy InsertReply üzenet DataInsert Kérés a megadott adat és kulcs tárolására a rendszerben Az InsertRequest útvonalán halad Ott tárolja ahol majd keresni fogják A közbeeső peer-ek cache-ben tárolják az adatot

Data Store Minden peer-nek tudnia kell... Merre továbbítani egy kérést Merre továbbítani egy választ Meddig tárolni egy adott dokumentumot

Data Store Lista tetején friss, gyakran kért fájlok Kulcs, adat, származási cím Lista alján régi, ritkán kért fájlok Kulcs, elérhetőségi cím Ha egy kulcs lefele mozog a listán, egy idő után az adatok törlődnek

Keresés A peer-ek által tárolt kulcsok alapján Korlátozott számú ugrás, de nagyobb mint a Gnutella esetében Tipikusan 500 Az üzenetek azonosítója alapján szűri a hurkokat Egy kérés érkezésekor Ha már kezelte a kérést (hurok), visszaválaszol hogy a küldő próbálja másfelé továbbítani ( next-best choice ) Ha rendelkezik az állománnyal, válaszol Ha nem, továbbküldi a keresett kulcshoz legközelebb álló kulcsnak megfelelő cím felé

Keresés (II) Ha egy válasz érkezik A kulcs és az adat bekerül a cache-be A legrégebbi kulcs kikerül a data store-ból Találat esetén az állomány küldése nem pont-pont közötti A keresés útvonalán terjed vissza Segíti a cache működését Növeli az anonimitást

Keresés - példa Start DataRequest DataReply RequestFailed Data

Keresés Az elején a Data Store üres A peer véletlenszerűen választja ki merre küldje a keresési, illetve adatbeviteli kéréseit Az adatok eloszlása is véletlenszerű lesz A keresés (útválasztás) minősége idővel javul Lavina effektus Egy tárolt fájl alapján a peer bekerül más peer-ek adatbázisába, a megfelelő kulccsal Hasonló kulcsok iránti kérések elkezdenek érkezni A válaszok bekerülnek a cache-be Egyre több hasonló kulcsú állományt tárol A peer nem döntheti el milyen kulcstartományra specializálódik A többi peer által tárolt kulcsoktól függ Növeli a rendszer ellenőrizhetetlenségét

Freenet keresés - példa k10 k9 AB k10 k36 k10 k36 k9 k7 CA CB B k36 k9 A B k7 k9 k11 k10 A B A F C k36 k41 k9 k11 k9? E D k34 k9 A k9 k11 F k11 k34 C k34 D k9 A

Freenet keresés - példa k9 k7 B k9 k7 k10 k9 k36 k10 k36 k7 AB CA CB k10 k9 k36 k10 A B k7 k9 k11 A B F C k36 k41 k9 E D k7? k7 k34 k9 k11 A F k9 k7 k34 k9 A C A

Lavina effektus példa Animáció, klikkelj a vonalkódra

Keresések eloszlása Slashdot effektus (http://slashdot.org/) Népszerű számítástechnikai hírportál News for nerds, stuff that matters Ha egy érdekes hír jelenik meg rajta, mindenki ráklikkel a linkre A hirtelen terhelés megbéníthatja a kisebb kapacitású gépeket A Freenet elkerüli a Slashdot effektust A cache-elés miatt a keresések eloszlanak A források nem kerülnek túl nagy terhelés alá A kulcsok hash-ek Szemantikailag egymáshoz közel álló tartalmak teljesen különböző kulcsokat kaphatnak Egy hot topic -hoz tartozó különböző állományok eloszlanak a rendszerben

Hash függvény Nagy értelmezési tartományt képez le egy szűk értékkészletre Változó hosszúságú x paramétert képez le fix hosszúságú h = H(x) értékre Kriptografikus hash függvények Ha adott x, H(x) relatív egyszerűen kiszámítható H(x) egyirányú Ha adott h hash érték, túlzottan számításigényes olyan x-et találni, amire H(x) = h H(x) ütközésmentes H gyengén ütközésmentes ha egy adott x-re, túlzottan számításigényes egy olyan y megtalálása (x y), melyre H(x) = H(y) H erősen ütközésmentes ha túlzottan számításigényes bármilyen olyan x és y értékeket találni (x y), melyre H(x) = H(y)

Hash függvény Népszerű algoritmusok MD5 (Message Digest Algorithm 5) Ronald Rivest (MIT), 1991 http://www.ietf.org/rfc/rfc1321.txt SHA-1 (Secure Hash Algorithm) http://www.itl.nist.gov/fipspubs/fip180-1.htm

Kulcsok Minden állományt egy kulcs azonosít A kulcs egy globális azonosító része Uniform Resource Identifiers (URIs): freenet:keytype@data Több fajta kulcs létezik Keyword Signed Key (KSK) Signature Verification Key (SVK) SVK Subspace Key (SSK) Content Hash Key (CHK)

Keresés A kereséshez tudni kell az adott kulcsot A publikáló félnek ezt nyílvánosan meg kell hírdetni Anonymous hirdetési lehetőség Freenet portálokon Rövid leírás, kulcs Freenet levelező listákon Freenet IRC csatorna irc.freenode.net #freenet Privát e-mail, web Graffiti, hőlégballonon, repülő által húzott reklámszalagon

Anonimitás A peer-ek véletlenszerűen hazudhatnak a kérésekkel kapcsolatban A Depth és a Hop-To-Live értékek változtathatóak Lehetetlen kideríteni kitől kapod meg a dokumentumot A forrás címet bármely csomópont az útvonalon átírhatja a sajátjára Lehetetlen kideríteni ki publikált először a rendszerben egy adott fájlt Igyekeznek a réseket is betömni the Javascript exploit mentioned would not have worked on Freenet because Freenet removes Javascript by default. Nem biztosít igazi anonimitást A nem triviális támadások ellen valószínűleg nem képes védekezni Forgalomanalízis, nagyszámú csomópont kompromittálása

Előnyök Teljesen elosztott rendszer Nagy hibatűrés Robusztus, skálázható Másolatok automatikus generálása Jól alkalmazkodik a felhasználók dinamizmusához Adaptív, hatékony útválasztás Anonim szerzők és olvasók Freeriding nem lehetséges

Hátrányok Nem garantálható a keresések ideje Nem garantálható a keresések sikere Ismeretlen topológia A kereső algoritmusok nem tudják ezt kihasználni Nem biztosítja a tartós tárolást Egy ma publikált fájl holnapra lehet hogy kihal a rendszerből Nagyméretű állományoknál nem előnyös egy hosszú útvonal mentén küldeni a választ Nagy a hibalehetőség Elpocsékolt sávszélesség

Anonimitás vs. hatékonyság A Freenet fő célja a cenzúra elkerülése és az anonimitás, nem a hatékonyság Főként kisméretű fájlok, szöveges dokumentumok tárolására és terjesztésére kiváló Freenet China http://freenet-china.org/

Irodalom I. Clarke, O. Sandberg, B. Wiley, T. W. Hong,, "Freenet: A distributed anonymous information storage and retrieval system", in Workshop on Design Issues in Anonymity and Unobservability, Berkeley, CA, July 2000. http://citeseerx.ist.psu.edu/viewdoc/summary?doi=10.1.1.10.4919 2000 legtöbbször hivatkozott cikke a Citeseer-ben Jelenleg 773 hivatkozás a Citeseer-ben, 2236 hivatkozás a Google Scholar-ban The Free Network Project http://www.freenetproject.org/ http://freenetproject.org/papers.html

P2P 133

P2P Keresés Strukturálatlan P2P rendszerek Gnutella, KaZaa, stb... Véletlenszerű keresés Nincs információ a fájl lehetséges tárolási helyéről Példa: koncentrikusan szélesedő keresés Expanding Ring Search (ERS) Nagy terhelés a rendszeren Minél több helyen tárolva, annál kisebb a keresés által generált terhelés 134

P2P Keresés (II) Strukturált P2P rendszerek Irányított keresés Kijelölt peer-ek kijelölt fájlokat (vagy azok fele mutató pointereket) kell tároljanak Mint egy információs pult Ha valaki keresi a fájlt, tudja kit kérdezzen Elvárt tulajdonságok Elosztottság Felelősség elosztása a résztvevők között Alkalmazkodás A peer-ek ki és bekapcsolódnak a rendszerbe Az új peer-eknek feladatokat osztani A kilépő peer-ek feladatai újraosztani 135

Elosztott hash táblák - DHT Distributed Hash Tables DHT Egy hash függvény a keresett fájlhoz egy egyéni azonosítót társít Példa: h( P2P_előadás ) -> 123 A hash függvény értékkészletét elosztja a peer-ek között Egy peer-nek tudnia kell minden olyan fájlról, melynek a hash-elt értéke a saját értékkészletébe tartozik Vagy saját maga tárolja a fájlt... Vagy tudja ki tárolja a fájlt. 136

DHT példa 211-399 200-210 484-799 100-199 400-483 123 0-99 h(x) [0..799] 137

DHT példa 211-399 200-210 484-799 100-199 400-483 123 0-99 h(x) [0..799] 138

DHT útválasztás Minden peer mely információt tartalmaz egy fájlról elérhető kell legyen egy rövid úton Korlátozott számú lépésen belül A kereső peer által A fájlt tároló peer-ek által Korlátozott számú szomszéd Skálázható a rendszer méretétől függetlenül A különböző DHT megoldások lényégében az útválasztásban térnek el CAN, Chord, Pastry, Tapestry 139