Estou desenvolvendo um aplicativo para fazer upload de vários arquivos grandes para um servidor de uma rede doméstica.
Eu posso selecionar qualquer uma das seguintes estratégias:
- Carregue cada arquivo em sequência.
- Faça o upload de todos eles em paralelo.
qual é mais rápido, observando que o gargalo é a rede doméstica.
networking
internet
broadband
mans
fonte
fonte
Respostas:
No seu caso, o upload em sequência pode ser necessário.
O hardware do consumidor nem sempre é capaz de executar muitas conexões simultâneas e pode parar / travar. Se você limitar a quantidade de arquivos simultâneos, o upload paralelo sempre será mais rápido.
O motivo é o seguinte:
Quando você faz uma transferência usando TCP / IP, acontece o seguinte:
Primeiro um pacote é enviado para o destino, e a conexão espera que um pacote de confirmação retorne antes de enviar o próximo pacote.
Em seguida, envia 2 pacotes e aguarda a confirmação. Em seguida, ele envia 3, depois 4, depois 5, etc ... Ele continua aumentando a quantidade de pacotes até que o pacote de confirmação retornado mostre que nem todos os pacotes foram recebidos. Quando isso acontece, a velocidade é reduzida e tentada novamente.
Costumava ser que, quando isso acontecesse, começaria em 1 novamente e aumentaria a velocidade. A nova tecnologia reduz a quantidade de pacotes primeiro e tenta novamente, aumentando gradualmente a velocidade.
Dado que, com tráfego adicional, a largura de banda para essa transferência pode ser reduzida, é muito provável que a velocidade total não seja mantida o tempo todo.
Se 2 ou mais arquivos estiverem sendo transferidos ao mesmo tempo, a largura de banda disponível será utilizada com mais eficiência. Se uma única transferência travar e a velocidade for significativamente reduzida, haverá um momento em que a largura de banda será liberada e não será usada por essa transferência. Outros processos podem consumir essa largura de banda, tornando a transferência ainda mais lenta. Mas, se dois ou mais arquivos forem transferidos, é mais provável que a velocidade combinada seja mais ou menos mantida da mesma forma, o que significa que, mesmo que uma das transferências tenha diminuído, a outra transferência provavelmente terá essa largura de banda restante.
fonte
Fazer o upload em paralelo geralmente ajudará a levá-los todos para lá mais rápido, porque se um de seus fluxos TCP de upload ficar parado por qualquer motivo, seus outros fluxos TCP de upload poderão evitar que essa largura de banda seja desperdiçada.
fonte
Teoricamente falando, a resposta seria:
A razão é que, se você atingir um gargalo de largura de banda, não importa se você está enviando arquivos um de cada vez ou vários de uma só vez; você está limitado pela largura de banda.
O que altera a resposta é se existe um limite de velocidade imposto para conexões em um lado. Isso é visto em alguns servidores de conteúdo regulares, bem como aqueles que usam o protocolo Torrenting.
Nesse caso, se o limite de velocidade imposto for menor do que a largura de banda máxima no lado da residência, faria sentido transferir vários arquivos, até o valor para limitar a largura de banda no lado da residência.
fonte