BitTorrent: differenze tra le versioni
Contenuto cancellato Contenuto aggiunto
m clean up, replaced: lingua=en-gb → lingua=en, lingua=en-US → lingua=en |
m Aggiunti collegamenti |
||
(Una versione intermedia di un altro utente non mostrate) | |||
Riga 1:
{{Nota disambigua}}
{{C|Linguaggio a tratti non enciclopedico|informatica|maggio 2009}}
[[File:BitTorrentlogo.gif|thumb|Logo]]
In [[informatica]] '''BitTorrent''' (spesso abbreviato BT) è un [[protocollo di rete|protocollo]] di tipo [[peer-to-peer]] (P2P) finalizzato allo scambio ovvero alla distribuzione e [[file sharing|condivisione di file]] nella [[Internet|Rete]].
Line 11 ⟶ 10:
== Funzionamento ==
[[File:Torrentcomp small.gif|thumb|upright=2.7|Animazione del protocollo: i punti colorati sotto ogni computer rappresentano le differenti parti del file che viene condiviso. Con il passare del tempo viene completata la copia di ognuna di queste parti nel computer di destinazione.]]
A differenza dei tradizionali sistemi di ''[[file sharing]]'', l'obiettivo di BitTorrent è di realizzare e fornire un sistema efficiente per distribuire lo stesso [[file]] verso il maggior numero di utenti disponibili, che possono sia prelevarlo scaricandolo sul proprio terminale ([[download]]) sia inviarlo ad altri ([[upload]]).
Riga 20:
=== File torrent ===
{{vedi anche|Torrent (file)}}
Per poter usufruire del sistema è quindi necessario prima di tutto prelevare un file caratterizzato dall'estensione <kbd>.torrent</kbd> di ridotte dimensioni (poche decine di [[Kilobyte|KB]]). Questo file svolge la funzione di indice in quanto contiene la descrizione di tutti i pacchetti in cui è stato suddiviso il documento o file originale e le chiavi hash che garantiscono l'integrità dei vari pezzi. Tecnicamente altro non è che un file statico contenente informazioni, codificate mediante un algoritmo di ''[[hashing]]'', che descrivono i file da prelevare e/o da trasferire. Un qualsiasi ''[[client]]'' BitTorrent, oltre a leggere i file torrent e compiere le operazioni possibili, è anche in grado di generare i file torrent.
Line 27 ⟶ 28:
=== Tracker ===
{{vedi anche|BitTorrent tracker}}
In aggiunta alle informazioni sui dati da scaricare, i file torrent contengono l'indirizzo [[URL]] di uno o più '''''tracker''''' ('''server traccia'''), utilizzati per localizzare le sorgenti che posseggono il file o parte di esso. Il '''''tracker''''' si occupa di coordinare i rapporti fra utenti richiedenti il file e quelli che lo offrono. Solitamente i siti ''tracker'' forniscono anche delle statistiche sul numero di trasferimenti, il numero di nodi che hanno completato la copia del file e il numero di nodi che ne posseggono una copia parziale.
Line 44 ⟶ 46:
====''Leecher''====
Il rapporto tra dati inviati e scaricati è detto ''share ratio'', cioè ''"rapporto di condivisione"''. Coloro che inviano solo pochi dati rispetto a quanti ne scaricano, quindi che hanno un pessimo share ratio, vengono detti [[Leecher (informatica)|leecher]], ovvero ''sanguisughe''. Questo comportamento è altamente disapprovato dalla comunità di BitTorrent in quanto l'intero protocollo si basa sulla condivisione: chi scarica un file è in grado di farlo solo grazie ai ''seed'' e/o ai ''peer'' che gli inviano i dati di cui necessita, se quindi per assurdo tutti gli utenti si comportassero da ''leecher'' si arriverebbe alla "morte" del sistema, ossia non si riuscirebbe a scaricare più nulla. Per questo motivo vengono utilizzate delle contromisure contro i ''[[Leecher (informatica)|leecher]]'', come per esempio privilegiare i ''peer'' con elevato share ratio che otterranno velocità di scaricamento più elevate, fino al [[Ban (Internet)|ban]] da un ''tracker''.
=== Swarm ===
Line 51 ⟶ 53:
== Client ==
[[File:Azureus2304 linux.png|thumb|upright=1.6|Azureus 2.3.0.4 sotto GNU/Linux]]
Con '''''client''''' (in italiano ''cliente'') nel linguaggio informatico si intende una componente, [[hardware]] o [[software]], che accede ai servizi o alle risorse di un altro componente detto [[server]]. Quindi un computer collegato ad un server tramite una rete informatica funge da apparato hardware e come tale è detto per l'appunto '''''client'''''.
Line 56 ⟶ 59:
=== Lista dei maggiori Client ===
{{
* ABC
* [[Acquisition]]
Line 89 ⟶ 92:
* [[Vuze]]
* [[XTorrent]]
{{
== Dati tecnici ==
BitTorrent utilizza un protocollo nuovo rispetto ad altri sistemi P2P. La sua caratteristica principale è la facile estensibilità, segue il limitato consumo di banda. Il protocollo si basa su un algoritmo di codifica detto Bencode, utilizzato per le comunicazioni [[client]]/[[server]] e client/client.
I seguenti paragrafi trattano, nell'ordine
# la codifica Bencode, utilizzata nei file torrent;
# la struttura vera e propria del file torrent;
Line 102 ⟶ 105:
=== La codifica Bencode ===
{{vedi anche|Bencode}}
La codifica Bencode è quella utilizzata per i file torrent. È stata progettata per avere al tempo stesso la flessibilità dell'[[XML]] e la "leggerezza" necessaria per ridurre al minimo le dimensioni del file torrent (cioè il numero di [[byte]] inviati dal server al client).
=== Il file di meta-informazioni ===
{{vedi anche|Torrent (file)}}
Il file torrent comprende la lista dei file disponibili e i relativi checksum (per garantire l'integrità delle parti di file che vengono scaricate).
Line 114 ⟶ 119:
Questi sono i parametri che devono essere inviati al tracker (in '''grassetto''' quelli richiesti dal protocollo standard):
* '''info_hash''': hash SHA1 del dizionario ''info'' codificato in Bencode, in formato stringa codificata secondo le convenzioni URL
* '''peer_id''': una stringa di 20 caratteri che permette di identificare in maniera quasi-univoca l'utente sul ''tracker''
Line 128 ⟶ 132:
* ''trackerid'': se il tracker ha comunicato in precedenza un tracker id, esso va inviato qui
Announce risponde con una stringa ([[MIME]] [[text/plain]]). Le eventuali condizioni di errore '''non''' possono essere comunicate con i [[Hypertext Transfer Protocol]].
La stringa rappresenta un dizionario con i seguenti elementi:
* '''''failure reason'''''(stringa): se presente, rappresenta la condizione di errore in formato ''[[human-readable]]''. In presenza di ''failure reason'' non devono essere presenti ulteriori elementi
* ''warning message''(stringa): rappresenta una condizione di allerta in formato ''human-readable''. L'elaborazione della risposta di Announce non viene interrotta e all'utente viene mostrato un messaggio descrittivo
Line 140 ⟶ 145:
Se il client utilizza il ''Compact Announce''
* '''peers'''(stringa): ogni peer occupa 6 byte in questa stringa. I primi 4 rappresentano l'indirizzo IP in formato numerico, e gli altri 2 la porta. I peer sono concatenati tra di loro in ordine di rete.
Se il client non utilizza il ''Compact Announce''
Line 170 ⟶ 174:
Il server restituisce una stringa ([[MIME]] [[text/plain]]) che rappresenta un dizionario con i seguenti elementi:
* '''files'''(dizionario): elenca tutti i Torrent in base al loro ''info hash''
** '''[info-hash]'''(dizionario): rappresenta un singolo Torrent
Line 189 ⟶ 192:
=== Rispetto ad eMule ===
Il metodo utilizzato da BitTorrent per distribuire file somiglia a quello utilizzato dalla reti [[eDonkey]] e [[Kademlia|Kad]] ma, oltre alle analogie, ci sono anche molte differenze:
# In BitTorrent gli scambi sono sempre molto veloci per tutti i partecipanti in quanto tutti i nodi si scambiano parti di file a vicenda senza distinzioni di sorta.
# Con eMule ogni nodo di solito condivide e scarica una grande quantità di dati senza alcun bilanciamento fra i nodi presenti. La causa di ciò sono il ''sistema dei crediti'' e il ''sistema delle code'', assenti in BitTorrent.
Line 200 ⟶ 202:
=== Film, video, musica ===
* [[Sub Pop Records]] rilascia ogni anno tracce e videoclip sul sito BitTorrent.Inc.<ref>{{Cita web|url=http://www.bittorrent.com/users/subpoprecords/|titolo=Download content from SubPopRecords at BitTorrent|data=14 gennaio 2007|accesso=6 giugno 2018|dataarchivio=14 gennaio 2007|urlarchivio=https://web.archive.org/web/20070114140652/http://www.bittorrent.com/users/subpoprecords/|urlmorto=sì}}</ref>. I [[Babyshambles]] (gruppo [[indie rock]] [[Inghilterra|inglese]]) hanno sfruttato il protocollo BitTorrent per distribuire migliaia di anteprime e riprese di concerti. Anche la famosa band dei [[Nine Inch Nails]] ha pubblicato diversi album con BitTorrent.<ref>{{Cita news|lingua=en|url=https://torrentfreak.com/nin-launches-bittorrent-tracker-for-new-release-090320/|titolo=NIN Launches BitTorrent Tracker for New Release - TorrentFreak|pubblicazione=TorrentFreak|data=20 marzo 2009|accesso=6 giugno 2018|dataarchivio=15 settembre 2018|urlarchivio=https://web.archive.org/web/20180915192523/https://torrentfreak.com/nin-launches-bittorrent-tracker-for-new-release-090320/|urlmorto=no}}</ref>
* [[VODO]] è un servizio che distribuisce film e serie TV via BitTorrent<ref>{{Cita web|url=https://boingboing.net/2009/10/15/vodo-a-filesharing-s.html|titolo=Vodo: a filesharing service for film-makers / Boing Boing|sito=boingboing.net|lingua=en|accesso=6 giugno 2018|dataarchivio=30 aprile 2019|urlarchivio=https://web.archive.org/web/20190430142254/https://boingboing.net/2009/10/15/vodo-a-filesharing-s.html|urlmorto=no}}</ref>.
=== Broadcasters ===
* Nel 2008, la [[Canadian Broadcasting Corporation|CBC]] si qualifica come il primo servizio pubblico radiotelevisivo nell'America del Nord a rendere disponibile lo scaricamento con BitTorrent di un intero show (''Canada's Next Great Prime Minister'')<ref>{{Cita web|url=http://www.cbc.ca/nextprimeminister/blog/2008/03/canadas_next_great_prime_minis.html|titolo=Canada's Next Great Prime Minister {{!}} CBC Television: CBC to BitTorrent Canada's Next Great Prime Minister|data=14 giugno 2010|accesso=6 giugno 2018|dataarchivio=14 giugno 2010|urlarchivio=https://web.archive.org/web/20100614220807/http://www.cbc.ca/nextprimeminister/blog/2008/03/canadas_next_great_prime_minis.html|urlmorto=sì}}</ref>.
=== Videogiochi ===
* [[Blizzard Entertainment]] ha usato BitTorrent (attraverso un client proprietario denominato "Blizzard Downloader") per rilasciare contenuti aggiuntivi e patch per [[Diablo III]], [[StarCraft II]] e [[World of Warcraft]]<ref>{{Cita web|url=https://wow.gamepedia.com/Blizzard_Downloader|titolo=Blizzard Downloader|sito=Wowpedia|lingua=en|accesso=6 giugno 2018|dataarchivio=14 gennaio 2019|urlarchivio=https://web.archive.org/web/20190114210448/https://wow.gamepedia.com/Blizzard_Downloader|urlmorto=no}}</ref>.
* [[Wargaming.net|Wargaming]] pubblica gli aggiornamenti di [[World of Tanks]], [[World of Warships]] e [[World of Warplanes]] con BitTorrent<ref>{{Cita web|url=https://worldoftanks.eu/en/content/guide/general/frequently_asked_questions/#a3a|titolo=Frequently Asked Questions {{!}} Game|sito=World of Tanks|lingua=en|accesso=6 giugno 2018|dataarchivio=28 dicembre 2018|urlarchivio=https://web.archive.org/web/20181228035551/https://worldoftanks.eu/en/content/guide/general/frequently_asked_questions/#a3a|urlmorto=no}}</ref>.
=== Governi ===
* Il governo Inglese usa BitTorrent per diffondere pubblicamente sul Web dati relativi all'impiego dei soldi provenienti dalle tasse dei cittadini inglesi<ref>{{Cita web|url=https://data.gov.uk/dataset/3266d22c-9d0f-4ebe-b0bc-ea622f858e15/combined-online-information-system|titolo=Combined Online Information System - data.gov.uk|sito=data.gov.uk|lingua=en|accesso=6 giugno 2018|dataarchivio=7 gennaio 2019|urlarchivio=https://web.archive.org/web/20190107203942/https://data.gov.uk/dataset/3266d22c-9d0f-4ebe-b0bc-ea622f858e15/combined-online-information-system|urlmorto=no}}</ref><ref>{{Cita news|lingua=en|url=https://torrentfreak.com/uk-government-uses-bittorrent-to-share-public-spending-data-100604/|titolo=UK Government Uses BitTorrent to Share Public Spending Data - TorrentFreak|pubblicazione=TorrentFreak|data=4 giugno 2010|accesso=6 giugno 2018|dataarchivio=23 giugno 2018|urlarchivio=https://web.archive.org/web/20180623220940/https://torrentfreak.com/uk-government-uses-bittorrent-to-share-public-spending-data-100604/|urlmorto=no}}</ref>.
=== Università e Progetti ===
* La [[Università statale della Florida|Florida State University]] distribuisce grandi [[dataset]] scientifici ai propri ricercatori con BitTorrent<ref>{{Cita news|lingua=en|url=https://www.techzim.co.zw/2013/01/legitimate-uses-of-bittorrent/|titolo=Legitimate uses of BitTorrent - Techzim|pubblicazione=Techzim|data=29 gennaio 2013|accesso=6 giugno 2018|dataarchivio=17 settembre 2017|urlarchivio=https://web.archive.org/web/20170917053805/http://www.techzim.co.zw/2013/01/legitimate-uses-of-bittorrent/|urlmorto=no}}</ref>.
* [[Human Connectome Project]] usa BitTorrent come mezzo di diffusione dei propri studi e ricerche su malattie gravi, quali la [[malattia di Alzheimer]] e la [[schizofrenia]]<ref>{{Cita news|lingua=en|url=https://torrentfreak.com/torrents-help-researchers-worldwide-to-study-babies-brains-170603/|titolo=Torrents Help Researchers Worldwide to Study Babies' Brains - TorrentFreak|pubblicazione=TorrentFreak|data=3 giugno 2017|accesso=6 giugno 2018|dataarchivio=5 gennaio 2018|urlarchivio=https://web.archive.org/web/20180105011741/https://torrentfreak.com/torrents-help-researchers-worldwide-to-study-babies-brains-170603/|urlmorto=no}}</ref>.
Line 256 ⟶ 253:
=== DHT (Distributed Hash Table) ===
{{
Il «DHT» (''[[Distributed Hash Table]]'', ovvero «Tabella di Hash distribuita») è forse il primo vero passo per ottenere una rete BitTorrent decentralizzata. Il ''DHT'' è un sistema che aiuta la distribuzione di file e di informazioni quando un tracker è offline, e non fa parte del protocollo BitTorrent.
Line 275 ⟶ 273:
[[Opera (browser)|Opera]] è il primo ''[[browser]]'' ad integrare un ''client'' per la gestione dei file torrent, che si possono scaricare direttamente all'interno di Opera senza aprire altri programmi.
=== Peer to Peer web hosting ===
Il software [[zeronet]] utilizza il protocollo bittorrent per permettere ai singoli nodi della rete di ospitare interi [[sito web|siti web]] senza l'ausilio di server centrali.
|