Agenda Datakom 2 DAV03 Stefan Alfredsson Peer to Peer Material är starkt inspirerat från föreläsningsanteckningar av Prof Dr-Ing H. De Meer, Universität Passau och Dr K. Wehrle, Universität Tübingen Översikt Grundläggande P2P Strukturerade P2P system Ostrukturerade P2P system Period 1 De tidiga åren Period 2 - Forskarnätet 1962 DoD behövde ett nät 1969 Första Internet 4 maskiner 1971 ARPANet, första ryggradsnätet 1974 Ny protokollfamilj: TP/IP Det ursprungliga ARPANet var ett P2P nät, som fungerade och kommunicerade trots nät/nod fel 1971 email 1991 World Wide Web Nätet blev mer client/server inriktat; DNS-, mail-, web-, FTP-, spel-, databas-, DHP-, News-, fil-, tid-, backup-... Servrar Original ARPANet tillät inloggning med telnet och fildelning via FTP Period 3 Det globala informationsnätet Enorm växt som började i mitten på 90-talet och fortsätter, trots.com krash Klient/Server paradigmet verkar nå sina begräsningar forskarnät email Människor pratar med människor Web Människor pratar med maskiner Mobila Internet Allt uppkopplat Sensornät Maskiner pratar med maskiner Problemen med dagens nät Skalbarhet Flexbilitet / utveckling Säkerhet / pålitlighet... med mera Kan Peer to Peer -principen erbjuda möjliga lösningar? 1
Skalbarhet Generella problem med /S Förmåga att fungera effektivt medan systemet växer explosionsartat Internet har växt enormt de senaste 30 åren, och det börjar knaka i fogarna Ökande antal deltagare wireless hotspots, mobilnät allt uppkopplat Sensornät Begränsade resurser på / runt server Server ofta överbelastad, andra delar av nätet ofta underutnyttjade Assymetriskt trafikmönster Problem med resursskalbarhet PU, Minne Server är single point of failure Oanvända resurser på många klienter PU, Minne, Information Flexibilitet Säkerhet / Tillgänglighet ISP s gillar inte förändringar Höga kostnader, låg vinst Begränsad styrning, ev. Instabilitet Många projekt har misslyckas Gruppkommunikation, multicast Tjänstekvalité Mobilitetunderstöd Active Networking (egna program i nätnoder) Tillgänglighet blir mer och mer viktigt Tänk er en vecka utan internetförbindelse! Ökat antal riktade attacker DDoS slår lätt ut en central server 100% feltolerans Är ouppnåbart Entillverkarplattformar är mer utsatta för attacker (de flesta virus är för MS Windows) Motstånd mot censur Stor efterfrågan från användare Liten efterfrågan från myndigheter entrala servrar kan enkelt stängas ner eller oskadliggöras En väg ut Vad är Peer to Peer? Av-centralisering Återkomsten för P2P-principen Tillbaka till rötterna men i mycket större skala än tidigare Marginella hanteringsproblem Instabilitet, oförutspåbarhet, delvis (in-)effektivitet P2P är en samling applikationer som utnyttjar resurser (lagring, cpu, innehåll,...) tillgängliga i Internets utkant. Att använda av dessa decentraliserade resurser innebär att vara i en miljö av instabila uppkopplingar och adresser, och måste därför arbeta utan DNS-systemet och ha märkbar eller total självständighet från centrala servrar 2
Egenskaper hos P2P Konsekvenser Interaktion direkt mellan noderna Samutnyttjande av resurser i nodsystemen Ingen central styrning eller användande av centrala tjänster Jämlika och självständiga deltagare Själv-organiserande system?! Eget adressutrymme och struktur Ofta innehållsrelaterad, adress = H( innehåll ) Ingen central styrning, därför behövs distribuerade algoritmer för Routing i overlaynät Pålitlighet för systemet i stort Sökning, identifiering, och status av grannar Upptäckande av nät-tjänster Lagerindelning Användarlagret Applikationslagret Klassificering av P2P system lient-server Hybrid S S WWW DNS Napster IQ AIM Overlaylagret (decentralisering; Abstraktion) Nätlagret ( riktga transportnätet) Ren P2P Gnutella Freenet DHT (Past, i3, Ocanstore) P2P och overlaynät P2P använder ofta ett overlaynät DHT, Gnutella,... ARPANET overlay på telefonnätet! P2P utan overlay Ad-hoc networks (?) Overlaynät som inte är P2P Virtual private networks (VPN), Multi-protocol label switching (MPLS) Statiska overlays saknar självorganisation Overlaynät Definition: Program som kommunicerar över vägar skilda från (eller oberoende av) vägarna tillhandahållna av den underliggande nätverksstrukturen Logiskt nätverk ovanpå underliggande teknik; egen routing / adressering Applikationerna skapar nätets struktur, informationsspridning / pakethantering Det fysiska nätet är transparent för programmeraren Virtualisering av nätresurser tillåter resursutbyte -> förbättrad prestanda och återhämtning 3
Nätstruktur Strukturkaraktäristik Slumpmässig Mer regelbunden Grafmått Klustringskoefficient koppling till grannar Kant och kantdistribution antalet kopplingar Karaktäristisk väglängd / hoppfördelning Applikationsmått Expansion antal noder inom viss radie h från utgångsnoden Återhämtning hur många noder kan tappas Ostrukturerade nät: Olika strategier för overlaynätet Gnutella omedvetetet om underliggande nätet Bara några % av kopplingarna inom samma AS Grannar i overlay-nätet kan vara fysiskt långt borta Suboptimala sökningar Strategier, forts. FastTrack / KaZaA Vanliga noder har bara kopplingar till några få supernoder Supernoder informeras om IP-adresser och får fillista Supernoder agerar proxy för vanliga noder Svarar på förfrågningar Avlastar de vanliga noderna En vanlig nod kan bli supernod om den har tillräckligt med bandbredd och processorkapacitet Omkonfigurerbart Strukturerade P2P System Sökning Det grundläggande problemet i alla P2P system... grudge.avi?? Här!! Ostrukturerade Ingen routinginformation Query flooding entral directory Strukturerade Sökning sker efter givet mönster Lovande forskning inom distribuerade hashtabeller Var ska data lagras? Publish( content,...) Hur ska den hittas? Lookup( content )... Med låg overhead, robusthet och snabb återhämtning vid fel och förändringar 4
Distributed Hash Tables DHT Prototyp/foskningssystem Princip: Separera data och informationshantering Noder har routinginformation (routingtabeller) Tillhandahåller uppslagning av plats (innehåll, inte nod) Nackdel Måste hantera routinginformationen Problem med jokersökningar (Kall*ka*org*) hord (Berkeley/MIT) Tapestry (Berkely), Pastry (Rice U, MS) AN (Berkeley, ISI), P-Grid Nice, ZigZag I ett nötskal Lagring Overlaynätet kan ses som en cirkel, som kan plattas ut till hash-tabell Lagring av data genom hashfunktion H( filnamn ) -> 2313 Nod 2313 lagrar innehållet, eller vart denna finns (direkt vs indirekt lagring) Noder har ofta ansvar för en serie värden T.ex. nod 2000 har värden 2000-4000 0 k*n... Sökning / routing Mål: liten och skalbar overhead O(1) med central hashtabell men vi vill undvika en server Minsta overhead med distribuerade hashtabeller O(log N): hopp för att hitta objekt O(log N): antal nycklar och routinginformation per nod (N = totalt antal noder) 5
DHT utmaningar Sammanfattning Tillkommande noder Lämnande noder Fel i noder, nät Bakgrund / motiveringar för P2P Skalbarhet, flexibilitet, säkerhet/tillgänghet Overlay Ostrukturerade nät (gnutella, kazaa) Strukturerade nät (DHT) 6