A perfuração requer um servidor de encontro UDP Ou poderia ser um TCP?

4

Estou tentando dar uma olhada nessa questão ...

Gostaria de conectar dois usuários ...

Esses usuários já estão conectados a um servidor TCP, que está ciente do ip público e da porta TCP de conexão. Eu esperava usar a conexão existente com o servidor para criar uma conexão p2p entre meus usuários, já que é meio redundante pedir que eles se conectem a outro servidor UDP para saberem a porta pública pela qual estão conectados. / p>

É possível resolver isso sem criar outro servidor (UDP desta vez)?

    
por TheSquad 07.09.2012 / 13:31

1 resposta

4

Eu sei que essa pergunta tem quase dois anos, mas não tem respostas, então achei que conseguiria lidar com isso.

Na verdade, isso é algo que funciona apenas com o UDP porque é sem estado e não funciona com o TCP. Sua configuração descrita com uma conexão TCP para um terceiro servidor de "controle" é, na verdade, a configuração perfeita para isso. Vamos ligar para as partes aqui "Usuário A", "Usuário B" e "Controle". Veja como isso funciona:

  • O usuário A e o usuário B estabelecem uma conexão TCP ao controle. Uma vez estabelecido, ambos os usuários enviam para Controlar uma porta na qual podem ser contatados. Vamos chamar "Porta X" do Usuário A e "Porta Y" do Usuário B.
  • O controle compartilha as informações de porta do usuário A com o usuário B e vice-versa.
  • O usuário A envia um pacote UDP da Porta X para o Usuário B na Porta Y. O firewall do Usuário B naturalmente rejeitará este pacote.
  • O usuário B envia um pacote UDP da porta Y para o usuário A na porta X. O firewall do usuário A encaminhará essa porta internamente para o usuário A, porque o firewall do usuário A acabou de ver um pacote deixando o usuário A pela porta X e para o usuário B na porta Y (e porque é UDP, não tem idéia de que foi rejeitado), então assumiu que um pacote vindo do usuário B na porta Y para o usuário A na porta X é um pacote de resposta, então permite que ele passe.
  • O usuário A envia outro pacote UDP da Porta X para o Usuário B na Porta Y, e também é permitido pelo firewall do Usuário B pelo mesmo motivo.
  • Os usuários A e B agora podem enviar pacotes UDP de um lado para outro, e a participação do Controle não é mais necessária.
por 08.07.2014 / 10:51