Por que as conexões P2P não precisam de portas abertas?

Por que as conexões P2P não precisam de portas abertas?

Quero dizer, se alguém está baixando um arquivo meu, isso não significa que sou o host e ele está se conectando a mim?

Ou estou me conectando a ele?

De qualquer forma, um de nós precisa de uma porta aberta, não?

Não tenho nenhum roteamento de porta aberta para o meu computador no meu roteador, então como estou aceitando conexões?

Responder1

Se o seu roteador suportar UPnP, é possível que o aplicativo P2P que você está usando esteja abrindo portas no roteador sem a necessidade de configurar manualmente as portas abertas.

Wikipédia UPnP

Caso contrário, é possível que seu aplicativo esteja usando um processo chamado NAT traversal, que é comum em aplicativos p2p e aplicativos de desktop remoto, como GoToMyPC ou Hamachi. Esta tecnologia foi projetada para funcionar através da Network Address Translation, que é considerada um firewall, mas também é um meio de ter uma rede privada compartilhando um único endereço IP na internet (o que o seu roteador usa).

Travessia NAT da Wikipédia

Responder2

Em protocolos como o BitTorrent, desde que um dos dois lados da conexão tenha o encaminhamento de porta ativado, o lado aberto sempre atuará como o host. Se ambos os lados estiverem abertos, qualquer uma das extremidades poderá ser o "hospedeiro". Se ambos os lados estiverem fechados, você precisa de um terceiro que tenha uma conexão aberta para negociar a conexão, é assim que coisas como o Skype fazem (o terceiro é chamado de Supernode)

Aqui está uma boa postagem no blogexplicando como o skype usa Supernodes e como ele os usa para contornar firewalls.

Responder3

Eu compararia a porta aberta com um número de telefone.

Imagine que você pode ter um telefone para discar, mas não um número de telefone para receber chamadas.

Para que duas partes falem entre si (ou uma fale o tempo todo), não importa quem realmente disca. O importante é que pelo menos um deles tenha um número de telefone, então o outro parceiro apenas liga para ele.

Se nenhum deles tiver número de telefone, em alguns sistemas é utilizado um supernó, que pode ser um amigo que recebe duas chamadas, uma de cada um deles, e as une. Esta é a única maneira de conversar se nenhuma das duas partes tiver número de telefone. O problema é que a conversa fica então restrita à qualidade da linha telefônica desse supernó amigo.

Espero que esta analogia facilite a compreensão dos 3 cenários possíveis.

informação relacionada