I øjeblikket er det mest populære system til deling af filer et peer-to-peer netværk kaldet Gnutella, eller Gnutella-netværket. Der er to væsentlige ligheder mellem Gnutella og det gamle Napster:
- Brugerne placerer de filer, de vil dele, på deres harddiske, og gøre dem tilgængelige for alle andre til download i peer-to-peer mode.
- Brugerne bruger en udgave af Gnutella softwaren til at forbinde til Gnutella-netværket.
Der er også to store forskelle mellem Gnutella og det gamle Napster:
- Der findes ingen central database, der kender alle de filer, der findes på Gnutella-netværket. I stedet fortæller alle maskiner på netværket hinanden om de tilgængelige filer ved hjælp af distribuerede forespørgsler.
- Der er mange forskellige klientprogrammer til rådighed, der giver adgang til Gnutella-netværket.
På grund af begge disse funktioner ville det være vanskeligt for en enkelt retskendelse at lukke Gnutella ned. Retten skulle finde en måde at blokere al Gnutella netværkstrafik på ISP og grundlæggende dele af internettet for at stoppe folk fra at dele filer[1].
Endelig havde den oprindelige Napster havde et stykke "klientsoftware" - den software, som brugerne kørte på deres maskiner for at få adgang til Napster serverne. Gnutella har snesevis af klienter til rådighed. Nogle af de mest populære Gnutella klienter omfatter: BearShare, Gnucleus, LimeWire, Morpheus, WinMX, XoloX
Gnutella-netværket
Da der ikke er nogen central server til at gemme navne og placeringer på alle de tilgængelige filer, hvordan finder Gnutella softwaren på din maskine så en sang på en anden brugers maskine? Processen foregår nogenlunde sådan her:
- Du skriver navnet på den sang eller fil, du ønsker at finde.
- Din maskine kender til mindst én anden Gnutella maskine eller andet sted på netværket. Den kender dette, fordi du har fortalt softwaren om placeringen af maskinen ved at indskrive IP-adresse, eller fordi softwaren har en IP-adresse til en Gnutella vært forprogrammeret. Din maskine sender navnet på den sang, du har skrevet ind, til de Gnutella maskiner, den kender til.
- Disse maskiner søger for at se, om den ønskede fil ligger på deres lokale harddisk. Hvis det er tilfældet, sender de filnavnet tilbage (og maskinens IP-adresse) til den maskine, der sendte forespørgslen.
- På samme tid sender alle disse maskiner de samme anmodning til de maskiner, som de er tilsluttet, og processen gentages.
- En forespørgsel har en TTL (tid til at leve) begrænsning. En forespørgsel kan gå ud seks eller syv niveauer, før den stopper med at sende forespørgslen videre. Hvis hver maskine på Gnutella-netværket kender blot fire andre, så kan der nås op til omkring 8.000 andre computere..
Det er en yderst enkel og smart måde at distribuere en forespørgsel til tusindvis af maskiner meget hurtigt.
Fordele & ulemper
Denne fremgangsmåde har én stor fordel - Gnutella arbejder hele tiden. Så længe du kan komme til mindst én anden maskine, der kører Gnutella software, er du i stand til at søge i netværket. Ingen retskendelse kommer til at lukke systemet ned, fordi der ikke er én maskine, der styrer alt. Men Gnutella har mindst tre ulemper:
- Der er ingen garanti for at den fil, du ønsker, er på nogen af de 8.000 maskiner, du kan nå.
- Det kan tage lidt tid at få et komplet svar på din forespørgsel. Det kan vare et minut eller mere før alle svarene, kommer tilbage i syv niveauers dybde.
- Din maskine er en del af dette netværk, og besvarer dermed på forespørgsler og sender dem videre. Du bruger dermed en del af din båndbredde til at behandle forespørgsler fra alle de andre brugere.
Tilsyneladende er disse ulemper ikke så væsentlige, idet folk har downloadet hundreder af millioner eksemplarer af Gnutella klienterne[1].
Analyse og oplæg om Gnutella-klienter
Fordel jer i grupper på holdet, så hver gruppe installere og afprøver hver deres Gnutella klient. I forhold til trelagsmodellen, så vil datalaget være det samme, så grupperne skal dels beskrive:
- Funktionslag
- Hvilke funktioner tilbyder programmet?
- Hvor let er det at justere sin søgning?
- Grænseflade
- Hvor mange skærmbilleder består grænsefladen i?
- Hvordan kan grænsefladen karakteriseres? (enkel, kompleks, farverig…)
- I hvilken grad er grænsefladen brugervenlig?
Til sidst præsenterer I jeres programmer og analyser i matrxgrupper eller for klassen og bliver enige om hvilken klient der virker til at være bedst.