Pergunta

Dizer, eu tenho dois computadores por trás de firewalls, roteadores, etc (ie. Há conexões de entrada). Existe alguma maneira eu posso conectar os dois através do protocolo TCP / UDP sem tudo passando por um lugar servidor especial? Eu sei Skype faz algo assim, talvez não exatamente.

Graças.

Foi útil?

Solução

Este Heise-artigo explica como Skype usa buraco UDP perfuração para obter 2 instâncias firewalled-NAT conectados uns aos outros.

No entanto, você precisa de um servidor externo para a conexão-info-troca inicial, mas você não tem que rota muito mais do que através desse servidor especial.

Outras dicas

Embora eu nunca usei isso, eu acredito que este é o UPnP fornece, assumindo os firewalls e roteadores que estão no caminho jogar o jogo:

http://en.wikipedia.org/wiki/Universal_Plug_and_Play

Veja a seção sobre NAT de transferência.

Editar:

Wikipedia tem uma página inteira sobre NAT Traversal:

http://en.wikipedia.org/wiki/NAT_traversal

Você terá que usar P2P

Sim, esta é muitas vezes chamado de 'tradução de endereços de rede hairpin', e é normalmente implementado no dispositivo fazendo a tradução de endereços. Este não é exatamente a mesma coisa que NAT transversal ou perfuração como alguns outros comentários implícitas. Você está tentando obter dois hosts atrás do mesmo NAT para se comunicar uns com os outros.

Gostaria de dar uma olhada no link abaixo para ver as várias implementação NAT e decidir qual opção vai funcionar para você. Aqui está um diagrama e um link para você:

enter descrição da imagem aqui

http://www.cisco .com / web / about / ac123 / ac147 / archived_issues / ipj_7-3 / anatomy.html

Se você precisa disso para ser implementado no software cliente, você pode querer olhar para algo como avahi ou outro 'zeroconf' opção para descobrir as instalações locais.

http://en.wikipedia.org/wiki/Avahi_(software)

Licenciado em: CC-BY-SA com atribuição
Não afiliado a StackOverflow
scroll top