Musikdeling - Arkitektur

I forbindelse med arkitektur vil vi komme ind på peer-to-peer arkitektur, som anvendes ved deling af musik som filer over et netværk. Det er via denne form for netværk, at den omfattende piratkopiering af musik foregår. Desuden vil vi kort gennemgå en streaming arkitektur, der anvendes af mange online musiktjenester, hvor der i princippet ikke findes musikfiler på din egen maskine, idet musikken streames direkte til en afspiller.

Peer-to-peer arkitektur

Peer-to-peer-arkitektur, der ofte blot kaldes for peer-to-peer, eller forkortet P2P, er en form for netværk, hvor hver arbejdsstation har samme kompetencer og ansvar. Dette adskiller sig fra klient/server-arkitekturen, hvor nogle computere er dedikeret til at servicere de andre. Peer-to-peer-netværk er generelt enklere, men de tilbyder normalt ikke den samme ydelse under tung belastning. P2P-netværk er afhængig af computerkraft for enden af hver forbindelse i stedet for inde fra selve netværket.

P2P bliver ofte fejlagtigt brugt som et udtryk til at beskrive en brugers forbindelse med en anden bruger til at overføre oplysninger og filer ved hjælp af en fælles P2P-klient, der blandt andet bruges til at downloade MP3-filer, videoer, billeder, spil og anden software. Dette er imidlertid kun én type af P2P netværk. Generelt bruges P2P-netværk til at dele filer, men et P2P-netværk kan også betyde Kollaborativ beregning (beregning ved samarbejde) eller Instant Messaging (chat)[5].

Typer af P2P-netværk

Peer-to-peer-netværk fås i tre varianter. Klassificeringen er baseret på netværket og dets anvendelse.

Kollaborativ beregning

Kaldes også distribueret beregning, der kombinerer ledig CPU regnekraft og/eller fri diskplads for mange computere i et netværk. Kollaborativ beregning er mest populær i videnskabs- og biotek-organisationer, hvor krævende edb-behandling er nødvendig. De fleste distribuerede beregnings-netværk fungerer ved, at brugerne frivilligt tilbyder deres ledige beregningsressourcer for at bidrage til forskningsprojekter i befolkningens interesse[5].

Billedet til højre viser koncepter ved distribueret beregning: Find alle tilgængelige ressourcer og sæt dem i gang med at arbejde for at udføre beregninger i langt højere tempo. Distribueret beregning bruger en centraliseret ressource manager og får alle klienterne i systemet til at arbejde sammen som én samlet ressource[2].

SETI@home er ét af de største nuværende eksempler på distribueret beregning med over 2 millioner brugere tilknyttet. Det er et videnskabeligt eksperiment, der bruger computere forbundet via Internettet i søgningen efter rumvæsener (Extraterrestrial Intelligence). Brugerne kan deltage ved at køre et gratis program til download og analyse af data fra radioteleskoper[3].

Distributed_computing.png

Instant Messaging

En meget almindelig form for P2P-netværk er Instant Messaging (IM), hvor software-applikationer, som for eksempel MSN Messenger og AOL Instant Messenger, giver brugerne mulighed for at chatte via SMS-beskeder i real-tid. Mens de fleste leverandører tilbyder en gratis version af deres IM software er andre begyndt at fokusere på versioner af IM-software rettet mod erhvervslivet. Mange virksomheder har bevæget sig hen imod anvendelsen af ​​IM som et standard kommunikationsværktøj for deres forretning[5].

Affinity Fællesskaber

Affinity samfund er den gruppe af P2P-netværk, der er bygget op omkring fildeling og blev kendt over hele verden på grund af fildelingsgruppen Napster. Affinity Fællesskaberne er baseret på brugernes samarbejde og bruges til at søge på andre brugeres computere efter information og filer[5].

Udover Napster er Gnutella netværket ét af de mest kendte peer-to-peer netværk, som vi behandler i det følgende afsnit.

Sådan virker peer-to-peer netværket Gnutella

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].

Gnutella klienter

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

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, betyder det, at en forespørgsel fra din maskine kan nå op til omkring 8.000 andre maskiner på Gnutella-netværket, hvis den udbredes til en dybde på syv niveauer.
file-sharing1.gif

Det er en yderst enkel og smart måde at distribuere en forespørgsel til tusindvis af maskiner meget hurtigt.

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].

Forbered et oplæg

Lav gruppevis et oplæg med et slide-show eller lignende over principperne i peer-to-peer netværk.
Inddrag Napster og/eller Gnutella tjenesterne i jeres oplæg.

Streaming arkitektur

Denne gennemgang er taget fra [4], der er oversat til dansk og lettere modificeret.

Hvis du arbejder på et kontor, der deler filer over et netværk, kan du tænke på en server som en computer, der rummer masser af data. Men når det kommer til streaming af video og lyd, er en server mere end bare en enorm harddisk. Det er også den software, der leverer data til din computer. Nogle streaming-servere kan håndtere flere forskellige filtyper, mens andre kun arbejder med specifikke formater. For eksempel kan Apple QuickTime Streaming Server streame QuickTime-filer, men ikke Windows Media-filer.

Streaming servere leverer typisk filer til dig med lidt hjælp fra en web-server. Først skal du gå til en web-side, som er lagret på webserveren. Når du klikker på den fil, du vil bruge, sender webserveren en besked til streaming-serveren, om den ønskede fil. Streaming-server sender derefter filen direkte til dig, uden om webserver.

Alle disse data kommer sikkert frem på grund af regelsæt kaldet protokoller, som regulerer den måde, data bevæger sig fra én enhed til en anden. Du har sikkert hørt om protokollen Hypertext Transfer Protocol (HTTP), der beskæftiger sig med hypertekst dokumenter eller websider. Hver gang du surfer på internettet, er det ved hjælp af HTTP.

Mange protokoller, såsom Transmission Control Protocol (TCP) og File Transfer Protocol (FTP), opdeler data i pakker. Disse protokoller kan gensende tabte eller beskadigede pakker, og de ​​gør det muligt for pakker, der kommer i tilfældig rækkefølge, at blive samlet igen senere. Dette er praktisk til at downloade filer og surfer på internettet - hvis webtrafikken er langsom eller nogle af dine pakker forsvinder, vil du stadig få din fil. Men disse protokoller fungerer ikke så godt for streaming media. Med streaming media har vi behov for, at data kommer hurtigt frem og med alle pakkerne i den rigtige rækkefølge.

Figuren her til højre viser hvordan streaming af video og audio virker.

streaming-video-audio-9.gif

Af denne grund bruger streaming af video og audio protokoller, der giver mulighed for overførsel af data i realtid. De nedbryder filer i meget små stykker og sender dem til et bestemt sted i en bestemt rækkefølge. Disse protokoller inkluderer:

  • Real-time Transfer Protocol (RTP)
  • Real-Time Streaming Protocol (RTSP)
  • Real-time Transport Control Protocol (RTCP)

Disse protokoller fungerer som et ekstra lag til de protokoller, der styrer webtrafik. Så når real-time-protokoller står for at streaming af data går godt, så er det stadig de andre web-protokoller, der arbejder i baggrunden. Disse protokoller arbejder også sammen for at afbalancere belastningen på serveren. Hvis alt for mange mennesker forsøger at få adgang til en fil på samme tid, kan serveren udskyde starten af nogle streams, indtil andre er færdig.

Real-Time Streaming Protocol

Undersøg Real-Time Streaming Protocol (RTSP) nærmere på Wikipedia og lav et mock-up (skitse) af, hvordan protokollen kan bruges til at sende lyd fra en medieserver til din maskine, herunder hvilke kommandoer du som bruger har mulighed for at anvende.

Referencer
1. Marshall Brain: How Gnutella Works; computer.howstuffworks.com, 1998-2011; http://computer.howstuffworks.com/file-sharing2.htm
2. Maxipedia: Grid computing - distributed computing; www.maxi-pedia.com, 2011; http://www.maxi-pedia.com/Grid+computing+distributed+computing
3. SETI@home; setiathome.berkeley.edu, 2011; http://setiathome.berkeley.edu/
4. Tracy V. Wilson: How Streaming Video and Audio Work; computer.howstuffworks.com, 2007; http://computer.howstuffworks.com/internet/basics/streaming-video-and-audio3.htm
5. Vangie Beal: All About Peer-To-Peer (P2P) Networks; www.webopedia.com, 2010; http://www.webopedia.com/DidYouKnow/Internet/2005/peer_to_peer.asp?page=1
Medmindre andet er angivet, er indholdet af denne side licenseret under Creative Commons Attribution-NonCommercial 3.0 License