PowerPoint Presentation - DSpace Open Universiteit

advertisement
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?
Download