420 likes | 518 Views
Peer-to-Peer (P2P) hálózatok. BMEVITT9176 Választható tárgy 2006 febru ár 20. Gnutella – h átrányok. 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
E N D
Peer-to-Peer (P2P) hálózatok BMEVITT9176 Választható tárgy 2006 február 20
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 • Hiányzik a Usenet-ben használt szűrés 3
Hátrányok (II) • Nagy hálózati forgalmat generál • Példa: • L = link / peer (L = 4) • TTL = 7 • Max csomag szám: • 26240 csomag 5
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 6
Hátrányok (IV) • 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 7
Hátrányok (V) • 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) • Freeloading: • A Gnutella hálózat elérhető volt weboldalakról • Webes keresés, letöltés, megosztás nélkül • Freeriding... 8
Freeriding • Adar, Huberman, Freeriding on Gnutella, 2000 Sept. • http://www.firstmonday.org/issues/issue5_10/adar/index.html • a kliensek 70%-anem oszt meg semmit • a válaszok 50%-át a peer-ek 1%-a szolgáltatja • a freerider-ek egyenlően oszlanak el a hálózatban • bizonyos peer-ek olyan fájlokat osztanak meg, melyek senkit sem érdekelnek • 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 10
Irodalom • http://www.gnutella.com/ • http://www.limewire.com/developer/ 11
KaZaA • A jelenleg egyik legelterjedtebb (?) P2P alkalmazás • A FastTrack hálózatot használja • 2.4 millió felhasználó (2005.09.01) • 3,000 terabyte megosztott adat (2003 okt.) • > 50% az Internet forgalmának (2003-ban) • Leginkább az USA-ban népszerű • A RIAA legnagyobb célpontja • 30-40% csökkenés 2003 végén • Nem a P2P csökkent, csak a Kazaa • T. Karagiannis, A. Broido, N. Brownlee, kc claffy and M. Faloutsos, „Is P2P dying or just hiding?”, Globecom, Dallas, December 2004. • kc claffy – IPS 2004 Workshop • Cooperative Association for Internet Data Analysis - CAIDA 13
P2P az Interneten CachelLogic 14
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 15
Kronológia • Kazaa.com – LEF Interactive, Ausztrália • LEF – Liberté, Egalité, Fraternité • Alkalmazottak mindenhol a világban, nehezen fellelhetők 16
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 • Index poisoning • Index pollution • Vírusok a rendszerben • Hash linkekkel elkerülhetőek • Weben keresztül megszerezhető hash-ek 17
File Pollution Szennyezett (polluted) tartalom Eredeti tartalom Támadást indító cég 18
File Pollution pollution server Fájlcserélő hálózat pollution server pollution server pollution server 19
File Pollution A gyanútlan felhasználók terjesztik a szennyezést 20
File Pollution A gyanútlan felhasználók terjesztik a szennyezést Hoppá! 21
Index Poisoning index titlelocationbigparty 123.12.7.98smallfun 23.123.78.6heyhey 234.8.89.20 23.123.78.6 123.12.7.98 file sharing network 234.8.89.20 22
Index Poisoning index titlelocationbigparty 123.12.7.98smallfun 23.123.78.6heyhey 234.8.89.20 index titlelocationbigparty 123.12.7.98smallfun 23.123.78.6heyhey 234.8.89.20bighit 111.22.22.22 23.123.78.6 123.12.7.98 234.8.89.20 111.22.22.22 23
Architektúra • Hierarchikus architektúra • A peer-ek egy supernode-hoz csatlakoznak • supernode = superpeer, ultrapeer, 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 server 24
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 más supernode-okat • Nagyon gyér konnektivitás (egy supernode kb 20-30 más supernode-ot ismer) • Bárki lehet supernode • Számítási kapacitás, sávszélesség • Automatikus kiválasztás • Több tízezer supernode • Kb 50-200 peer/supernode • Liang, J., Kumar, R., Ross, K. „The KaZaA Overlay: A Measurement Study”, 19th IEEE Annual Computer Communications Workshop, October 2004. http://cis.poly.edu/~ross/papers/KazaaOverlay.pdf 25
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 26
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 27
Kazaa Keresem a ricky.mp3 fájlt B-nek megvan Közvetlen letöltés B A 28
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” 29
Hálózati forgalom fenntartása • Egy átlagos tag érdeke a letöltés • A feltöltés ezért egy felesleges teher • Karban kell tartani a felkínált tartalmat • Integrity Rate – 2x többet ‘ér’ az ilyen fájl • Díjazni kell az aktív tagokat • Participation level (részvételi szint) PL = (Feltölés/Letöltés) * 100 • Szintek: • Low, medium, High, Guru, Deity, Supreme Being 30
Résztvételi szint példája A PL egy arányossági tényező, nem csak az abszolút értékben feltöltött adattól függ (forrás: http://www.kazaa.com/) 31
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ó 32
Más hierarchikus rendszerek • FastTrack • KaZaA Lite K++ • http://www.zeropaid.com/kazaalite/ • Kazaa Lite • http://www.k-lite.tk/ • iMesh • http://imesh.com/ • Grokster • http://www.grokster.com/ 33
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/ 34
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 36
BitTorrent • Hagyományos webes keresés • .torrent fájl • Hash információ • Egy „tracker szerver” címe • Tracker • A csatlakozó peer-nek megad egy véletlenszerű listát a lehetséges peer-ekről • Statisztika • 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 37
BitTorrent • Mag (seed) • A kezdeti forrás • Egy peer akinél a teljes állomány megtalálható • A fájl több részre osztva • 250 kB • Minden rész hash információja a .torrent fájlban • A részek további alrészekre osztva 38
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 39
BitTorrent • 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 40
Hogyan működik? • A legritkább legelőbb (rarest first) • Azt a részt tölti le előbb, mellyel a legkevesebb peer rendelkezik • Előnyök • 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 41