Typer af P2P-netværk: Karakteristika, klassificering og klasser af P2P

Dagens samfund har brug for en rigelig udveksling af information til udvikling af de fleste aktiviteter eller job. F.eks. Distribuerer virksomheder, især multinationale selskaber, deres projekter blandt de mange hovedkvarterer, de har over hele verden; Dette betyder, at der skal være kommunikation og informationsudveksling mellem de forskellige steder for en korrekt udvikling af deres projekter. Et andet eksempel er universiteter, der har brug for et system til at udveksle information med studerende, for at give dem noter, eksamener osv.

Derfor kom den første P1996P-applikation omkring 2 fra hænderne på Adam Hinkley, Hotline Connect, som var beregnet til at være et værktøj for universiteter og virksomheder til distribution af filer. Denne applikation brugte en decentral struktur, og det tog ikke lang tid at blive forældet (fordi den var afhængig af en enkelt server); og da det var designet til valmue OS, det producerede ikke meget interesse fra brugerne.

Typer af P2P-netværk

Det er med Napster i 1999, hvor brugen af ​​P2P-netværk vækkede nysgerrighed blandt brugerne. Dette musikudvekslingssystem brugte en hybrid P2P-netværksmodel, da den bortset fra kommunikation mellem jævnaldrende indeholdt en central server til at organisere disse par. Deres hovedproblem var, at serveren introducerede breakpoints og en stor mulighed for flaskehalse.

Derfor dukker nye topologier som decentraliseret op, hvis hovedkarakteristik er, at det ikke har brug for en central server for at organisere netværket; et eksempel på denne topologi er Gnutella. En anden type er strukturerede P2P-netværk, der fokuserer på at organisere indhold snarere end at organisere brugere; som et eksempel fremhæver vi JXTA. Vi har også netværkene med Distribueret Hashes Table (DHT), såsom Chord.

Dernæst vil vi udvikle de typer P2P-netværk, der er nævnt ovenfor.

Første P2P-systemer: en hybrid tilgang

De første P2P-systemer, såsom Napster eller SETI @ home, var de første til at flytte de tungeste opgaver fra servere til brugernes computere. Ved hjælp af Internettet, som giver mulighed for at kombinere alle de ressourcer, som brugerne leverer, lykkedes det dem at få disse systemer til at opnå en større lagerkapacitet og større computerkraft end servere. Men problemet var, at uden en infrastruktur til at fungere som en mellemmand mellem peer-enhederne, ville systemet blive kaos, da hver peer ville ende med at handle uafhængigt.

Løsningen på forstyrrelsesproblemet er at introducere en central server, der har ansvaret for at koordinere parene (koordination mellem par kan variere meget fra et system til et andet). Disse typer af systemer kaldes hybridsystemer, da de kombinerer klient-servermodellen med modellen af ​​P2P-netværk. Mange mennesker synes, at denne tilgang ikke skal beskrives som et rigtigt P2P-system, da det introducerer en central komponent (server), men på trods af dette har denne tilgang været og fortsætter med at være meget vellykket.

Når en enhed opretter forbindelse til netværket (ved hjælp af en P2P-applikation), registreres den i denne type systemer på serveren, så serveren til enhver tid har styret antallet af par, der er registreret på den server, så de tilbyder tjenester til andre jævnaldrende. Normalt er peer-to-peer-kommunikation point-to-point, da peers ikke danner noget større netværk.

Hovedproblemet med dette design er, at det introducerer et systembrudpunkt og stor sandsynlighed for, at en såkaldt "flaskehals" forekommer (i dataoverførsel, når en enheds processorkapacitet er større end den kapacitet, som enheden er tilsluttet ). Hvis netværket vokser, vil serverbelastningen også vokse, og hvis systemet ikke er i stand til at skalere netværket, kollapser netværket. Og hvis serveren fejler, ville netværket ikke være i stand til at omorganisere sig selv.

Men på trods af alt er der stadig mange systemer, der bruger denne model. Denne tilgang er nyttig i systemer, der ikke tåler uoverensstemmelser og ikke kræver store mængder ressourcer til koordineringsopgaver. Som et eksempel her er hvordan Napster fungerer. Napster opstod i slutningen af ​​1999 ved hånden af ​​Shawn Fanning og Sean Parke med ideen om at dele musikfiler mellem brugerne.

Den måde, Napster fungerer på, er, at brugerne skal oprette forbindelse til en central server, som er ansvarlig for at føre en liste over forbundne brugere og de tilgængelige filer for disse brugere. Når en bruger ønsker at få en fil, foretager de en søgning på serveren, og serveren giver dem en liste over alle de par, der har den fil, de leder efter. Således ser den interesserede part efter den bruger, der bedst kan levere det, han har brug for (f.eks. Vælge dem med den bedste overførselshastighed) og får sin fil direkte fra ham uden mellemled. Napster blev hurtigt et meget populært system blandt brugerne og nåede 26 millioner brugere i 2001 og forårsagede ubehag blandt pladeselskaber og musikere.

Derfor indgav RIAA (Recording Industry Association of America) og adskillige pladeselskaber, i et forsøg på at afslutte det, en retssag mod selskabet, hvilket forårsagede lukning af dets servere. Dette forårsagede et netværksnedbrud, da brugerne ikke kunne downloade deres musikfiler. Som en konsekvens vandrede en stor del af brugerne i stedet for at ende med "piratkopiering" til andre udvekslingssystemer som Gnutella, Kazaa osv.

Senere, omkring 2008, blev Napster et MP3-salgsselskab med et stort antal sange, der kunne downloades: free.napster.com.

Ustrukturerede P2P-netværk

En anden måde at dele filer på er ved hjælp af et ikke-centraliseret netværk, det vil sige et netværk, hvor enhver form for mellemmand mellem brugere elimineres, så netværket selv har ansvaret for at organisere kommunikation mellem jævnaldrende.

I denne tilgang, hvis en bruger er kendt, etableres en "union" mellem dem, så de danner et "netværk", som kan sluttes af flere brugere. For at finde en fil udsender en bruger en forespørgsel, der oversvømmer hele netværket for at finde det maksimale antal brugere, der har disse oplysninger.

For eksempel for at udføre en søgning i Gnutella udsteder den interesserede bruger en søgeanmodning til sine naboer, og disse til deres. Men for at undgå at kollapse netværket med en lille forespørgsel er udsendelseshorisonten begrænset til en vis afstand fra den oprindelige vært og også anmodningens levetid, fordi hver gang meddelelsen videresendes til en anden bruger, aftager dens levetid.

Hovedproblemet med denne model er, at hvis netværket vokser, når forespørgselsmeddelelsen kun nogle få brugere. Hvis det, vi leder efter, er noget velkendt, vil enhver vært inden for vores diffusionshorisont sikkert have det, men på den anden side, hvis det vi leder efter er noget meget specielt, finder vi det muligvis ikke, fordi vi har diffusionshorisonten begrænset, har vi udeladt til værter, der måske indeholdt de oplysninger, vi leder efter.

Den dag i dag er rene ikke-centraliserede P2P-netværk blevet erstattet af nye teknologier, såsom Supernoder .

SUPERNODOS, et hierarki i ustrukturerede netværk

De største problemer med ustrukturerede netværk var diffusionshorisonten og størrelsen på netværket. Vi har to mulige løsninger: enten øger vi udsendelseshorisonten, eller reducerer vi størrelsen på netværket. Hvis vi vælger at øge udsendelseshorisonten, øger vi antallet af værter, som vi skal sende forespørgselsmeddelelsen eksponentielt til. Dette ville forårsage, som vi allerede har set, problemer i netværket, såsom sammenbruddet af det. Tværtimod, hvis vi vælger at reducere størrelsen på netværket, er systemerne i stand til at skalere meget bedre over netværket ved hjælp af supernoderne.

Hovedidéen med dette system er, at netværket er delt mellem adskillige terminalknudepunkter og en lille gruppe supernoder, der er godt forbundet mellem dem, hvortil terminalknudepunkterne er forbundet. For at være en supernode er det nødvendigt at kunne tilbyde nok ressourcer til andre brugere, især båndbredde. Dette netværk af supernoder, som kun nogle få kan blive en del af, er ansvarlig for at holde størrelsen på netværket lille nok til ikke at miste effektivitet i søgninger.

Driften svarer til den af ​​hybridmodellen, da terminalknudepunkterne er forbundet til superknudepunkterne, der tager rollen som servere, så brugerne kun forbinder med andre brugere for udelukkende at udføre downloads. Supernoder gemmer information om, hvad hver bruger har, så det kan reducere tiden for en søgning og sende informationen til de terminalknudepunkter, der har det, vi leder efter.

Denne type struktur er stadig meget udbredt i dag, hovedsageligt fordi den er meget nyttig til udveksling af information om populært indhold eller til søgning efter nøgleord. Da netværket af supernoder reduceres, skaleres disse systemer meget godt over netværket og tilbyder ikke breakpoints som hybridmodellen. På den anden side mindsker de robustheden mod angreb og netværksfald og mister præcision i søgen efter resultater på grund af replikationen gennem supernoderne. Hvis et lille antal supernoder fejler, er netværket opdelt i små partitioner.

Strukturerede P2P-netværk

Denne tilgang er udviklet parallelt med supernode-fremgangsmåden beskrevet ovenfor. Dets vigtigste egenskab er, at det i stedet for at tage sig af at organisere noderne fokuserer på organisering af indhold, gruppering af lignende indhold på netværket og oprettelse af en infrastruktur, der bl.a. muliggør effektiv søgning.

Kammeraterne organiserer indbyrdes et nyt virtuelt netværkslag, ”et overlay-netværk”, der er placeret oven på det grundlæggende P2P-netværk. I dette overlay-netværk gives nærheden mellem værter som en funktion af det indhold, de deler: de vil være tættere på hinanden, jo flere ressourcer de leverer til fælles. På denne måde garanterer vi, at søgningen udføres effektivt inden for en ikke alt for fjern horisont og uden at reducere størrelsen på netværket. Som et eksempel, JXTA, hvor jævnaldrende handler i et virtuelt netværk og frit kan danne og forlade grupper af jævnaldrende. Således forbliver søgemeddelelser inden for det virtuelle netværk, og gruppen fungerer som en grupperingsmekanisme, der kombinerer par med samme eller lignende interesser.

P2P-netværk

Denne tilgang giver høj ydeevne og nøjagtige søgninger, hvis det virtuelle netværk nøjagtigt afspejler ligheden mellem noderne med hensyn til søgninger. Men det har også en række ulemper: det har høje omkostninger ved at etablere og vedligeholde det virtuelle netværk i systemer, hvor værter kommer ind og forlader meget hurtigt; de er ikke særlig velegnede til søgninger, der inkluderer boolske operatører, da der ville være behov for noder, der er i stand til at søge med mere end et udtryk.

En underklasse inden for denne type P2P-netværk distribueres hash-tabeller.

Distribuerede Hash-tabeller (DHT)

Det vigtigste kendetegn ved DHT'er er, at de ikke organiserer overlay-netværket efter dets indhold eller dets tjenester. Disse systemer deler hele deres arbejdsområde ved hjælp af identifikatorer, der tildeles de jævnaldrende, der bruger dette netværk, hvilket gør dem ansvarlige for en lille del af det samlede arbejdsområde. Disse identifikatorer kan for eksempel være heltal i området [0, 2n-1], hvor n er et fast tal.

Hvert par, der deltager i dette netværk, fungerer som en lille database (sættet med alle par vil danne en distribueret database). Denne database organiserer dine oplysninger parvis (nøgle, værdi). Men for at vide, hvilket par der har ansvaret for at gemme det par (nøgle, værdi), skal vi have nøglen til at være et heltal inden for det samme område, som de deltagende par i netværket er nummereret med. Da nøglen muligvis ikke er repræsenteret i heltalene, har vi brug for en funktion, der konverterer nøglerne til heltal inden for det samme område, som parene er nummereret med. Denne funktion er hash-funktionen. Denne funktion har den egenskab, at når den står over for forskellige indgange, kan den give den samme outputværdi, men med en meget lav sandsynlighed. I stedet for at tale om en "distribueret database", taler vi om Distribueret Hashes-tabel (DHT), for hvad hvert par af parret (nøgle, værdi) faktisk gemmer, er ikke nøglen som sådan, men hash af nøgle.

Vi har allerede diskuteret, at hvert par er ansvarlig for en del af netværkets arbejdsområde. Men hvordan kortlægger du parret (nøgle, værdi) til det rigtige par? Til dette følges en regel: når hash for nøglen er beregnet, tildeles parret (nøgle, værdi) til det par, hvis identifikator er tættest (den umiddelbare efterfølger) til den beregnede hash. I tilfælde af at den beregnede hash er større end parrenes identifikatorer, anvendes modulo 2n-konventionen.

Når vi først har talt lidt om den grundlæggende funktion af DHT, vil vi se et eksempel på dens implementering gennem CHORD-protokollen.

Distribueret søgeprotokol i P2P-netværk: CHORD

Akkord er en af ​​de mest populære distribuerede søgeprotokoller på P2P-netværk. Denne protokol bruger SHA-1-hash-funktionen til at tildele, både til parene og til den lagrede information, deres identifikator. Disse identifikatorer er arrangeret i en cirkel (tager alle værdier modulo 2m), så hver knude ved, hvem dens forfader og dens mest umiddelbare efterfølger er.

For at opretholde skalerbarheden af ​​netværket, når en node forlader netværket, videresendes alle dens nøgler til dets umiddelbare efterfølger på en sådan måde, at netværket altid holdes opdateret og dermed undgår, at søgninger kan være fejlagtige.

For at finde den ansvarlige, der gemmer en nøgle, sender noderne meddelelser til hinanden, indtil de finder den. Men på grund af netværkets cirkulære arrangement kan en forespørgsel i værste fald dække halvdelen af ​​noderne, hvilket gør det meget dyrt at vedligeholde det. For at undgå dette og dermed reducere omkostningerne har hver node en routingtabel gemt, hvor adressen på noder, der er en vis afstand fra den, er gemt. På denne måde, når vi vil vide, hvem der har ansvaret for nøglen k, søger noden i dens routingtabel for at se, om den har adressen på den person, der har ansvaret for k; hvis det gør det, sender det dig anmodningen direkte; hvis den ikke har den, sender den spørgsmålet til den nærmeste knude på k, hvis identifikator er mindre end k.

Med denne forbedring er det lykkedes os at sænke omkostningerne ved søgninger fra N / 2 til log N, hvor N er nummeret på netværksnoden.

Konklusioner.

Som vi har set, er der mange typer P2P-netværk, hver med sine styrker og svagheder. Ingen skiller sig ud over hinanden, hvilket gør det muligt, når man programmerer f.eks. En P2P-applikation, at have flere muligheder, hver med sine egne egenskaber.

En ting at huske på er, hvordan måden at dele information udvikler sig på. I slutningen af ​​det sidste årtusinde var brugen af ​​P2P-netværk rigelig, og for de fleste var det den eneste kendte måde at dele information på. I dag har tendensen ændret sig. Folk foretrækker nu at udveksle filer via store servere, hvor de i nogle tilfælde betaler brugerne for at være vært for dem.

Nogle spørgsmål, der kan komme til at tænke på, er: Hvad er fremtiden for P2P-netværk? Mod hvilke former for organisering af information har vi udviklet os?

En af de mulige udviklinger er springet fra P2P til p4p. Hvad er P4P? Som en sammenfatning vil vi sige, at P4P, også kendt som hybrid P2P, er en lille udvikling af P2P, hvis hovedkarakteristik er, at tjenesteudbydere, internetudbydere, udgør en vigtig rolle inden for netværket, da når det kommer til at udføre en søgning, vil først søge blandt de deltagende noder, der hører til den samme internetudbyder.