Torrent (format de fișier)
Torent | |
---|---|
Extensie | .torrent |
Tip MIME | application/x-bittorrent |
Standard | BEP-0003 |
Torrent este extensia de fișiere a BitTorrent , un protocol peer-to-peer (P2P) care permite distribuirea și partajarea fișierelor pe internet . [1] [2] [3]
Funcție și caracteristici
Funcția acestui tip de fișier este de a partaja conținut personal. De fapt, fiecare utilizator își poate crea și publica propriul torrent . Răspândirea fișierelor .torrent a avut loc în paralel cu răspândirea în bandă largă ( ADSL ).
Din punct de vedere tehnic, .torrents sunt fișiere mici care, deschise cu programe speciale , conduc la descărcarea conținutului stocat pe computerul persoanelor care partajează fișierul. Acestea sunt fișiere binare, care conțin toate informațiile de referință ale fișierului de descărcat și partajat.
Codificarea utilizată pentru fișierele torrent se numește Bencode .
Codificare Bencode
Bencode este o codificare derivată din XML , deși sintaxa sa este complet diferită. De fapt, Bencode are scalabilitatea, includerea și extensibilitatea completă a unui document XML, dar permite salvarea caracterelor (și, prin urmare, a octeților în transmisie) pentru a codifica informațiile. [4]
Cele patru tipuri de bază ale codului Bencode sunt dicționarul , lista , numărul întreg și șirul . Spre deosebire de XML, tipul întreg este separat de tipul șirului. Un dicționar și o listă pot conține un număr infinit de elemente de orice natură, în timp ce numărul întreg și șirul nu pot conține alte elemente.
- Codificare șir
Un șir XXXXX este codificat ca l: XXXXX , unde l este lungimea în caractere a șirului.
Exemple:
foo => 3: foo bar => 3: bar spam => 4: spam ouă => 4: ouă Hello World => 10: Hello World
- Codificarea întregului
Un număr întreg Y este codificat ca iYe.
Exemple:
8 => i8e 765 => i765e
- Dicționar coding
Un dicționar constă dintr-o serie de elemente identificate fiecare printr-un șir. Elementele nu au restricții de tip. Pot fi și dicționare. Un dicționar cu un element XYZ => ABC, care indică (ABC) codul B al elementului, este reprezentat de șirul d3: XYZ (ABC) e . Caracterul e este un terminator.
Exemple:
{ nume de fișier => fișierul meu.txt dimensiune => 76500 atribute => { readonly => 1 ascuns => 0 } } echivalentă cu d8: nume de fișier11: fișierul meu.txt4: sizei76500e10: atribute d8: readonlyi1e6: hiddeni0eee
- Codarea listei
O listă începe cu caracterul l și se termină cu caracterul e . Elementele sunt aranjate în ordinea lor, fiecare în codul său respectiv.
Exemplu:
{ foo bar spam { salut => lume num => 5 } } echivalentă cu l3: foo3: bar4: spamd4: hello5: world3: numi5eee
Fișierul torrent
Fișierul torrent, așa cum s-a văzut deja, conține informațiile necesare pentru a identifica și descărca un fișier de pe Internet în deplină siguranță. Este un fișier text care conține codificarea Bencode a unui singur dicționar mare, care la rândul său conține datele (și sub formă de dicționare) care identifică torrentul.
Următoarele elemente fac parte din protocolul standard și includ cele mai recente extensii [5] : (cele cu caractere aldine sunt cerute de protocolul standard)
- announce (șir): adresa URL a trackerului codificată ca șir ASCII
- listă de anunțuri (listă): extensia protocolului la Multitracker. Dicționarul de anunțuri este încă necesar pentru compatibilitatea cu versiunile anterioare
- data creației (întreg): data creației codificată ca marcaj de timp Unix
- comentariu (șir): un comentariu la Torrent codificat ca un șir ASCII
- creat de (șir): program care a generat Torrentul
- info (dicționar): dicționar principal care descrie conținutul Torrentului.
Elementele sale pot varia dacă torrentul constă din unul sau mai multe fișiere
În cazul unui singur fișier:
- lungime (întreg): dimensiunea fișierului în octeți
- md5sum (șir): amprenta MD5 a fișierului pentru o mai bună identificare
- nume (șir): numele fișierului în format ASCII (numele UTF-8 și Unicode cauzează probleme de codificare)
În cazul arhivării cu mai multe fișiere:
- fișiere (listă): lista fișierelor conținute în Torrent
- (dicționar): fiecare fișier este reprezentat de un dicționar cu următoarea structură:
- lungime (întreg): dimensiunea fișierului în octeți
- md5sum (șir): amprenta MD5 a fișierului pentru o mai bună identificare
- cale (listă): listă de șiruri care vă permite să reconstruiți calea fișierului luând elementele ordinii lor
- (șir): ultimul element reprezintă numele și extensia fișierului (exemplu: "Dir1", "Dir2", "File.ext" reprezintă Dir1 / Dir2 / File.ext)
- lungimea piesei (întreg): lungimea în octeți a fiecărei părți în care este împărțit fișierul (fișierele)
- piese (șir): șir care concatenează amprentele SHA1 ale fișierelor în format ASCII. Dacă șirul nu este multiplu de 20 în faza de creație, acesta se completează cu zerouri.
- (dicționar): fiecare fișier este reprezentat de un dicționar cu următoarea structură:
Notă
- ^ (EN) Extensie fișier TORRENT - Ce este un fișier torrent și cum îl deschid? , la fileinfo.com . Adus pe 14 iulie 2017 .
- ^ (EN) Extensia fișierului. Informații despre torrent pe pc.net. Adus pe 14 iulie 2017 .
- ^ Ce este un fișier TORRENT și cum deschideți unul? , în Lifewire . Adus pe 14 iulie 2017 .
- ^ Bencode - search.cpan.org , pe search.cpan.org . Adus pe 14 iulie 2017 .
- ^ (EN) Ian J. Taylor și Andrew Harrison, De la P2P și rețele la servicii pe web: comunități distribuite în evoluție - Ediția a doua , Springer, 2009, pp. 231-232. Adus pe 14 iulie 2017 .