BitTorrent

BitTorrent (av «torrent» – stri strøm, storm) er et p2p-system for å distribuere filer i et nettverk. Opprinnelig ble BitTorrent skrevet i Python av utvikleren Bram Cohen. Programmet ble gitt ut med MIT-lisens i 2002.

BitTorrent ble kjent ved å gjøre det mulig for mange brukere å laste ned samme filer uten at det går tregere for andre. Dette oppnås ved å tvinge alle som laster ned til å også laste opp deler av fila de har med andre som laster ned, så hvert medlem i en «sverm» bidrar til distribusjonen av innholdet.

Hvordan fungerer BitTorrent? 

Til forskjell fra tradisjonelle fildelingssystemer, er hovedmålet til BitTorrent å effektivt distribuere data til ei stor gruppe nedlastere ved å tvinge dem til å bidra i prosessen. BitTorrent-protokollen deler fila som skal distribueres opp i blokker, vanligvis av en størrelse på en kvart megabyte (250 KB). En liste over blokkene i fila, og informasjon om «sporingstjeneren» – (engelsk: tracker) – tjeneren som kobler alle klientene til hverandre, lages i en liten -fil, som distribueres på «vanlig» vis – på nettsider, via e-post eller lignende.

Fila – eller filene – lastes ned fra kilder oppgitt av sporingstjeneren, og mens den lastes ned, lastes den også opp til andre kilder. Klienten bruker all båndbredde den har tilgjengelig, som kan begrenses. Ved å laste opp filer mens den laster ned, bidrar hver klient i distribusjonen av fila – faktisk vil klienter som bidrar mye med å laste opp premieres og prioriteres, slik at den får lastet fra flere kilder enn andre. Dette er for å forhindre såkalt «leeching» (av «leech» – igle). Som navnet tilsier, reduserer dette problemet med folk som bare laster ned filene uten å bidra med videredistribusjon.

Når en klient begynner å laste ned ei fil, får den ikke nødvendigvis begynnelsen av fila først. Til å begynne med, sendes tilfeldige biter av fila til alle klientene. Så kobler brukerne til hverandre og utveksler de forskjellige delene. Når nok brukere er koblet til hverandre, vil omsider alle få tak i hele fila. Dette får hastigheten på opp- og nedlasting til å øke med antallet brukere som laster ned, til forskjell fra tradisjonelle metoder, der det går mye tregere når alle laster ned fra samme kilde.

Noen må selvfølgelig ha tilgang til kildefila for å kunne sette igang opplasting. Disse kalles «seedere» (av «seed» – frø). Hvis det ikke er noen «seedere» igjen, kan ikke klientene få tilgang til hele fila, med mindre de tilsammen har alle de forskjellige komponentene.

BitTorrent mot andre P2P-protokoller 

Det er to viktige forskjeller mellom BitTorrent og andre P2P-protokoller. For det første tilbyr ikke BitTorrent i seg selv noen måte å finne filer. En bruker må selv finne >-fila, og har da en større mulighet til å finne ut hvor filene kommer fra. For det andre gjør ikke BitTorrent noe forsøk på å skjule hvem som opprinnelig distribuerte fila. I tillegg er BitTorrent sentralisert, i den forstand at den er fullstendig avhengig av sporingstjeneren.

BitTorrent er også den P2P-protokollen som har hatt størst suksess for lovlig bruk, eksempelvis i distribusjonen av Linux-distribusjoner. På grunn av suksessen til BitTorrent-protokollen, ble dens skaper, Bram Cohen, leid inn for å utvikle systemer for å distribuere patcher for videospill – Blizzard bruker for eksempel BitTorrent-teknologi i distribusjonen av «World of Warcraft».

BitTorrent-klienter
For å laste ned innholdet som torrentfilen peker på, må man ha et BitTorrent-klient-program. Det opprinnelige programmet het bare BitTorrent, men det finnes i dag en rekke andre programmer, blant annet µTorrent, Vuze (tidligere Azureus) og BitComet. I tillegg har nettleseren Opera en innebygget BitTorrent-klient.

Bittorrent-trackere
Det finnes mange sider som sprer .torrent-filer. En av verdens største er The Pirate Bay, som ble stengt av svensk politi i 2006, men ble åpnet igjen etter kun 3 dager nedetid, da med servere i utlandet. En norsk variant er Norbits og en svensk shareworld.se.

Eksterne lenker 
 
  Guider til bittorrent og bittorrentprogrammer

Internett-protokoller
Fildelingsprogramvare