Fazendo upload em aplicativos de torrent

0

Uma vez eu perguntei sobre como o upload de um arquivo realmente funciona. Com base nas respostas dadas a mim, eu estava convencido de que o upload de um arquivo sempre consiste em um processo de iniciação de uma rede privada para fora, como acontece no download, com uma única diferença. em vez do comando GET, o POST é usado.

Mas, considere que eu lancei um cliente de torrent e suponho que eu completei o download de um arquivo.  Eu vou semear o arquivo e compartilhar com outras pessoas agora.

1) Isso não significa 'upload'? qual invalida o caso acima?

2) Se isso é 'upload', não é 'uma conexão / várias conexões abertas do lado de fora para minha rede privada, portanto, o cliente de torrent requer o encaminhamento de porta', não uma requisição que fizemos?

  In short, who launches the connection during upload process? 
    
por Ozgun S 14.10.2014 / 20:37

2 respostas

1

A propagação de torrents não requer mais o encaminhamento de portas. Existem muitas técnicas avançadas para "contornar" NAT, e. Perfuração NAT . Naturalmente, a maioria deles precisa de um terceiro totalmente conectado para negociar mutuamente.

Dito isto, no caso mais simples, com uma porta encaminhada, o lado remoto inicia a conexão.

Você também precisa ter em mente que o upload e o download são apenas uma questão de perspectiva. Isto é claro, completamente não relacionado ao NAT e outros enfeites. Se você baixar algo de um servidor, o servidor fará o upload de algo para você. As conexões TCP funcionam nos dois sentidos, tanto o envio local quanto remoto e o envio de dados.

    
por 14.10.2014 / 21:16
0

O upload funciona da seguinte maneira, independentemente da técnica usada.

Primeiro você tem um cliente e um servidor. O servidor apenas escuta qualquer sinal recebido.

O cliente se conecta ao servidor dizendo: "oi, eu quero usar você". O servidor responde: "claro, vá em frente e inicie uma conexão com essa porta" (o cliente agora se torna a parte do remetente, em vez do trabalho inicial do servidor).

O cliente inicia um comando informando ao servidor que ele deseja fazer upload de qualquer coisa, digamos ... um arquivo.

O servidor aceita e se prepara para receber o arquivo.

O cliente agora começa a enviar o arquivo como o TCP / IP faria: enviando 1 pacote esperando que o servidor responda que o recebeu, enviando os próximos 2, aguardando a resposta, etc. Este processo é continuou até que o arquivo tenha sido transmitido. Esse estágio é visto como um upload da perspectiva do cliente e baixado da perspectiva do servidor.

Em um torrent, funciona da mesma maneira. Você primeiro faz o download do arquivo de diferentes clientes que enviam seus dados para você, então você começa a enviar para outros clientes e eles fazem o download de você.

Um servidor em um torrent é uma máquina que controla quem tem quais partes do arquivo e de onde alguém pode fazer o download. Em vez de dizer ao cliente, você pode fazer o download de mim, ele diz, você pode fazer o download do cliente x, da mesma forma que ele irá encaminhar outros clientes para o seu cliente.

Observe que, com um torrent, você não inicia o upload quando o download é concluído, mas sim quando você tem algo a oferecer. Digamos que você baixou 10kb de um arquivo de 1mb, então outra pessoa já pode baixar os 10kb de você.

    
por 14.10.2014 / 22:43