Torrent -fil - Torrent file

I BitTorrent-fildistribusjonssystemet er en torrentfil eller meta-infofil en datafil som inneholder metadata om filer og mapper som skal distribueres, og vanligvis også en liste over nettverksstedene til trackere , som er datamaskiner som hjelper deltakere i system finne hverandre og danne effektive distribusjonsgrupper som kalles svermer . En torrentfil inneholder ikke innholdet som skal distribueres; den inneholder bare informasjon om disse filene, for eksempel navn, mappestruktur og størrelser som er oppnådd via kryptografiske hash -verdier for å bekrefte filintegritet. Begrepet torrent kan referere enten til metadatafilen eller filene som er lastet ned, avhengig av konteksten.

En torrentfil fungerer som en innholdsfortegnelse (indeks) som lar datamaskiner finne informasjon ved bruk av en Bittorrent -klient. En torrentfil gir adresser som identifiserer datamaskiner som kan sende deler av den forespurte filen. Ved hjelp av en torrentfil kan man laste ned små deler av den opprinnelige filen fra datamaskiner som allerede har lastet den ned. Disse "jevnaldrende" tillater nedlasting av filen i tillegg til, eller i stedet for, den primære serveren .

Torrent -filer er vanligvis navngitt med utvidelsen ".torrent".

Torrentfiler selv og metoden for å bruke torrentfiler er blitt opprettet for å lette belastningen på sentrale servere, ettersom det i stedet for å sende en fil til forespørsel, kan den koble til båndbredden som er nødvendig for filoverføringen, og redusere tiden det tar å last ned store filer. Mange gratis-/freeware -programmer og operativsystemer, for eksempel de forskjellige Linux -distribusjonene, tilbyr et torrent -nedlastingsalternativ for brukere som søker de nevnte fordelene. Andre store nedlastinger, for eksempel mediefiler, blir ofte også torrentet.

Torrent -filer
Filnavn forlengelse
.torrent
Internett -medietype
application/x-bittorrent
Standard BEP-0003

Bakgrunn

Vanligvis er Internett -tilgang asymmetrisk, og støtter større nedlastingshastigheter enn opplastingshastigheter, noe som begrenser båndbredden for hver nedlasting, og noen ganger håndhever båndbreddehett og perioder der systemer ikke er tilgjengelige. Dette skaper ineffektivitet når mange mennesker ønsker å skaffe det samme settet med filer fra en enkelt kilde; kilden må alltid være online og må ha massiv utgående båndbredde. BitTorrent-protokollen tar for seg dette ved å desentralisere distribusjonen, utnytte menneskers evne til å nettverke " peer-to-peer ", seg imellom.

Hver fil som skal distribueres er delt inn i små informasjonsbiter kalt stykker . Nedlasting av jevnaldrende oppnår høye nedlastningshastigheter ved å be om flere stykker fra forskjellige datamaskiner samtidig i svermen. Når de er oppnådd, blir disse brikkene vanligvis umiddelbart tilgjengelige for nedlasting av andre i svermen. På denne måten er belastningen på nettverket spredt blant nedlasterne, i stedet for å konsentrere seg om et sentralt distribusjonsnav eller en klynge. Så lenge alle brikkene er tilgjengelige, kan jevnaldrende (nedlastere og opplastere) komme og gå; ingen jevnaldrende trenger å ha alle biter, eller til og med holde kontakten med svermen for at distribusjonen skal fortsette blant de andre jevnaldrende.

En liten torrentfil opprettes for å representere en fil eller mappe som skal deles. Torrentfilen fungerer som nøkkelen til å starte nedlasting av det faktiske innholdet. Noen som er interessert i å motta den delte filen eller mappen, får først den tilsvarende torrentfilen, enten ved å laste den ned direkte eller ved å bruke en magnetkobling . Brukeren åpner deretter filen i en BitTorrent -klient, som automatiserer resten av prosessen. For å lære internettstedet til jevnaldrende som kan dele brikker, kobler klienten seg til sporerne som er navngitt i torrentfilen, og/eller oppnår et lignende resultat ved bruk av distribuerte hashtabeller . Deretter kobler klienten seg direkte til jevnaldrende for å be om brikker og på annen måte delta i en sverm. Klienten kan også rapportere fremdriften til trackere, for å hjelpe trackeren med anbefalinger fra kollegaer.

Når klienten har alle brikkene, samler BitTorrent -klienten dem til en brukbar form. De kan også fortsette å dele brikkene og heve statusen til såmaskin i stedet for vanlig jevnaldrende.

Filstruktur

En torrentfil inneholder en liste over filer og integritetsmetadata om alle brikkene, og inneholder eventuelt en liste over sporere.

En torrentfil er en benkodert ordbok med følgende taster (tastene i en hvilken som helst benkodert ordbok er leksikografisk ordnet ):

  • kunngjøre - URL -en til trackeren
  • info - dette kartlegges til en ordbok hvis nøkler er avhengig av om en eller flere filer deles:
    • filer - en liste over ordbøker som hver tilsvarer en fil (bare når flere filer deles). Hver ordbok har følgende taster:
      • lengde - størrelsen på filen i byte.
      • bane - en liste over strenger som tilsvarer underkatalognavn, hvorav det siste er det faktiske filnavnet
    • lengde - størrelsen på filen i byte (bare når en fil deles)
    • navn - foreslått filnavn der filen skal lagres (hvis en fil)/foreslått katalognavn der filene skal lagres (hvis flere filer)
    • stykke lengde -Antall byte per stykke. Dette er vanligvis 2 8 KiB = 256 KiB = 262 144 B.
    • stykker- en hash-liste , dvs. en sammenkopling av hvert stykke SHA-1- hash. Ettersom SHA-1 returnerer en 160-biters hash, vil stykker være en streng hvis lengde er et multiplum på 20 byte. Hvis torrent inneholder flere filer, blir bitene dannet ved å lenke sammen filene i den rekkefølgen de vises i filer ordbok (dvs. alle brikkene i torrenten er full stykke lengde med unntak av den siste biten, som kan være kortere).

Alle strenger må være UTF-8- kodet, bortsett fra stykker , som inneholder binære data.

En strøm er unikt identifisert ved en infohash , en SHA-1 hash beregnet over innholdet i info ordboken i bencode form. Endringer i andre deler av torrenten påvirker ikke hashen. Denne hashen brukes til å identifisere torrenten til andre jevnaldrende via DHT og til trackeren. Det brukes også i magnetkoblinger .

Utvidelser

En torrentfil kan også inneholde ytterligere metadata definert i utvidelser til BitTorrent -spesifikasjonen. Disse er kjent som "BitTorrent Enhancement Proposals." Eksempler på slike forslag inkluderer metadata for å oppgi hvem som opprettet torrenten, og når.

Utkast til utvidelser

Disse utvidelsene er under vurdering for standardisering.

Distribuerte hashtabeller

BEP-0005 utvider BitTorrent til å støtte distribuerte hashtabeller .

En trackerless torrent -ordbok har ikke en kunngjøringsnøkkel . I stedet har en trackerless torrent en nodes nøkkel:

{
  # ...
  'nodes': [["<host>", <port>], ["<host>", <port>], ...],
  # ...
}

For eksempel,

  'nodes': [["127.0.0.1", 6881], ["your.router.node", 4804]],

Spesifikasjonen anbefaler at noder "skal settes til de K nærmeste noder i torrentgenererende klientens rutingtabell. Alternativt kan nøkkelen settes til en kjent god node, for eksempel en som drives av personen som genererer torrenten."

Flere sporere

BEP-0012 utvider BitTorrent til å støtte flere sporere.

En ny nøkkel, kunngjøringsliste , er plassert i ordlisten som er øverst (dvs. med kunngjøring og info )

{
  # ...
  'announce-list': [['<tracker1-url>']['<tracker2-url>']],
  # ...
}

HTTP frø

BEP-0017 utvider BitTorrent til å støtte HTTP-frø.

En ny nøkkel, httpseeds , er plassert i listen øverst på listen (dvs. med kunngjøring og info ). Denne nøkkelen er en liste over webadresser der torrentdata kan hentes:

{
  # ...
  'httpseeds': ['http://www.site1.com/source1.php', 'http://www.site2.com/source2.php'],
  # ...
}

Private torrents

BEP-0027 utvider BitTorrent til å støtte private torrents.

En ny nøkkel, private , er plassert i info ordbok. Denne nøkkelen er 1 hvis torrenten er privat:

{
  # ...
  'info': {
    # ...
    'private': 1,
    # ...
  },
  # ...
}

Private torrenter skal brukes med en privat tracker . En slik tracker begrenser tilgangen til torrenter den sporer ved å sjekke kameratens IP, og nekte å oppgi en node -liste hvis IP -adressen er ukjent. Selve jevnaldrende er vanligvis registrert til sporing via et inngjerdet nettsamfunn; den private trackeren lagrer vanligvis også statistikk over dataoverføring for bruk i samfunnet.

Desentraliserte metoder som DHT, PeX, LSD er deaktivert for å opprettholde den sentraliserte kontrollen. En privat torrent kan redigeres manuelt for å fjerne det private flagget, men det vil endre info-hash og danne en egen "sverm" av jevnaldrende. På den annen side vil endringen av tracker -listen ikke endre hash.

Merkle -trær

BEP-0030 utvider BitTorrent til å støtte Merkle-trær . Hensikten er å redusere filstørrelsen til torrentfiler, noe som reduserer belastningen på de som betjener torrentfiler.

En torrent-filen ved hjelp Merkle trær ikke har en stykker nøkkelen i info -listen. I stedet har slik en torrent-fil en root_hash nøkkelen i info -listen. Denne nøkkelen er root -hashen til Merkle -hashen:

{
  # ...
  'info': {
    # ...
    'root hash': <binary SHA1 hash>,
    # ...
  },
  # ...
}

Eksempler

Enkeltfil

En av-kodet torrentfil (med stykke lengde 256 KiB = 262 144 byte) for en fil debian-503-amd64-CD-1.iso (hvis størrelse er 678 301696 byte) kan se ut som:

 {
     'announce': 'http://bttracker.debian.org:6969/announce',
     'info':
     {
         'length': 678301696,
         'name': 'debian-503-amd64-CD-1.iso',
         'piece length': 262144,
         'pieces': <binary SHA1 hashes>
     }
 }

Merk: brikker her vil være en 51 KiB -verdi ( ).

Flere filer

En av-kodet torrentfil (med ' stykkelengde ' 256 KiB = 262144 B) for to filer, 111.txt og 222.txt , kan se slik ut:

 {
     'announce': 'http://tracker.site1.com/announce',
     'info':
     {
         'files':
         [
             {'length': 111, 'path': ['111.txt']},
             {'length': 222, 'path': ['222.txt']}
         ],
         'name': 'directoryName',
         'piece length': 262144,
         'pieces': <binary SHA1 hashes>
     }
 }

Se også

Referanser

Eksterne linker