Por que distribuir partes aleatórias de um arquivo mais rápido que uma transferência contígua?


17

Por que se diz que o BitTorrent é mais rápido, em parte, porque transfere partes aleatórias de um arquivo em vez de transferi-lo do início ao fim de maneira contígua / linear?


EDIT: Mas por que eles têm que ser 'aleatórios'? Por que não uma transferência 'semi-contígua' mais previsível, na qual um dos pares fornece a primeira metade e o segundo, a outra metade? Teoricamente, isso reduziria a sobrecarga.

Respostas:


6

Com relação à edição, pergunte por que eles precisam ser aleatórios: digamos que os torrents foram alterados para baixar apenas o primeiro bloco que o downloader ainda não possui, garantindo assim uma transferência contígua.

Em seguida, compartilho um arquivo de 100 MB. 10 pessoas se conectam e cada uma faz o download de 50 MB antes de eu ficar offline.

Essas pessoas estão ferradas, porque todas elas têm a primeira metade do arquivo, enquanto apenas eu tenho a segunda metade. Até que eu o disponibilize novamente, eles não poderão concluir o download.

Em vez disso, com os blocos sendo transferidos em uma ordem aleatória, como é realmente o caso, cada uma dessas 10 pessoas tem um conjunto diferente de blocos, para que possam negociar entre si para concluir seus downloads sem precisar que eu esteja por perto.

Ainda melhor, porém, porque cada um deles tem um conjunto diferente de blocos, cada um deles pode fazer o download de todosdos outros para preencher as lacunas em sua cópia. Sua edição aludiu à ideia de iniciar de um ponto aleatório no arquivo e fazer o download contíguo a partir desse ponto, mas isso aumentaria a quantidade de sobreposição da cópia de um downloader para a seguinte (se Alice iniciar no início do arquivo e Bob iniciar 10% nele, há 40% do arquivo que ambos têm e apenas 10% exclusivo para cada um deles que eles podem negociar sem que eu me reconecte para disponibilizar o restante). O download em ordem aleatória maximiza a singularidade do conjunto de blocos de cada downloader, maximizando a capacidade dos downloaders de começar a negociar entre si e maximizando as chances de conseguir uma cópia completa se não houver sementes disponíveis.

Um único download contíguo pode (ou não, dependendo das condições) ser melhor para você , mas o download em ordem aleatória é melhor para a rede como um todo.


"uma ordem aleatória maximiza a singularidade de cada conjunto" - precisamente.
eternalmatt 13/09/11

30

A chave é que você está obtendo o arquivo de várias fontes (pares) ao mesmo tempo, e não de uma fonte.

Se você tiver um arquivo dividido em 10 partes e leva 100 segundos para baixar de um servidor, teoricamente você pode obter o arquivo de 10 pares em 10 segundos (mais algumas despesas gerais), pois cada ponto pode entregá-lo em 10 segundos. Na prática, levará mais tempo, pois cada par não será perfeito e você provavelmente atingirá seu limite de largura de banda (mas entendeu).

Como você precisa remontar o arquivo de qualquer maneira, não precisa buscar as peças em ordem. Portanto, se você tiver apenas 5 pares, cada um com 2 partes, estas poderão ser partes aleatórias do arquivo.


Simples. Claro. 1
Xavierjazz 4/11

5
"Se 6 homens conseguem cavar 6 buracos em 6 minutos, quanto tempo leva 10 homens para cavar 10 buracos?"
Martin Martin

4
@ Martin depende do tamanho dos orifícios (o tamanho do bloco) e o seu equipamento disponível (largura de banda) :)
anormal de roquete

14

Deve-se dizer que isso depende inteiramente do arquivo em questão, quantidade de pares e velocidade da fonte não bittorent.

Você nunca fará o download mais rápido que a largura de banda máxima de download da sua conexão e, se estiver fazendo o download de um local com largura de banda suficiente, será mais rápido que usar o Bittorrent.

No entanto, como as velocidades da Internet estão ficando cada vez mais rápidas, estamos chegando ao ponto em que sites e hosts (menores) não conseguem acompanhar.

Por exemplo, quando eu estava olhando os preços de colocações em Londres há alguns meses atrás, recebi preços absolutamente terríveis para uma conexão de 5Mb. Se eu aceitasse isso, serviria bem a maioria das pessoas.

No entanto, na mesma linha, se eu hospedasse alguns arquivos de 500Mb e todos tivessem linhas a cabo (50Mb) ou ADSL2 + (24Mb) rápidas, você perceberia que meu servidor não seria capaz de fornecer velocidade tão rápida para você ...

... no entanto, se eu lhe oferecesse o mesmo arquivo através do Bittorrent e houvesse 200 pessoas, cada uma dando apenas 30Kb / s, isso seria igual a 5,8Mb / s (e muitas pessoas têm uma velocidade de upload muito mais rápida que essa!) .... e agora, se eu executasse o Bittorrent no meu servidor e oferecesse o mesmo arquivo, isso significaria que há um total de 10,8 Mb / s para download - muito mais do que eu poderia fornecer através desse canal de 5 Mb / s no meu próprio.

O Bittorrent é muito um jogo de números, você precisa ter pessoas suficientes carregando com largura de banda suficiente ... Por causa de etapas extras envolvidas, como verificação de integridade (e o fato de que você deve fazer o upload de volta), é difícil vencer de maneira direta. baixar de um bom site com largura de banda suficiente, mas, para muitos sites menores - são sites brilhantes ou até maiores que simplesmente querem economizar dinheiro com a conta de largura de banda.


para não mencionar que upload e download de banda em conexões de cabo padrão não são os mesmos (o A em ADSL)
catraca aberração

Regra de largura de banda de colo estranha, parece-me. Aqui no Colorado, parece que a maioria dos colos oferece conexões de 100 Mbps e cobra por uso a cada mês, e cabe a você gerenciar e limitar sua própria velocidade de conexão se precisar manter o custo baixo.
Zan Lynx

Outro comentário: eu prefiro fazer o download do Bittorrent quando possível devido à verificação de integridade. É incrivelmente doloroso ser forçado a baixar novamente um ISO inteiro do DVD, porque o SHA1 não corresponde. O Bittorrent verifica cada bloco, substituindo-o apenas por um pequeno pedaço.
Zan Lynx

@Zan Lynx - Ai! Eu só tive esse problema uma vez nos últimos 5 anos ish ... e antes disso, era principalmente quando eu tinha memória ruim corrompendo coisas silenciosamente, eu entendo, mas não o vejo há muitos anos ... Enfim, tenho pensado em procurar por alojamento e hospedagem no exterior há algum tempo - a Inglaterra é muito cara para praticamente tudo :(
William Hilsum

4

A maioria das respostas parece não estar respondendo à sua pergunta.

BitTorrent não é mais rápido.

Na verdade, é mais lento devido à sobrecarga de conexão com várias fontes.

A diferença real na prática, no entanto, é que você está baixando a partir de muitas fontes que podem potencialmente se somam a ser mais rápido do que o que um site pode dar-lhe. Muitos servidores da Web estão sujeitos a cargas pesadas ou, de outra forma, com velocidade limitada, para que você não os consuma.

O fato de o BitTorrent transferir o arquivo em uma ordem aparentemente aleatória não afeta diretamente sua velocidade.

Em relação à sua edição, as peças não são aleatórias! Eles são priorizados com base na raridade: uma peça rara precisa se tornar menos rara o mais rápido possível, para que não se perca se a fonte que a possui sair repentinamente. Tem a ver com disponibilidade, não velocidade.


3

É um problema de disponibilidade. Se você precisar fazer o download contíguo, depende de pessoas que hospedam mais arquivos do que você. Todas as pessoas com menos arquivos do que você não poderão enviar dados a você.

Se os pedaços forem distribuídos aleatoriamente, o número de hosts dos quais você pode baixar será maior, portanto, você fará o download do arquivo mais rapidamente.


1

Torrents nem sempre são mais rápidos, mas quando são, um dos motivos é a entropia de rede. Uma conexão de qualquer duração (o download de um arquivo grande) pode se degradar com o tempo, pois fatores aleatórios e incontroláveis ​​afetam a transmissão de pacotes, como sobrecarga do roteador e outros problemas entre você e o servidor. Mais erros significam mais retransmissões de pacotes e essa situação tende a piorar com o tempo. Os torrents fazem muitas conexões menores, através de muitos caminhos de roteamento, uma estratégia que pode, nas circunstâncias certas, reduzir erros e pacotes perdidos ou danificados, e parece ser mais rápida, especialmente à medida que o número de sementes e de pares aumenta.


1

Digamos que você envie duas pessoas ao supermercado para pegar uma lista de itens. Você fornece a cada um exatamente a mesma lista. No entanto, um deles deve coletar os itens na ordem exata em que aparecem na lista. O outro pode pegar os itens na ordem que desejar. Qual você acha que terminará primeiro?


E se todos os itens foram organizados em ordem? (Desfragmentado?)
Mateen Ulhaq

Organizados em que ordem? Em ordem alfabética? A menos que eles estivessem organizados exatamente da maneira que o supermercado estava organizado, isso não ajudaria. Na analogia, o "supermercado" é a lista de bloqueios de vários uploaders. (Se todos começaram desde o início, em seguida, duas pessoas que cada um tinha 33% do arquivo não pôde ajudar uns aos outros, uma vez que eles têm exatamente os mesmos blocos Yuck..)
David Schwartz
Ao utilizar nosso site, você reconhece que leu e compreendeu nossa Política de Cookies e nossa Política de Privacidade.
Licensed under cc by-sa 3.0 with attribution required.