BitTorrent

BitTorrent er en protokoll utviklet for peer - to - peer fildeling Internett . Det er en av de vanligste protokollene for overføring av store filer.

Programmerer Bram Cohen utformet protokollen i april 2001 og publiserte dens første implementering 2. juli 2001. [ 1 ] Den eies for tiden av Justin Sun, grunnlegger av Tron Foundation, som kjøpte BitTorrent, Inc. for 140 millioner dollar i juni 18, 2018. Det er mange BitTorrent- klienter tilgjengelig for ulike operativsystemer .

Per januar 2012 hadde BitTorrent 150 millioner aktive brukere ifølge BitTorrent, Inc. Basert på dette estimerte de det totale antallet månedlige BitTorrent-brukere til å være større enn 250 millioner. I følge data som vises på deres egen nettside, anslår nåværende data at mer enn 170 millioner mennesker bruker produktet deres hver måned. Bittorrent-protokollen flytter opp til 40 % av verdens Internett-trafikk daglig. [ 2 ] På ethvert tidspunkt har BitTorrent i gjennomsnitt flere aktive brukere enn YouTube og Facebook til sammen (på ethvert tidspunkt, ikke totalt antall unike BitTorrent-spesifikke brukere). [ 3 ] På den annen side, etter nedleggelsen av Megaupload -nettstedet , har bruken av denne protokollen økt betraktelig.

Foreløpig har BitTorrent nettopp annonsert lanseringen av sin egen kryptovaluta , en ny token som også kalles BitTorrent (BTT), som den har til hensikt å utvide det den hevder å være dens visjon om et desentralisert internett, med forsøk på å forbedre hastigheten på nettverket , som muliggjør raskere torrent-nedlastinger.

Den nye kryptovalutaen kommer omtrent seks måneder etter at BitTorrent ble kjøpt opp av den globale organisasjonen TRON, fokusert på å skape et virkelig desentralisert Internett.

Beskrivelse

BitTorrent-protokollen kan brukes til å redusere virkningen av store fildistribusjon på servere . I stedet for å laste ned filen fra en enkelt server, lar BitTorrent-protokollen brukere bli med hverandre i en "sverm" for å laste ned og laste opp filen samtidig. Protokollen er et alternativ til det serverbaserte systemet, som består av å ha flere speilservere hvor brukeren laster ned hele filen, og den kan fungere på nettverk med lav båndbredde , på denne måten kan små enheter som smarttelefoner i stand til å distribuere store filer eller streame video til mange mottakere.

En bruker som ønsker å laste opp en fil, oppretter først en torrentfil og distribuerer den på en vanlig måte ( nettsider , e -post osv.). Den gjør deretter filen tilgjengelig på nettverket gjennom en BitTorrent- node som fungerer som et frø . Brukere som ønsker å laste ned filen, får tak i torrentfilen og oppretter en annen BitTorrent-node som fungerer som en klient eller " legler " , som utveksler deler av filen med frøet og med andre klienter.

Filen som distribueres er delt inn i små deler ( biter ). Hver gang en bruker mottar en ny del av filen, kan de i sin tur dele den med andre brukere, og frigjøre det originale frøet fra å måtte sende en kopi av den delen til alle brukere som vil ha filen. I BitTorrent deles oppgaven med å distribuere en fil av alle de som ønsker å ha filen. Det er fullt mulig at frøet bare sender én kopi av filen og filen distribueres til et ubegrenset antall brukere.

Hver del av filen er beskyttet av en kryptografisk hash inneholdt i torrentfilen . [ 4 ] Dette sikrer at enhver modifikasjon av en del kan oppdages, og forhindrer dermed at både tilfeldige og ondsinnede modifikasjoner mottas av andre noder. Hvis en node har den autentiske torrentfilen , kan den bekrefte autentisiteten til hele filen den har mottatt.

Deler lastes vanligvis ikke ned sekvensielt, de blir omorganisert av BitTorrent-klienten, som sjekker hvilke deler den har og hvilke deler som mangler. Alle deler av filen har samme størrelse og overføres på én gang (f.eks. kan en 10 MB fil overføres i ti 1 MiB deler eller førti 256 KiB deler ). På grunn av dette kan du når som helst slutte å laste ned en fil og fortsette den senere uten å miste tidligere nedlastet informasjon. Dette gjør BitTorrent spesielt nyttig for overføring av store filer. Dette lar også klienten enkelt søke etter tilgjengelige deler å laste ned, i stedet for å måtte pause nedlastingen og vente til neste del blir tilgjengelig, noe som reduserer nedlastingstiden.

Når en klient laster ned filen fullstendig, blir den et frø. Denne eventuelle endringen av klienter i frø bestemmer helsen ( helse ) eller tilgjengeligheten til filen (bestemt av antall brukere som har hele filen).

Den distribuerte naturen til BitTorrent fører til at filen blir distribuert over mange noder. Jo flere brukere blir med i «svermen», jo større er sjansen for at en node kan laste ned hele filen. I forhold til tradisjonelle distribusjonsordninger lar dette den opprinnelige distributøren redusere maskinvare- og båndbreddekostnader. Dette gir også redundans for potensielle systemproblemer, reduserer avhengigheter av den opprinnelige distributøren [ 5 ] , og gir forbigående nedlastingskilder (filen deles ikke alltid av de samme brukerne), og dermed vanskeligere å spore fra tid til annen. kommer fra av de som prøver å blokkere distribusjonen sammenlignet med en fil som ligger på en ekstern server.

BitTorrent sammenlignet med andre P2P-nettverk

Metoden som brukes av BitTorrent for å distribuere filer ligner på mange måter den som brukes av eDonkey 2000 -nettverket , men generelt deler og laster noder på dette nettverket ned større mengder filer, noe som reduserer båndbredden som er tilgjengelig for hver overføring. BitTorrent-overføringer er normalt veldig raske da alle nodene i en klynge fokuserer på å overføre en enkelt fil eller en samling filer. I tillegg belønner ikke eDonkey2000-protokollen de brukerne som deler en større båndbredde. Det bør imidlertid presiseres at den mest utbredte klienten for eDonkey-nettverket, eMule , inkluderer et kredittsystem for å belønne de som deler mest.

I motsetning til andre delingsnettverk, inkluderer ikke BitTorrent noen filsøkemekanisme. BitTorrent-brukere må finne torrentfilene som kreves av protokollen på egen hånd. Vanligvis kan disse filene lastes ned fra nettsider som publiserer store filer (som GNU/Linux-distribusjoner ) eller fra nettsøkindekser (som The Pirate Bay ).

Den opprinnelige implementeringen av BitTorrent ble programmert i Python , selv om du i dag kan finne klienter skrevet i C eller Java for eksempel.

I følge CacheLogic [ 6 ] ble BitTorrent i 2005 hovedsakelig brukt i Asia , mens eDonkey2000 ble foretrukket i Europa og Amerika .

Klientprogrammer

BitTorrent-klienter kan finnes i to forskjellige typer:

Strukturen til et BitTorrent -nettverk

Et Bittorrent-nettverk består av:

Mekanikk for hvordan BitTorrent fungerer:

  1. En bruker laster ned en .torrent -fil fra en webserver som inneholder informasjonen om filen vi ønsker å laste ned. Blant mye annen informasjon inneholder den adressen til trackeren som vi må koble til for å bli med i svermen av jevnaldrende ( .torrenten er vanligvis en veldig liten fil, noen få kilobyte ).
  2. Denne .torrent -filen åpnes med et "klientprogram", som vet hvordan denne informasjonen skal tolkes. Det er mange gratis klienter som kan brukes. Blant de mest populære er μtorrent , Bitcomet , Vuze (tidligere Azureus ). De er alle basert på den originale BitTorrent -protokollen, men noen av dem inkluderer forbedringer av protokollen.
  3. Trackeren og peeren kommuniserer over en "HTTP-tilkobling". Søkeroboten rapporterer listen over alle peers og frø som inneholder deler av filen vi ønsker å laste ned. Trackeren oppdaterer med informasjonen fra det nye paret du nettopp skrev inn.
  4. Når peeren vet hvor de skal lete etter de nødvendige delene, kommuniserer denne peeren med andre ved å bruke 'TCP-sockets' eller 'UDP' og filen begynner å lastes ned til brukerens datamaskin. Hver nedlastede del deles automatisk med andre jevnaldrende .

.torrent-filer og deres interne koding

.torrent-filer inneholder informasjon om filen vi ønsker å laste ned. Denne informasjonen er kodet ved hjelp av Bencoding .

Hvis vi åpner en .torrent-fil med et tekstredigeringsprogram, finner vi en ordbok som inneholder følgende nøkler:

Infoordboken som vi nettopp siterte inneholder i sin tur følgende nøkler:

Algoritmer: brikkevalg og parvalg

Denne delen vil forklare i detalj reglene for hvilke en eller annen bruker er valgt til å dele deler av filen og hvilke deler som overføres.

La oss først beskrive noen viktige termer:

Sjeldneste algoritme ]

Denne algoritmen definerer strategien som brukes av Bittorrent-protokollen for å velge neste del som skal lastes ned. Hvert par holder en liste over antall eksemplarer av hver brikke i sitt sett med par og bruker denne informasjonen til å definere sitt sett med de sjeldneste brikkene. La m være antall kopier av den sjeldneste brikken, så legges posisjonen til hver brikke med m kopier i settet med par til settet med de sjeldneste brikkene. Hvert par velger tilfeldig den neste brikken som skal slippes fra settet med de sjeldneste brikkene.

Oppførselen til denne algoritmen kan endres av tre grunner:

  1. Hvis et par har senket mindre enn 4 stykker, velger det tilfeldig neste stykke å senke. Når disse 4 delene er lastet ned, fungerer algoritmen som beskrevet ovenfor. Grunnen til denne innledende oppførselen er å la et par få ned sine første brikker veldig raskt, siden det er viktig å ha noen brikker for å begynne å handle i blokkeringsalgoritmen. Faktisk har et tilfeldig valgt stykke mange flere kopier enn sjeldnere stykker, så nedlastingstiden vil sannsynligvis bli mindre ved å velge den tilfeldig.
  2. Den andre årsaken er at når en av blokkene til en brikke er forespurt, blir de andre blokkene av samme brikke forespurt med høyeste prioritet. Årsaken til denne oppførselen er å fullføre nedlastingen av en komplett del så snart som mulig, siden bare komplette deler kan sendes.
  3. Den siste årsaken er sluttspillmodusen (sluttspillmodus). Denne modusen starter helt på slutten av nedlastingen, når peeren ber om alle blokkene som ennå ikke er mottatt fra alle peerne i peer-poolen som har disse blokkene. Hver gang en blokk mottas, kansellerer peeren forespørselen om den mottatte blokken til alle peers i peer-settet som har forespørselen aktiv.

Choke - ] _

Denne algoritmen definerer strategien som brukes av BitTorrent-protokollen for å velge neste peer å samhandle med. Den brukes for å sikre et godt opp/ned-forhold mellom parene. For eksempel bør «frikjørerne», par som aldri går opp, straffes. Algoritmen er beskrevet fra den lokale peerens synspunkt, så "interessert" betyr interessert i den lokale peeren og "blokkert" betyr blokkert av den lokale peeren. Algoritmen fungerer slik:

  1. På det meste 4 eksterne likemenn kan låses opp og være interessert samtidig.
  2. Hvert 10. sekund sorteres de interesserte eksterne peerne i henhold til deres nedlastingshastighet til den lokale peeren, og de 3 raskeste oppheves.
  3. Hvert 30. sekund låses et ekstra interessert par opp tilfeldig. Dette kalles "Optimistic Unchoke", som har to formål: det gjør det mulig å evaluere muligheten til å slippe nye par i puljen av par og lar også par som ikke har noen brikker å dele, få sin første brikke.

Begrensninger og angrep

Det anses som rettferdig å laste opp samme mengde data som er lastet ned, det vil si at nedlastings-/opplastingshastigheten er 1, men denne oppførselen er verken vanlig eller garantert i BitTorrent. Brukere blir vanligvis raskt koblet fra når de har fått den fullstendige kopien av filen. Dette kalles leeching .

Denne måten å handle på betyr at selv om alt det nye innholdet deles veldig raskt i begynnelsen, utløper torrenten i løpet av dagene fordi det ikke er noen frø igjen, siden BitTorrent bare tilbyr insentiver til leechere , men ikke til frø som ikke får noen fordel for å bli opp til nettet.

For å unngå dette har det dukket opp såkalte private trackere. Normalt, for å bruke en privat tracker, må du først identifisere deg. For hver registrerte bruker lagrer de trafikkstatistikk og bruker et prosentsystem som gjør det mulig å vite om brukeren deler dataene de har lastet ned eller laster ned. Mange av disse sporerne har en tendens til å bortvise brukere som har en lav prosentandel, siden de ikke samarbeider med nettverket ved å ikke dele.

Et annet svakt punkt er at trackeren er en flaskehals siden den forbruker 1 promille av den totale nettverkstrafikken. Tatt i betraktning mengden data som sirkulerer i et nettverk av denne typen, er det en prosentandel å ta hensyn til. I tillegg betyr tracker-krasj at nye likemenn ikke kan koble seg til og de som allerede er koblet til ikke kan oppdage nye. Konseptuelt dannes små uorganiserte øyer, der i virkeligheten alle nodene er koblet til hverandre gjennom naboer, men det er ingen kommunikasjon mellom disse øyene (kommunikasjonen mellom dem ble administrert av sporeren) og derfor har det en svært negativ innvirkning på nedlasting.

En annen svakhet med BitTorrent er at den er ineffektiv i små filoverføringer (noen få kb) siden båndbredden som brukes i protokollmeldinger er relativt høy.

I motsetning til andre kjente P2P-programmer som Kazaa eller Emule, mangler Bittorrent-klienter noe innholdssøkeverktøy. .Torrent-filer lastes vanligvis ned fra nettsider der nyheter vanligvis indekseres eller det er torrent-søkemotorer som mininova.org eller The Pirate Bay, denne metoden garanterer at den riktige filen blir lastet ned. Den svenske justisen har nylig dømt webansvarlige til The Pirate Bay til bøter og fengselsstraff for å ha samarbeidet i distribusjon av opphavsrettsbeskyttede filer, til tross for at innholdet i seg selv ikke ligger på deres servere.

På den annen side har BitTorrent en protokoll som anses som en av de økonomiske modellene. Den er uskyldig, den er ikke forberedt for ondsinnede klienter, og derfor presenterer ikke protokollen løsninger for mulige angrep gjennom denne typen klienter.

Her er noen eksempler på disse angrepene:

Hver peer genererer en unik identifikator i starten ved å hashe IP-adressen og tidspunktet. Hvis en peer genererte flere identifikatorer, kan det hende at settet med aktive peers til de andre peerne i nettverket bare består av en mengde falske identifikatorer for samme angripende peer, og på denne måten vil bare data bli servert til den .

Et par må heve de andre parene hvis det vil være en del av deres pool av aktive par. Hvis en peer bare kobler til frø, kan de laste ned hele filen uten å måtte dele en eneste del.

Bittorrent verifiserer integriteten til stykket når det er lastet ned ved å sammenligne hash-koden med den som dukket opp i metainformasjonen til torrenten. Når en jevnaldrende ber en ondsinnet kollega om en blokkering, kan den ondsinnede jevnaldrende si at de har det selv om de ikke har det. Det han sender er søppel, selv om den andre jevnaldrende ikke skjønner det før hele stykket har kommet og ber om blokken igjen. Selv om korrupte data sendes til den, oppdateres opplastingshastighetene og den ondsinnede peeren kan forbli på listen over foretrukne peers.

Gjeldende BitTorrent-klienter, når de mottar flere ødelagte blokker fra samme klient, legger IP-adressen deres til en liste over blokkerte brukere og løser dermed dette problemet.

Bittorrent-protokollen er i stand til å bli forbedret, så noen klienter har innlemmet ulike modifikasjoner som DHT, Web Seeding og Super Seeding:

DHT

Hvis trackeren går ned, er vi avhengige av jevnaldrende vi er koblet til for å fullføre en nedlasting. Det er ikke alltid oppnådd siden det er nødvendig at de ikke kobles fra og at de har den komplette filen mellom dem alle.

DHT (Distributed Hash Table) er en offisiell utvidelse av Bittorrent-protokollen. Den består i at hver node i nettverket holder informasjon om nabonodene. Dette unngår sniffer-flaskehalsen vi snakket om tidligere, siden hvis snifferen går ned er all peer-informasjon fortsatt tilgjengelig på peerne selv.

Det kan betraktes som en desentralisering av protokollen, selv om den ennå ikke er fullført fordi det fortsatt avhenger av trackeren for å laste ned .torrent og begynne å kjenne de første nodene.

Bruk av DHT og kommunikasjon mellom noder uten å gå gjennom sporeren innebærer en uavhengighet av noden som noen ganger ikke kan være av interesse, som i tilfellet med private sporere, hvor visse begrensninger vanligvis brukes på brukeren i henhold til deres statistikk og hvor det er vanlig krav om å være registrert (minst) for å kunne gå inn i nettverket.

På grunn av dette, og for å hindre private tracker-administratorer fra å utestenge DHT-aktiverte klientbrukere, har muligheten til å sette en ny parameter i .torrent-filen kalt "Privat Flag" blitt lagt til. Når klienten leser dette alternativet, deaktiverer den automatisk DHT for den nedlastingen. Denne parametertypen støttes av alle klienter. Så hvis du ikke implementerer DHT, hopper du bare over det.

Web seeding

Ved mange anledninger, på samme nettside, vises HTTP- eller FTP-lenker i tillegg til .torrent-filen som mulige alternativer for å laste ned en fil. Ideen med web seeding er å kombinere kraften til direkte nedlasting fra serveren med P2P. På denne måten vil det alltid være minst ett komplett frø å laste ned fra. Den første klienten som inkluderte denne forbedringen var BitTornado.

Superseed

Superseeding - på engelsk superseeding (Vuze) eller initial seeding (µtorrent) - tjener slik at det første frøet som laster opp en ny fil kan redusere antall stykker den må laste opp for å lage de første frøene og slik at parene som skal gå nede kan de gjøre det raskere.

Når et frø "A" går inn i en sverm i superseed-modus, vises det ikke i svermen som et normalt frø med 100 % av filen, men er skjult som en vanlig leecher som ikke har noen data. Når andre par kommer inn i svermen, sender det første frøet (det forkledde paret) dem en melding om at det har en ny brikke - en brikke som faktisk aldri har blitt sendt. Dette vil føre til at par "B" i svermen ber om bare den delen.

Når peer "B" er ferdig med å laste ned det stykket, vil frø "A" ikke fortelle deg at det har andre stykker å sende før det ser at det første stykket det sendte til "B" har blitt delt med minst én annen peer "C" . ”. Så lenge det ikke skjer, vil ikke peer "B" ha tilgang til noen av de andre delene fra frø "A", og derfor vil ikke "A" kaste bort opplastingsbåndbredden på å sende stykker den allerede har sendt på nytt .

Torrent-filsøkere

På grunn av den store spredningen av denne typen P2P-nedlastinger, har det dukket opp personlige søkemotorer som er spesialiserte på å finne torrent-filer som ligger på servere som The Pirate Bay eller andre på Internett.

BitTorrent-ordforråd

Følgende liste inneholder hovedbegrepene som brukes i sjargongen til BitTorrent-protokollen.

tilgjengelighet _ _

Det er antallet komplette kopier av en fil som er tilgjengelig for nedlasting. Hvert frø legger til 1,0 til dette tallet, fordi de har hele filen. En bruker med en ufullstendig fil legger til en brøkdel av tilgjengeligheten, hvis ingen andre brukere har den delen. For eksempel, en bruker som har lastet ned 65,3 % av filen øker tilgjengeligheten med 0,653. Men hvis to brukere har den samme delen av filen lastet ned, for eksempel 50 %, og det bare er ett frø, er tilgjengeligheten 1.

Klient ( klient )

Det er dataprogrammet som tillater peer-to-peer fildeling ved hjelp av BitTorrent-protokollen. Noen eksempler på klienter er Transmission , µTorrent og Vuze .

helse _ _

Helsen til en torrentfil er relatert til tilgjengelighet. I torrent -filkataloger vises det vanligvis som en prosentandel og indikerer prosentandelen av filen som er tilgjengelig. En fil med 50 % helse betyr at bare halvparten av filen er tilgjengelig, så hele filen kan ikke lastes ned.

Katalog ( indeks )

En BitTorrent-katalog eller -indeks er en nettside som inneholder en liste over torrentfiler ( vanligvis inkludert en beskrivelse og annen informasjon også) og en nettleser . Noen kataloger har også sin egen crawler .

Se også

Referanser

  1. Cohen, Bram (2. juli 2001). "BitTorrent — en ny P2P-app" . Yahoo eGroups. Arkivert fra originalen 5. september 2013 . Hentet 15. april 2007 . 
  2. BitTorrent og µTorrent programvare overgår 150 millioner brukermilepæl
  3. BitTorrent har flere brukere enn Netflix og Hulu kombinert - og doblet
  4. ^ Bram Cohen (10. januar 2008). "BitTorrent-protokollspesifikasjonen" . bittorrent.org . Hentet 20. november 2010 . 
  5. Estimating Self-Sustainability in Peer-to-Peer Swarming Systems av D. Menasche, A. Rocha, E. de Souza og Silva, R.M. Leao, D. Towsley, A. Venkataramani
  6. CacheLogic kunngjør at eDonkey har blitt verdens største P2P-filhandelsnettverk, overgår BitTorrent

Eksterne lenker