Perché la distribuzione di pezzi casuali di un file è più veloce di un trasferimento contiguo?


17

Perché si dice che BitTorrent è più veloce, in parte, perché trasferisce pezzi casuali di un file invece di trasferirlo dall'inizio alla fine in modo contiguo / lineare?


EDIT: Ma perché devono essere "casuali"? Perché non un trasferimento 'semi-contiguo' più prevedibile in cui un peer ti dà la prima metà e il secondo peer l'altra metà? Ciò teoricamente ridurrebbe le spese generali.

Risposte:


6

Per quanto riguarda la modifica chiedendo perché debbano essere casuali: diciamo che i torrent sono stati cambiati per scaricare solo il primo blocco che il downloader non ha già, garantendo così un trasferimento contiguo.

Quindi condivido un file da 100 MB. 10 persone si connettono e ognuna scarica 50 MB prima di andare offline.

Queste persone vengono quindi fregate, perché hanno tutte la prima metà del file, mentre solo io ho la seconda metà. Fino a quando non lo renderò nuovamente disponibile, non potranno completare il download.

Invece, con i blocchi che vengono trasferiti in un ordine casuale come in realtà è il caso, ognuna di queste 10 persone ha un diverso set di blocchi, quindi possono scambiare tra loro al fine di completare i loro download senza che io sia presente.

Ancora meglio, però, poiché ognuno di essi ha un diverso set di blocchi, ognuno di essi può scaricare da tuttidegli altri per colmare le lacune nella loro copia. La tua modifica alludeva all'idea di partire da un punto casuale nel file e scaricare contigui da quel punto, ma ciò aumenterebbe la quantità di sovrapposizione dalla copia di un downloader al successivo (se Alice inizia all'inizio del file e Bob inizia Il 10% in esso, quindi c'è il 40% del file che entrambi hanno e solo il 10% univoco per ognuno di essi che possono scambiare senza che mi riconnetti per rendere disponibile il resto). Il download in ordine casuale massimizza l'unicità dell'insieme di blocchi di ciascun downloader, massimizzando così la capacità dei downloader di iniziare a fare trading tra di loro e massimizzando le probabilità che sia possibile per loro assemblare una copia completa se non sono disponibili semi.

Un singolo download contiguo può (o meno, a seconda delle condizioni) essere migliore per te , ma il download in ordine casuale è migliore per la rete nel suo insieme.


"un ordine casuale massimizza l'unicità di ogni set" - precisamente.
eternalmatt,

30

La chiave è che stai ricevendo il file da più fonti (peer) contemporaneamente anziché da una fonte.

Se hai un file che è diviso in 10 parti e impiega 100 secondi per il download da 1 server, in teoria puoi ottenere il file da 10 peer in 10 secondi (più alcune spese generali) poiché ogni peer può consegnare la sua parte in 10 secondi. In pratica, ci vorrà più tempo poiché ogni peer non sarà perfetto e probabilmente raggiungerai il limite di larghezza di banda (ma avrai l'idea).

Dato che devi riassemblare il file comunque non devi recuperare i pezzi in ordine. Quindi, se hai solo 5 peer con ognuno che consegna 2 parti, queste possono essere parti casuali del file.


Semplice. Chiaro. +1
Xavierjazz,

5
"Se 6 uomini possono scavare 6 buche in 6 minuti, quanto tempo impiegano 10 uomini a scavare 10 buche?"
Martin,

4
@martin dipende dalla dimensione dei fori (la dimensione del pezzo) e dall'equipaggiamento disponibile (bandwith) :)
maniaco del cricchetto

14

Va detto che ciò dipende interamente dal file in questione, dalla quantità di colleghi e dalla velocità della fonte non bittorent.

Non scaricherai mai più velocemente della massima larghezza di banda di download della tua connessione e se stai scaricando da un posto con una larghezza di banda sufficiente, sarà più veloce dell'uso di Bittorrent.

Tuttavia, poiché le velocità di Internet stanno diventando sempre più veloci, stiamo arrivando al punto in cui i siti Web e gli host (più piccoli) non riescono a tenere il passo.

Ad esempio, quando mi sono guardato intorno ai prezzi di colocation a Londra qualche mese fa, sono stato quotato prezzi assolutamente terribili per una connessione da 5 Mb. Se dovessi prenderlo, servirebbe bene la maggior parte delle persone.

Tuttavia, sulla stessa linea, se dovessi ospitare alcuni file da 500 Mb e tutti avessero linee Cable (50 Mb) o ADSL2 + veloce (24 Mb), noteresti che il mio server non sarebbe in grado di offrirti una velocità così veloce ...

... tuttavia, se dovessi offrirti lo stesso file tramite Bittorrent e ci fossero 200 persone, ognuna con solo 30 Kb / s, che equivarrebbe a 5,8 Mb / s (e, molte persone hanno una velocità di upload molto più veloce di quella!) .... e ora, se dovessi eseguire Bittorrent sul mio server e offrire lo stesso file, significherebbe che è possibile scaricare un totale di 10,8 Mb / s - molto più di quanto potrei fornire attraverso quel pipe da 5 Mb / s su il mio.

Bittorrent è un gioco di numeri, devi caricare abbastanza persone con una larghezza di banda sufficiente ... A causa di passaggi aggiuntivi come il controllo dell'integrità (e il fatto che dovresti caricare di nuovo), è difficile batterlo mai direttamente scaricando da un buon sito con una larghezza di banda sufficiente, ma, per molti siti più piccoli, sono siti geniali o addirittura più grandi che vogliono semplicemente risparmiare sulla bolletta della larghezza di banda.


per non parlare del fatto che upload e download della larghezza di banda nelle connessioni via cavo standard non sono gli stessi (la A in ADSL)
maniaco del cricchetto

Strana regola della larghezza di banda del colo, mi sembra. Qui in Colorado sembra che la maggior parte delle colos offra connessioni a 100 Mbps e ti addebiti ogni mese in base all'utilizzo, e spetta a te gestire e limitare la tua velocità di connessione se devi ridurre i costi.
Zan Lynx

Un altro commento: preferisco scaricare da Bittorrent quando possibile a causa del controllo di integrità. È incredibilmente doloroso essere costretti a scaricare di nuovo un intero ISO del DVD perché SHA1 non corrisponde. Bittorrent controlla ogni blocco, quindi è solo un piccolo pezzo da sostituire.
Zan Lynx

@Zan Lynx - Ahi! Ho avuto quel problema solo una volta negli ultimi 5 anni ... e prima di allora, era soprattutto quando avevo una cattiva memoria che corrompe silenziosamente cose, posso capire, ma non lo vedo da molti anni ... Ad ogni modo, ho intenzione di cercare colocation e hosting all'estero da qualche tempo - l'Inghilterra è molto costosa praticamente per tutto :(
William Hilsum

4

La maggior parte delle risposte non sembrano rispondere alla tua domanda.

BitTorrent non è più veloce.

In realtà è più lento a causa del sovraccarico di connessione a più fonti.

La vera differenza nella pratica, tuttavia, è che stai scaricando da molte fonti che possono potenzialmente sommarsi per essere più veloci di quello che un sito web potrebbe darti. Molti server Web sono sottoposti a carichi pesanti o altrimenti sono limitati dalla velocità in modo da non risucchiarli.

Il fatto che BitTorrent trasferisca il file in un ordine apparentemente casuale non influisce direttamente sulla sua velocità.

Per quanto riguarda la tua modifica, i pezzi non sono casuali! Hanno la priorità in base alla rarità: un pezzo raro deve diventare meno raro il più velocemente possibile, quindi non si perde se la fonte che lo ha improvvisamente lascia. Ha a che fare con la disponibilità, non con la velocità.


3

È un problema di disponibilità. Se devi scaricare in modo contiguo, dipendi da persone che ospitano più file di te. Ogni persona con meno del file di te, non sarà in grado di inviarti alcun dato.

Se i blocchi sono distribuiti in modo casuale, il numero di host da cui è possibile scaricare sarà maggiore, quindi scaricherai il file più velocemente.


1

I torrent non sono sempre più veloci, ma quando lo sono, uno dei motivi è l'entropia della rete. Una connessione di qualsiasi durata (il download di un file di grandi dimensioni) può deteriorarsi nel tempo, poiché fattori casuali e incontrollabili influiscono sulla trasmissione dei pacchetti, come il sovraccarico del router e altri problemi tra l'utente e il server. Più errori significano più ritrasmissioni di pacchetti e questa situazione tende a peggiorare nel tempo. I torrent creano molte connessioni più piccole, attraverso molti percorsi di routing, una strategia che può, nelle giuste circostanze, ridurre errori e pacchetti persi o danneggiati, e sembra essere più veloce, specialmente con l'aumentare del numero di seed e peer.


1

Supponi di inviare due persone al negozio di alimentari per ritirare un elenco di articoli. Dai a ciascuno di loro lo stesso identico elenco. Tuttavia, uno di loro deve ritirare gli articoli nell'ordine esatto in cui compaiono nell'elenco. L'altro può ritirare gli articoli nell'ordine che preferiscono. Quale pensi che finirà per primo?


E se gli articoli fossero tutti disposti in ordine? (Deframmentato?)
Mateen Ulhaq,

Disposto in quale ordine? In ordine alfabetico? A meno che non siano stati sistemati esattamente nel modo in cui era organizzato il supermercato, non sarebbe d'aiuto. In analogia, il "supermercato" è l'elenco dei blocchi di vari caricatori. (Se tutti iniziassero dall'inizio, allora due persone che avevano ciascuna il 33% del file non potevano aiutarsi a vicenda, dato che avrebbero avuto esattamente gli stessi blocchi. Yuck.)
David Schwartz,
Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.