Slut med Napster
Det er nu ganske slut med Napster, men derfor er festen langt fra slut. Nye ægte peer-to-peer tjenester som Morpheus og Kazaa, samt en forbedring af det eksistrende Gnutella-netværk, lover samme kvalitet som Napster. Løsningen hedder supernoder.
Lad os starte med at gå et skridt tilbage og kigge på Napster, tjenesten der lagde grunden til succesen bag peer-to-peer (P2P). Napster er en centraliseret tjeneste, og det er netop dens akilleshæl. Ved at lukke for den centrale server, lukkes hele tjenesten.
Når Napster-klienten starter op, scanner den harddisken for mp3-filer. Listen af filer bliver så sendt til en central database, hvor de bliver indekseret i en søgemaskine på Napster-serveren. Derefter kan alle brugere på netværket søge i databasen og henter filerne ude hos klienterne. Det er netop den samlede indeksering af filer på Napster-serveren, der gør systemet så effektivt. En forbedret udgave af Napster-modellen findes hos Audiogalaxy, og tjenesten er også på radaren hos RIAA - organisationen, der sagsøgte Napster - så der går nok ikke lang tid før Audiogalaxy er underlagt samme restriktioner som Napster.
Gnutella er derimod ægte P2P. Her er der ikke behov for centrale servere, og netværket fungerer på trods af, at klienterne logger sig på og kobler fra netværket i tide og utide.
I modsætning til Napster og lignende tjenester virker Gnutella ved at distribuere søgeforespørgslen ud over hele netværket. Hvis en Gnutella-klient ligger inde med en matchende fil, bliver oplysningen sendt tilbage til den oprindelige klient, der så kan downloade filerne på samme måde som i Napster. Problemet med Gnutella er, at søgemekanismen er en flaskehals i systemet. Størstedelen af trafikken bliver søgninger, så det kræver en vis båndbredde for at kunne downloade en fil ved siden af. I praksis er det meget svært at få noget fornuftigt ud af Gnutella, hvis man benytter en modem-forbindelse.
Det hollandske firma FastTrack har implementeret en ny teknologi, som er basis for tjenesterne Morpheus og Kazaa. Begge tjenester benytter det samme underliggende netværk, og det minder meget om Gnutella, med den forskel, at FastTrack har implemeteret et begreb, der kaldes for supernodes - supernoder.
Supernoder
Supernoder redder dagen
En supernode er en bestemt slags klient i FastTrack-netværket. Den virker som en lokal søgemaskine for de klienter - noder - som den er forbundet med.
I det oprindelige Gnutella-net bliver en søgeforespøgsel sendt ud til alle klienter i netværket. |
Med supernoder sendes forespørgsler kun imellem supernoder. Supernoden holder styr på, hvilke af dens subnoder, der ligger inde med hvilke filer. |
En klient i Morpheus-netværket bliver automatisk udvalgt til at være supernode, hvis klientprogrammet vurderer, at brugerens båndbredde er høj nok, typisk for klienter med fast forbindelse, eller højhastighedsforbindelser som ADSL. Det er dog muligt at for brugeren at konfigurere klienten til ikke at blive til en supernode, hvis man for eksempel betaler for mængden af trafik.
FastTrack-netværket, som udgøres af brugerne af Morpheus, Kazaa og en tredje tjeneste ved navn Grokster, er et proprietært, lukket netværk. FastTrack's indtjening består af licensiering af det kodebibliotek, der implementerer protokollen, som firmaet kalder FastTrack P2P-stack.
Flere kræfter arbejder på at tilføje supernode-teknologien til det åbne Gnutella-netværk. BearShare, som er en af de mest populære klienter, skulle efter sigende arbejde på en betaversion kaldet Defender, som implementerer supernoder.
Bedre søgeresulter
Metadata forbedrer søgeresulter
Reducering af den overflødige trafik er kun et af de tiltag, der kan forbedre P2P-modellen. FastTrack benytter en lang række tricks, der forbedrer både søgninger og downloads. Morpheus-klienten danner eksempelvis en stor mængde metadata om de filer, der gemmer sig på brugerens harddisk. Metadata er fremtiden, ikke bare for P2P men for al netværksbaseret information og indhold. Indenfor P2P kan det forbedre kvaliteten af søgningen.
HTTP/1.1 200 OK Content-Length: 4381547 Accept-Ranges: bytes Date: Thu, 07 Jun 2001 20:43:32 GMT Server: KazaaClient May 7 2001 15:59:09 Connection: close Last-Modified: Tue, 20 Feb 2001 22:31:02 GMT X-Kazaa-Network: KaZaA X-Kazaa-IP: 10.20.31.42:1214 X-Kazaa-SupernodeIP: 120.23.123.227:1214 X-KazaaTag: 5=274 X-KazaaTag: 21=128 X-KazaaTag: 4=I have a dream X-KazaaTag: 6=Martin Luther King Jr. X-KazaaTag: 14=Speeches X-KazaaTag: 3=asqK3s/zY2oC4IaGYq3gJYWLcKo= Content-Type: audio/mpeg |
Headeren i et søgesvar i Kazaa. Bemærk metadata-felterne. |
I modsætning til Napster og Gnutella, hvor der søges med en tekststreng, er det i Morpheus muligt at søge med en lang række parametre som titel, kunstnernavn, kategori, sprog, opløsning med videre.
Derudover implementerer Morpheus også to funktioner, som FastTrack kalder FastStream og SmartStream. Hvis flere klienter ligger inde med en fil, der skal downloades, kan FastStream fordele download på de forskellige klienter, således at hver klient kun skal sende en del af filen. På den måde reduceres den gennemsnitlige belastning af klienterne, og filen bliver downloadet hurtigere. SmartStream kan genoptage en download, som bliver afbrudt, lige som det kendes fra download-managere til webbrug. Audiogalaxy benytter lignende teknikker.
Det bliver bedre hele tiden
Det anslås, at P2P-netværk ved at benytte de her nævnte teknikker kan skaleres til adskillige hundrede tusinder samtidige brugere. Gnutella-net løb hurtigt ind i skaleringsproblemer, men det var til at forudsige, da der var tale om et eksperiment, som blev en kæmpe succes på meget kort tid. Det havde folkene bag protokollen ikke forestillet sig, og en sådan udvikling er jo set før i internetsammenhænge.
Men de nye teknikker har vist, at der er teknologiske løsninger på flaskehalsene. Hvornår den næste tærskel for decentraliserede P2P-tjenester nås, er ikke til at sige. Men P2P-netværkene har i hvert fald bevist, at de kan overleve børnesygdommene.
Ægte P2P
Selvom FastTrack og Gnutella er langt mere ægte P2P end Napster, benyttes der stadig centraliserede servere til initieringen af netværket. Når en klient skal forbindes med et af de respektive netværk, skal den have IP-nummeret på en anden klient, der allerede er forbundet netværket. Denne tjeneste er implementeret via centrale servere, men der er blot tale om en samling af IP-numre, ikke indeksering af filer som Napster, og systemet er ikke grundlæggende afhængigt af denne tjeneste.
Når en klient har forbundet sig første gang, kunne den i princippet oparbejde en stor liste af IP-numre på supernoder, og denne cache kunne så bruges næste gang, klienten kobler sig på. Selvom nogle supernoder skulle været forsvundet fra netværket i den mellemliggende periode, skulle det være muligt at finde en, der stadig var på, blot ved at kigge på et tilstrækkeligt stort antal IP-numre.
Tilbage er der så kun problemet med den allerførste opkobling, men det kunne klares med lister af IP-numre på websider eller som posteringer på nyhedsgrupper. I Gnutellas allerførste fase blev IP-numre faktisk distribueret på en sådan facon.