Bittorent som fildelningsprotokoll

Relevanta dokument
Hur BitTorrent fungerar

BitTorrent. TDTS09 Datornät och internetprotokol Nicklas Schultz och Tim Bjärengren Linköpings universitet Linköping

Bittorrent: Rapport av projektarbetet i kursen Datakommunikation och Distribuerade System

Internets historia i Sverige

The Pirate Bay-rättegången, dag 6 Fritt nedtecknat

Filöverföring i Windowsmiljö

Skärmbilden i Netscape Navigator

Olika slags datornätverk. Föreläsning 5 Internet ARPANET, Internet började med ARPANET

1. Starta om din Mac. 2. Kontrollera din Internetuppkoppling

Win95/98 Nätverks Kompendium. av DRIFTGRUPPEN

PEER TO PEER STREAMING

Manual - Inläsningstjänsts App (ios för iphone och ipad)

EDA Datakommunikation och Distribuerade System. Peer-To-Peer system

Projektrapport. MegaLoad. Nätverksprogrammering EDA

Datakommunika,on på Internet

Web Crawlers. TDTS09, Datornät och internetprotokoll. Denis Golubovic Fredrik Salin Linköpings universitet Linköping

UNGDOMAR, MUSIK och INTERNET

Motionera med mera. Sammanfattning. Klass: Te2c, Polhemskolan i Lund Av: Viktor Joelsson Kristoffer Korén Harry Larsson

IFPI Svenska Gruppen. Magnus Mårtensson /.org

Grundläggande datavetenskap, 4p

Uppdatering av programvaror

Gränssnitt för FakeGranska. Lars Mattsson

IPv6 Jonas Aronsson 3TEa

Ändringar i samband med aktivering av. Microsoft Windows Vista

Säkerhetskopiera mobilen

Hur patchar man Entré?

AUTOMATISKA PROGRAMUPPDATERINGAR

ONEDRIVE ÖVERBLICK Vad är OneDrive?... 2 Molnet?... 2 Två typer av OneDrive... 2 Hitta sin OneDrive för företag... 3

Security/Anonymity in P2P Networks

1 Installationsinstruktioner

BitTorrent och traffic shaping

3. Hur är nätverkets konstruktion idag i jämförelse med de första? Svar: De är fortfarande densamma.

Rapport om fildelningsjakten år Av Ung Pirats kampanj Brottskod 5101

FileMaker. Köra FileMaker Pro 10 på Terminal Services

Introduktion till DigiExam-klienten/appen

Manual Sportident Onlinekontroll via GPRS

DNS-test. Patrik Fältström. Ulf Vedenbrant.

Frågor och svar om ArcGIS Pro Licensiering

Användarhandbok OE/OSSpeaker V.10.3

Tentamen i Datorkommunikation den 10 mars 2014

FLEX Personalsystem. Uppdateringsanvisning

DC ++ o allt annat runt om! (en kom-i-gång guide..) Klicka på File Settings. Färdigt med konfigureringen!

IDE USB kabel Windows XP, Vista 7 löäzxcvbnmqwertyuiopåasdfghjklöäz [Version 1.4, ]

WWW. Exempel på klientsidan. Överföring av en html-fil. Snyggare variant. Verkligt format. Meddelandeformat för begäran HTTP

Real-time requirements for online games

Så här hanterar du din OneDrive i Office 365

Hur patchar man Entré?

Instruktioner för uppdatering från Ethiris 5.x till 6.0

INSTALLATION AV VITEC MÄKLARSYSTEM

1. Säkerhetskopiera den eller de byråer du har arbetat med via i Visma Klient.

Manual - Inläsningstjänsts App (Android)

IT policy för elever vid

ICQ - EN SOCIAL GIMMICK ELLER ETT SAMARBETSVERKTYG?

CHALMERS TEKNISKA HÖGSKOLA EDA Datakommunikation och Distribuerade System

Har nu fått mitt första större projekt att programmera men känner att vissa funktioner har jag inte riktigt koll på.

Introduktion till DigiExam-klienten/appen

Övningar - Datorkommunikation

IPv6 Beredskap på svenska storföretag och myndigheter. En rapport från.se

Datainsamling över Internet

Uppdatering av programvaror Användarhandbok

LABORATIONSRAPPORT Operativsystem 1 Laboration 1, Ghost, pingpong och Windows 2003 installation

Krav: * Filen MpUpdate.exe får inte köras när du startar denna uppdatering.

HOGIA AUDIT MED BOKSLUT, HOGIA AUDIT och HOGIA BOKSLUT

Administrationsmanual ImageBank 2

INSTALLATION AV KLIENT

meddelad i Huddinge. Åklagare Kammaråklagare Ingmarie Olsson Åklagarmyndigheten Internationella åklagarkammaren i Stockholm

Accelerering av filhämtning

INTERNET HUR FUNGERAR DET OCH VAD KAN MAN GÖRA MED DET?

DIG IN TO Nätverksteknologier

Webbteknik II. Föreläsning 4. Watching the river flow. John Häggerud, 2011

STYRKAN I ENKELHETEN. Business Suite

Guide för att välja fibertjänst

TCP/IP och Internetadressering

Inlämningsuppgift 12b Router med WiFi. Här ska du: Installera och konfigurera en trådlös router i nätverket.

Installation och aktivering av Windows 7

- ArcGIS Pro är en ny applikation som är tillgänglig som del av ArcGIS for Desktop. För att få ArcGIS Pro, köper man ArcGIS for Desktop

Tentamen i datakommunikation EDA343/DIT420 Vt 2011

TES Mobil. Användarmanual. Användarmanual TES Mobil Dok.nr v8

3.2 1H[W*HQHUDWLRQ6HFXULW\ Användarmanual

Datakursen PRO Veberöd våren 2011 internet

Instruktioner för uppdatering från Ethiris 4.10 till 5.x

TUTORIAL 3: ATT STARTA ETT NYTT PROJEKT, IMPORTERA ELLER DIGITALISERA MATERIAL, SAMT SORTERA DET.

DIG IN TO Administration av nätverk- och serverutrustning

Datakommunika,on på Internet

2006 UPPHOVSRÄTTS- OCH SÄKERHETSGUIDE FÖR FÖRETAG

Installation av WinPig Slakt

Laboration 4 Rekognosering och nätverksattacker

Hur patchar man Entré?

Så delar du filer. utan att bli övervakad LAJKA-GUIDE

Frågor och svar om ArcGIS Pro Licensiering

DATA CIRKEL VÅREN 2014

FileCentral Desktop. Användarhandledning Version

Så här byter du från Unifaun WebOrder (UWO) till Unifaun OnlineConnect (UOCT)

Distribuerade affärssystem

Alternativet är iwindows registret som ni hittar under regedit och Windows XP 32 bit.

Manual Sportident Onlinekontroll via GPRS

Denial of Services attacker. en översikt

============================================================================

Hur gör man ett trådlöst nätverk säkert?

Transkript:

TDTS09 Bittorent som fildelningsprotokoll Historik och experiment med Wireshark Niklas Hillgren (nikhi944@student.liu.se) Christoffer Johansson (chrjo252@student.liu.se) Linköpings universitet Linköping 2008-02-22

Bild tagen från: http://www.thepiratebay.com

Sammanfattning Vi har med hjälp av packetsniffer-programmet Wireshark analyserat vad som händer när du som användare laddar ned en fil från internet med hjälp av ett torrentprogram. Vi har haft som mål att gå igenom paket för paket vad din dator respektive nedladdningsservern gör, med fokus på Bittorrentprotokollet. Vi har kunnat förklara hur Bittorrent fungerar tekniskt och därav kunna sätta oss in i hur nedladdningservern gör och din egen dator gör i sammanhanget.

Innehållsförteckning 1 Inledning... 1 1.1 Syfte... 1 1.2 Avgränsning... 1 1.3 Metod... 1 2 Vad är fildelning?... 2 2.1 Fildelningshistorik... 2 2.2 Så här fungerar Bittorrent... 3 2.3 Bittorrenthistorik... 4 3 Experiment med Wireshark... 6 3.1 Förberedelser och första kontakten med trackern... 6 3.2 Första handskakningen och framåt... 6 4 Förutsättningar och algoritmer för Bittorrentprotokollet... 8 4.1 Bittorrentprioritering... 8 4.2 Fusk med delningen... 8 5 Diskussion och slutsats... 10 5.1 Fördelar och nackdelar med vår undersökning... 10 5.2 Fördelar och nackdelar med Bittorrent... 10 5.3 Slutsats... 11 Källor... 12 Bilaga A... 13 Bilaga B... 14 Bilaga C... 15

1 Inledning IT-branschen har på senare tid exploderat; allt fler lär sig använda sig av internet och olika typer av fildelningsprotokoll. Men det är inte speciellt många som sätter sig in i hur de olika programmen egentligen fungerar. De flesta bryr sig snarare om hur man använder programmen för att ladda ned de saker man är intresserade av och struntar sedan i bakgrundsprocessen. Vi har valt att lära oss mer om bakgrundsprocessen, detta för att man skall få en förståelse för hur Bittorrentnedladdningar fungerar, som sedan skall kunna ge oss en bättre inblick i hur allt hänger ihop. 1.1 Syfte Syftet med den här rapporten är att få en teknisk förståelse för hur fildelningsprotokollet Bittorrent fungerar. Vi har med hjälp av wireshark tittat på paket och sedan analyserat hur dessa handlingar genomförs för att kunna förstå hur fildelningen fungerar. 1.2 Avgränsning Det finns en mängd olika nedladdningsprotokoll; vi kommer endast inrikta oss på de tekniska aspekterna av vad som anses vara det mest använda protokollet idag, nämligen Bittorrentprotokollet. För att kunna ge ett bättre helhetsintryck av hur en hel nedladdning fungerar kommer vi även nämna de andra protokoll som används, men vi kommer ej gå in djupare på funktionen av dessa. 1.3 Metod För att ha möjlighet att få en så god förståelse som möjligt av Bittorrentprotokollet, bestämde vi oss för att genomföra en detaljerad analys av vad som faktiskt händer när man som användare försöker ladda ned något. Sättet vi gjort detta på var att först införskaffa ett vanligt torrentprogram. Sedan använda oss av packetsnifferprogrammet Wireshark för att göra en så kallad capture, vilket innebär att programmet tittar och sparar alla paket som skickas till andra klienter eller servrar och även de paket som kommer till den datorn man sitter vid. Efter att ha startat denna capture påbörjade vi en nedladdning, väntade tills vi både fått en aktiv nedladdning och uppladdning och avbröt sedan nedladdningen. På detta sätt tror vi oss fått med de viktigaste delarna av hur Bittorrentprotokollet arbetar. 1

2 Vad är fildelning? Det grundläggande konceptet bakom fildelning är att skapa ett stort nätverk av datorer där människor ska ha möjlighet att dela filer över internet. Filerna som delas kan variera mellan exempelvis program, filmer, musik och bilder. För att ha möjlighet till att gå med i ett fildelningsnätverk behövs ett fildelningsprogram. Detta program kommer få din dator att fungera som både klient och server inom det valda nätverket, och på så sätt ge dig tillgång till att hämta hem filer och samtidigt dela med dig av de filer du själv har [1]. 2.1 Fildelningshistorik År 1983 lanseras världens första datanätverk baserat på IP-teknik av National Science Foundation (NSFNET); kort efter detta släpps även FTPtekniken (File Transfer Protocol) som baseras på det nya IP-protokollet. FTP-protokollet är uppbyggt på så sätt att en administratör kan lägga upp en server, där administratören kan dela med sig av diverse filer han eller hon har lagt upp. Sedan kan användare logga in på denna server och ladda ner filerna som anses vara av intresse. Det tog inte lång tid förrän användare världen över började lägga upp bilder, musik och dataspel på detta nätverk av FTP-servrar som skapades. Detta blev spel och skivbolagen inte särskilt förtjusta i p.g.a. de ökade illegala nedladdningarna. Storbolagen började direkt jaga och stänga av servrar som då sysslade med gratis fildelning. Men fildelarna låg redan ett steg före med en ny teknik kallad p2p (peer to peer) som började utvecklas ordentligt, där användarna har filerna kvar på sin hårddisk, men filerna indexeras i ett gemensamt sökprogram [2]. År 1999 lanserade en student vid namn Shawn Fanning programmet Napster [2]. Det möjliggjorde att man för första gången kunde ta del av filer hela världen över. I Napster fanns det även en inbyggd sökfunktion, så att man lättare kunde hitta det man ville ha. I fildelningsnätverket så fanns det en rad av olika illegala filer bland annat musik och film filer. Det gjorde självklart skivbolagen något nervösa och de visade direkt sitt motstånd till detta genom RIIA (The Record Industry Association of America), ett bolag som representerar skivindustrin i USA [2]. I december 1999 valde RIIA att stämma Napsters tillverkare för att ha brutit mot upphovsrättslagen. Eftersom det lades upp och delades illegala filer som bröt mot upphovsrättlagen. Under rättegången fick Napster väldigt mycket publicitet vilket gav effekten att det växte explosivartat. Rättegången gav en god insikt i vad som var Napsters största svaghet. Att ha alla filer på en stationär server gjorde att ifall servern skulle stängas av skulle även nätverket försvinna. De som ägde servern skulle även kunna hållas ansvariga för allt som pågick på den, inkluderat den illegala fildelningen. Med vetskapen om detta inspirerades många av Napsters användare att börja skapa en efterföljare, utifall Napster servrar skulle stångas av. 2

I början av 2000 släpptes programmet Gnutella av tillverkaren Nullsoft, vilka väldigt snabbt efter släppet frånsade sig all support och rätt till programmet. Programmerare började då försöka förstå sig på Gnutella genom att undersöka källkoden. Källkoden som var nödvändig för att skapa uppdateringar, man kunde även använda källkoden för att kunna bygga nya program. I februari och juni 2001 kom två fällande domar mot Napster och i september 2002 stängdes Napster [2]. Napsters nederlag sågs av storbolagen som en stor seger, men det betydde endast att fildelarna spred sig till nya program. Några av de program som kom att användas en hel del var baserade på den tidigare släppta Gnutellabasen, exempelvis Morpheus och Bearshare [3]. Andra program som även blev stora var DC++ och Kazaa, alla baserade på p2p-teknik. Eftersom p2p-tekniken fortfarande använde sig av en gemensam server för sökning kom det även en fällande dom mot Kazaa [3]. Detta tvingade fildelarna att återigen omgruppera. Nästa steg i utvecklingen hade funnits i några år, men tekniken hade inte slagit igenom. Detta gjorde det enkelt att utveckla fildelningstekninken [3]. Nästa steg i fildelningsutvecklingen kallas torrentar, vilket innebär att användare kopplas samman med varandra utan att filerna går genom en central server. Detta kommer vi att behandla mer i detalj i avsnitt 2.2. 2.2 Så här fungerar Bittorrent För att ladda hem en fil via Bittorrent måste man först få tag på en torrentfil. När man kör denna fil så kopplar man upp till en tracer, och denna ger dig information om andra klienter som laddar hem samma fil. Genom informationen man har fått genom tracen kommer man att kunna koppla upp sig mot andra klienter och ladda hem filen man vill ha. Bittorrent kommer även ge tracen information om hur andra klienter kan få tag på filen ifrån din dator. Denna process upprepas tills filen har laddats hem [6]. 3

Figur 1: Exempel Bittorrent 1 (Nedladdning från en server med hjälp av exempelvis FTPprotokollet.) Figur 2: Exempel p2p 1 Bitorrentprotokoll.) (Nedladdning med Om man jämför det med vanlig fildelning (se figur 1), då man delar bandbredden till servern med andra och alla är beroende av samma server, så kan man snabbt se vad som är den stora fördelen med Bittorrent. Genom att använda Bittorrent finns det ingen risk att servern överbelastas och man slipper låset på max 8 klienter som traditionell fildelning har (se figur 2)[6]. En klient som delar med sig av en fil till andra klienter kallas seeder. Om många seeders för en speciell fil är online när man vill ladda ner den så kan man enklare utnyttja sin fulla bandbredd, då man kan ladda hem delar av samma fil från olika seeders [4]. Medan en leecher är en klient som laddar hem som med hjälp av en seeder laddar hem en fil[4]. 2.3 Bittorrenthistorik Han som utvecklade Bittorrent heter Bram Cohen. Bram Cohen växte upp på Manhattan, och vid sex års ålder började hans far lära honom baserna i programmering. Bram Cohen var en aktiv programmerare redan vid tio års ålder. Senare i livet gick han på the State University of New i Buffalo, där han studerade två år innan han hoppade av på grund av understimulans [5]. Efter avhoppet tog Bram Cohen jobb på Kinko's men blev snart sparkad för sin arrogans. Efter att ha testat ytterligare något jobb utan större lycka flyttade han till hamnområdet i Buffalo, där han tog de jobb som intresserade honom. Det var också där han började knyta kontakter med andra programmerare. Genom den stimulansen började hans idéer om Bittorrent ta fart. Cohen visste själv en del om nätverksprogrammering sedan tidigare. Han tyckte de program och protokoll som för tillfället fanns tillgängliga var dåliga, eftersom de hade väldigt låg kapacitet då det kom till antalet klienter som kunde ladda ned samtidigt [5]. 1 Källa: <http://www.piratbyran.org/index.php?view=articles&id=35&cat=1> 4

År 2001 satte Cohen upp målet att skapa ett program där det inte skulle finnas någon begränsning på antalet klienter som samtidigt kunde ladda ned data. Det var då Bittorrent började utvecklas. Cohen utvecklade programmet på egen hand till en så kallad Community, närmare bestämt etree.org [5]. (en sida där musiker själva lägger upp sin musik och godkänner nedladdning av filerna) Det tog däremot inte lång tid innan man började använda den till illegal nedladdning, vilket ironiskt nog Cohen själv är emot [5]. Efter utvecklingen av Bittorrent har Cohen bland annat jobbat för Valve Software (www.valvesoftware.com) i utvecklingen av Half-Life 2, men han lämnade företaget efter bara några månader och sa att det inte var något för honom. Idag försörjer sig Cohen från donationer av nöjda Bittorrentanvändare [5]. 5

3 Experiment med Wireshark I följande avsnitt kommer vi i detalj att presentera resultatet av vår analys av hur Bittorrentprotokollet fungerar i en så kallad capture vi gjort i Wireshark versionen 6.99.7. För att kunna se helheten av detta kommer vi även ta med en del andra protokoll i vår analys, eftersom delar av kommunikationen använder sig av TCP- och HTTP-protokollen. Grundförutsättningen för att ha möjlighet att utföra analysen var att installera ett torrentprogram, och sedan leta upp en lämplig fil att ladda ned. Denna fil kan även kallas torrent eller trace. 3.1 Förberedelser och första kontakten med trackern Det första vi gjorde var att stänga av alla program som eventuellt kunde störa vår capture, program som automatiskt i bakgrunden söker efter uppdateringar eller liknande. När detta var gjort och vi kunde klassa vårt nätverk som ett tyst nätverk startade vi vår capture i Wireshark, för att sedan starta vårt torrentprogram och starta en nedladdning. Det första som sker är att ditt torrentprogram använder sig av HTTP för att koppla upp sig mot den trace du valt på portalen, exempelvis The Pirate Bay [6]. Då kommer portalen att tilldela dig ett så kallat trace-id, vilket innebär att du får ett eget id-nummer, som sedan läggs in i en tabell där alla som är aktiva på torrenten i fråga finns. Det id-numret vidarebefordras även till andra underklienter, där de också får reda på vilken version av nedladdningsprogram du har. Detta är nödvändigt för att övriga klienter ska kunna ladda hem filen från dig. Ditt torrentprogram går sedan in och tittar i just den tabell där du själv precis lagts in. Där letar torrentprogrammet upp vilka användare som laddar upp och vilken hastighet de har, detta för att kunna maximera din egen nedladdningshastighet. Informationen i denna tabell uppdateras kontinuerligt och alla klienter som är intresserade av torrenten i fråga kollar av den med jämna mellanrum. I tabellen finns även en lista på vilka paket alla dessa användare har hunnit få hem. Ditt torrentprogram kommer då att leta upp användaren som har mest sällsynta paket och initiera första kontakten med denna. 3.2 Första handskakningen och framåt Efter ca 6,5 sekunder kommer vi till första kommunikationen med själva Bittorrentprotokollet. Eftersom det är Bittorrent vi undersöker så är det väldigt intressant att se när informations skickas emellan din klient och andra klienter (Se Bilaga B). Här följer en numrerad lista för vad som händer paket för paket, mellan två specificerade parter, en klient och en server. 6

1. Användaren startar en handskakning med servern. 2. Servern svarar på handskakningen och meddelar användaren vilka delar av den fil som skall laddas ned som servern har. (Se Bilaga A) 3. Då användaren tagit emot meddelandet om vilka delar servern har skickat användaren meddelandet till servern att den fått den fillistan. 4. Servern skickar en ACK på detta. (Se Bilaga B) 5. Användaren kollar snabbt igenom listan för att säkerställa ifall servern har några paket av intresse. Om användaren är intresserad skickas ett paket för att meddela att användaren är intresserad. (Se Bilaga B) 6. Servern skickar en ACK. (Se Bilaga B) 7. Servern meddelar att servern har öppnat sina portar. (Se Bilaga B) 8. Användaren skickar och meddelar vilka delar av fillistan användaren är intresserad av att ta emot först. (Se Bilaga B) 9. Servern börjar dela upp de data som användaren är intresserad av, dessa delas upp i segment för att sedan skickas iväg till användaren. (Se Bilaga B) 10. Användaren skickar kontinuerligt ACKar på de paketen som kommer men har kvar samma sekvensnummer tills den fått ett komplett paket. (Se Bilaga B) 11. När användaren fått alla paket den bett om, kommer den att se ifall servern har fått ytterligare paket av intresse. Ifall den har det, kommer användaren be om dessa paket, annars kommer en finish (FIN) att skickas och kopplingen mellan server och klient att stängas av. Denna process kan pågå mellan åtskilliga olika servrar och användare parallellt, för att kunna utnyttja bandbredden till fullo. Eftersom server och klient också är uppkopplade mot olika seeders samtidigt kan de få in nya paket i en konstant ström. Detta kan också på ett positivt sätt medföra att den person som till en början sitter som klient kan få paket att erbjuda servern (Se Bilaga C). Processen i sig kommer att upprepas på samma sätt tills filen användaren önskat ladda ner är fullständig. Användaren har sedan möjlighet att fortsätta vara seeder så att andra kan få tillgång till filen via användarens dator. 7

4 Förutsättningar och algoritmer för Bittorrentprotokollet För att över huvud taget ha möjlighet att påbörja dataöverföring mellan två datorer måste en del saker stämma först. Efter handskakningen står både användaren och servern i grundlägen. Dessa är Not interested för användaren respektive choke för servern, vilka förhindrar att någon dataöverföring äger rum. Det kommer då att skickas en ström av kontrollmeddelanden, exempelvis keepalive, så att uppkopplingen inte stängs ned, och bitfield vilket innebär att servern meddelar användaren vilka delar av torrenten han har. Sedan kommer två av de viktigaste kontrollmeddelandena som skickas mellan dem, nämligen interested och unchoke. Om användaren hittar något av intresse då användaren söker igenom det bitfield som skickas till honom, kommer användaren att skicka interested till servern. Servern måste då svara unchoke för att filöverföringen skall påbörjas [5]. 4.1 Bittorrentprioritering Bittorrent har även en algoritm som sköter den prioritet olika paket har i filen. När en användare fått hem ett komplett paket läggs detta upp i en idtabell som berättar för andra klienter att just den användaren har fått hem just den delen, och att han seedar den. Vilket gör det enklare för andra klienter som använder samma torrent att finna delar av filen som de själva saknar. Bittorrent är nämligen uppbyggt så att den hämtar hem den fil som är ovanligast först. Detta för att göra de mer ovanliga fildelarna mer lättillgängliga för andra klienter på torrenten. Samtidigt som det ges en slags försäkring så att man själv får hem den delen. [5]. Det finns två undantagsfall då Bittorrentprotokollet inte söker efter den mest sällsynta delen. Det första är när en klient inte hunnit få hem några data ännu. Då söker den istället efter den server som verkar kunna ge bäst bandbredd, så då nöjer sig klienten med en slumpvis vald del. Det andra specialfallet är om en klient nästan är klar med sin nedladdning. Då är det nödvändigtvis inte de mest sällsynta delarna som är kvar, och klienten söker istället efter de bitar han saknar [5]. 4.2 Fusk med delningen Eftersom Bittorrentklienter är uppbyggda på så sätt att de skall kunna vara näst intill helt självständiga, så måste det finnas en inbyggd funktion så att protokollet själv skall kunna hålla koll på om en klient vägrar att dela med sig av filen den håller på att ladda hem via torrent. Detta är löst genom att använda algoritmer som relativt effektivt löser dessa problem. Den algoritm Bittorrent använder sig av framförallt är den så kallade Prisoner s Dilemma. Det finnas inga direkta bevis för att just den skall fungera bäst men jämförelser har gjorts, vilka i de flesta fall har visat att Prisoner s Dilemma är mest effektiv. Algoritmen fungerar på följande sätt: 8

Om två användare är uppkopplade mot varandra, så kommer dessa att kontinuerligt skicka data så länge som de själva tar emot data. Men om däremot en av användarna helt plötsligt slutar skicka data, kommer användarens motpart också att straffa honom genom att sluta skicka av den data den klienten har. Däremot förlåts detta snabbt ifall den första användaren börjar dela med sig igen. Det uppsatta gränsvärdet är att det måste finnas minst 2/3 chans att användarna får ut mer än ett utbyte av data från den andra klienten [5]. 9

5 Diskussion och slutsats Vi är medvetna om att en del av våra källor kan ses som vinklade till Bittorrents fördel, men vi har försökt se dessa ur en kritisk synvinkel. 5.1 Fördelar och nackdelar med vår undersökning Eftersom vårt syfte från start var att få en förståelse för Bittorrents tekniska bitar, ansåg vi det som mest logiskt att gå ner och titta på paketnivå. Där kunde vi gå igenom händelserna steg för steg och sätta oss in i hur protokollet är uppbyggt. Vi kände att detta gav oss en bättre inblick i protokollet än att endast studera tidigare skrivna arbeten om Bittorrent. Eftersom vi huvudsakligen utgick från tidigare kunskaper när vi gjorde vår egen analys, kan vi lätt ha missuppfattat någon del. Vi hoppas däremot att vi lyckats undvika detta genom att senare gå igenom den litteratur vi lyckats finna inom ämnet, och jämföra den med resultatet vi kommit fram till. 5.2 Fördelar och nackdelar med Bittorrent Den absolut största fördelen med att använda sig av Bittorrentprotokollet är att det fungerar på ett sätt som drastiskt minskar belastningen på servern då man laddar hem filer. Man har även en större redundans i nätverket, eftersom filerna är uppdelade bland alla användare istället för på en central server. En annan sak som talar för Bittorrent är att ju fler som är intresserade av en viss nedladdning, desto mer gynnar detta bandbredden snarare än att göra nedladdningen långsammare som i tidigare protokoll, exempelvis p2p. Detta är möjligt eftersom man kan koppla upp sig mot flera användare och ladda hem samma fil. Det finns även en del nackdelar med Bittorrent. När Bittorent körs skapas en väldig press på de routrar som används, eftersom de får väldigt många paket att hantera. En till nackdel är att användaren är väldigt beroende av att det finns tillräckligt många personer som kan dela med sig av filen eftersom Bittorrent hämtar olika fragment av det man vill ladda ned från så många håll som möjligt. Om det då inte finns någon som seedar online för just den fil man söker, så kommer man heller inte att kunna ladda hem filen. Det kan även bli så att man får hem större delen av en fil, men inte det sista fragmentet. Detta är dock inte ett unikt problem för Bittorrentprotokollet, då alla fildelningsprotokoll behöver en fullständig fil för att fildelningen skall fungera korrekt. Men i andra protokoll finns inte risken att få exempelvis 95 % av en fil. Det som då istället händer i andra fildelningsprotokoll är att det inte finns någon fil alls att ladda ned. Då kan man använda den bandbredden till något annat mer användbart istället. 10

5.3 Slutsats Genom att först skapa ett någorlunda tyst nätverk, och sedan påbörja en capture i packetsnifferprogrammet Wireshark, har vi genomfört en detaljerad analys över hur Bittorrentprotokollet fungerar paket för paket. Våra egna slutsatser har vi sedan jämfört med tidigare information och arbeten i samma ämne, för att säkerställa att vi uppfattat saker och ting korrekt. Vi anser oss ha fått en mycket bättre inblick i hur Bittorrent fungerar och även hur tekniken kommit dit den är idag. Det vi huvudsakligen kommit fram till i vår analys av Bittorrentöverföringarna vi studerade i Wireshark är att Bittorrent fungerar i stort sett som väntat, även om det är något smartare än vi från början tänkt oss. Användaren tar kontakt med en server, som då skickar en lista där man kan finna de klienter som är av intresse och ladda hem den data som önskas. En sak som överraskade oss var att när vi jämfört de slutsatserna vi själva drog från vår analys, så stämde dessa väldigt bra överens med den information vi funnit i källorna som vi granskade. 11

Källor [1] Wallace Wang, (2006) Steal This File Sharing Book, No Starch Press. [2] Christer Berglund (2007) Från C64 till torrent fil, Veckans affärer, <http://ekonominyheterna.se/va/magasin/2007/21/fran-c64- till-torrent-fil>, (Nedladdat 2008-02-28) [3] Sean McManus (2003) A short history of filesharing, [www] http://www.sean.co.uk/a/musicjournalism/var/historyoffilesharing.shtm, (Nedladdat 2008-03-01) [4] Kim Peterson (2005) Bittorrent file-sharing program floods the Web Seattle Times, Seattletimes <http://seattletimes.nwsource.com/html/businesstechnology/20 02146729_Bittorrent10.html>, (Nedladdat 2008-03-01) [5] Jakob Brännström, Johan Brännström, (2008) Bittorrent - ett distribuerat nedladdningsystem, DCD seminarium på Chalmers (2008-01-21) <http://www.cs.chalmers.se/~tsigas/courses/dcdseminar/fil es/btorrent.pdf>, (Nedladdat 2008-03-14) 12

Bilaga A Servern meddelar vilka bitar den har. 13

Bilaga B En del av de paket som skickas från handskakningen och framåt. 14

Bilaga C Användaren meddelar att denne fått en bit som kanske den nuvarande server är intresserad av, samtidigt som användaren skickar request piece på de delar denne vill ha från servern. 15