P2P Pier Toe Pier Een masterclass voor het Developmentprogramma 20-juni-2002 Agenda • • • • • • • Historie Techniek Topologie Toepassingen Beperkingen Ontwikkelingen Vragen / Discussie Introductie • Waarom dit onderzoek naar Peer to Peer netwerken? • Hoe is het aangepakt? • Verslaglegging Introductie • Voornamelijk gekeken naar oorsprong GnuTella omdat dit een van de belangrijkste P2P netwerken is. • GnuTella is Open Source (incl. clients) • Redelijk wat goed onderbouwd onderzoek beschikbaar • Open & De-facto standaard • Niet verwarren met Agents Historie (1) • Napster – – – – – Centrale server Decentrale content Zoeken op de server Peer to Peer download Juridische aansprakelijkheid Illustratie Zoek opdracht Client #1 Zoek resultaat Download Namen van gedeelde bestanden Client #2 Napster server Historie (2) • Nullsoft (Winamp?) – – – – – – Gedistribueerd zoeken Gedistribueerde content Peer to Peer zoeken & download Slechts enige uren actief geweest Protocol gedecodeerd Resultaat: GnuTella Historie (3) • Gnutella – Uitgesproken als ‘new-tella’ of ‘guh-new-tella’ – Open source implementatie van Nullsoft protocol – Multi-platform – In het begin niet schaalbaar Illustratie Zoek opdracht Zoek resultaat Client #4 Zoek resultaat Client #2 Client #5 Zoek opdracht Zoek opdracht Zoek opdracht Zoek resultaat Zoek resultaat Download Client #1 Client #3 Historie (4) • Kazaa – Gesloten netwerk voor Kazaa clients • Morpheus – Heterogeen netwerk in principe toegankelijk voor alle GnuTella clients – Standaard client gebaseerd op Gnucleus code The Groove • • • • • Gesloten netwerk voor Groove clients. Ander protocol en opzet Niet gratis Alleen voor Windows OS Focus op gezamenlijk gebruik van documenten. • Professionele ondersteuning Techniek (1) • Eenvoudige handshake bij tot stand brengen van een verbinding (poort 6346). Client: Server: GNUTELLA CONNECT/0.4 GNUTELLA OK Techniek (2) • 3 Berichten – Ping – Query – Push (0x00) (0x80) (0x40) • 2 Antwoorden – Pong – QueryHit (0x01) (0x81) Techniek (3) • Routering regels – Bericht identificatie op basis van GUIDS • Levensduur berichten (TTL/Time to Live) 1. Pong descriptors may only be sent along the same path that carried the incoming Ping descriptor. This ensures that only those servents that routed the Ping descriptor will see the Pong descriptor in response. A servent that receives a Pong descriptor with Descriptor ID = n, but has not seen a Ping descriptor with Descriptor ID = n should remove the Pong descriptor from the network. A servent will forward incoming Ping and Query descriptors to all of its directly connected servents, except the one that delivered the incoming Ping or Query. A servent will decrement a descriptor header’s TTL field, and increment its Hops field, before it forwards the descriptor to any directly connected servent. If, after decrementing the header’s TTL field, the TTL field is found to be zero, the descriptor is not forwarded along any connection. A servent receiving a descriptor with the same Payload Descriptor and Descriptor ID as one it has received before, should attempt to avoid forwarding the descriptor to any connected servent. Its intended recipients have already received such a descriptor, and sending it again merely wastes network bandwidth. 2. 3. 4. Techniek (4) • Ping/Pong dient voor the bepalen adressen van andere servers. • Deze servers worden opgeslagen in een lijst die later gebruikt kan worden om te starten. • Beginpunt voor deze lijst is een zogenaamd ‘known entry-point’ Illustratie Node2 Pong (ttl=7) Ping (ttl=7) Ping (ttl=7) Node1 Pong (ttl= 7) Node3 Pong (ttl=6) Pong (ttl=7) Node4 Ping (ttl= 6) Techniek (5) • Query/Queryhit worden voor het eigenlijke zoeken gebruikt. • Query bevat een tekstuele zoekopdracht. • De resulterende QueryHits bevatten lijsten met filenamen die aan de zoekopdracht voldoen plus het IP-adres van de afzender. Illustratie Node2 Query x (ttl=7) Query x (ttl=7) Node1 Queryhit x.txt (ttl=7) Node3 Queryhit xyz.txt (ttl=6) Queryhit xyz.txt (ttl=7) Node4 Query x (ttl=6) Techniek (6). • Downloads: – d.m.v. standaard HTTP protocol (maar via poort 6346) GET /get/<file index>/<file name>/ HTTP/1.0 – of via Push bericht Topologie • De lay-out van het netwerk • Met P2P zijn vele vormen te realiseren – Puur P2P – Centrale server model – Hybride. • Meestal een known entry-point nodig Topologie (1) • Centraal netwerk. – Redelijk goed schaalbaar d.m.v. clustering – Goed beheerbaar – Single point of failure Topologie (2) • Decentraal netwerk – Known Entry-Point is nodig. – In theorie schaalbaar, in praktijk niet – Goed bestand tegen netwerk problemen Schaalbaarheid Aantal bereikbare nodes: TTL=1 TTL=2 TTL=4 TTL=8 N=2 2 4 8 16 N=4 4 16 160 13.120 N=8 8 64 3.200 7.686.400 N=Aantal uitgaande connecties per node / TTL = Time to Live Schaalbaarheid Netwerkverkeer bij query van 83 bytes : TTL=1 TTL=2 TTL=4 TTL=8 N=2 166 322 694 1.328 N=4 332 1328 13.280 1.088.960 N=8 664 5.312 265.600 637.971.200 N=Aantal uitgaande connecties per node / TTL = Time to Live Topologie (3) • Hybride – Ultrapeers schermen clients af van merendeel netwerk verkeer – Zeer goed schaalbaar – Geen single point of failure – Known entry-point nodig – Veel minder netwerk verkeer dan puur P2P Illustratie Puur P2P (alle nodes gelijkwaardig) P2P met ultrapeers (hiërarchisch) Toepassingen (1) • Wat kunnen we er binnen Edubox mee? – Auteursomgeving – Studeeromgeving –? Toepassingen (2) • Auteursomgeving – Zoeken van EML materiaal – Beschikbaar stellen van materiaal – Essentieel is hierbij het zoeken in & indexeren van metadata van EML bestanden – Eml’s Extra-meta is lastig Toepassingen (3) • Decentrale repository – Kwaliteitsbewaking – Beschikbaarheid – Known entry-point • Centrale repository – Toevoegen/verwijderen van materiaal Toepassingen (4) • Studeeromgeving – Unit of learing op basis van queries • • • – – Queries met exact 1 hit Queries met meerdere hits Queries mengen met voorkeuren van student Zoeken van bronnen Uitwisselen van bestanden Illustratie • Bestudeer ‘x’ – Onderwerp=‘x1’, studielast>=10 – Onderwerp=‘x2’, studielast<20, taal=‘EN’ • Bestudeer Onderwerp-ID=ID1 • Bestudeer ‘y’ – Onderwerp=y1, studielast=10, didactiek=pgo Toepassingen (5) • Decentraal netwerk: – Beschikbaarheid materiaal – Known entrypoint nodig • Centrale repository: – Opletten dat bij verwijderen van materiaal alle gebruikte queries nog steeds voldoende hits opleveren Beperkingen • • • • • • • Geen authentificatie Geen afrekening mechanisme Geen redundantie van uniek materiaal Niet zonder meer schaalbaar Geen officiële standaard Beperkte uitbreidbaarheid Firewalls Ontwikkelingen • Herkennen van individuele bestanden ongeacht de naam dmv hashes • Ultrapeers voor schaalbaarheid • Versleuteling keywords • Partieel downloaden van meerdere servers • Caching netwerk verkeer • Enz… Vragen • Levert een uit zoekopdrachten opgebouwde unit of learing wel didactisch verantwoord leermateriaal op? • Hoe gaan we om met kwaliteitscontrole van materiaal als iedereen kan sharen? • Welke topologie is het meest geschikt? • Extra meta? • XML gebaseerd communicatie protocol? Nog vragen?