automatizando a porta 4900 Access para aplicativos ponto a ponto
muitos aplicativos ponto a ponto (P2P) dependem de portas específicas, como a porta 4900, para comunicação. No entanto, os roteadores geralmente bloqueiam o acesso a essas portas, dificultando a funcionalidade P2P. Este guia descreve como ativar automaticamente o acesso.
O estabelecimento da conectividade P2P requer estas etapas:
- Obtenha endereços IP locais: Identifique todos os endereços IP locais no seu dispositivo. Para cada endereço, crie um soquete UDP ouvindo na porta 4900.
- Descubra IP externo e mapeamento de porta: Utilize um servidor de atordoamento ou giro para determinar seu endereço IP externo e mapear sua porta interna 4900 para uma porta externa (potencialmente diferente).
- Compartilhe a lista de candidatos: disseminar a lista de pares de IP e portas (seus candidatos) por meio de um serviço de rendezvous ou comunicação direta com outros pares.
- handshake e estabelecimento de conexão: Os colegas trocam listas de candidatos e enviam mensagens de teste UDP para estabelecer um caminho de comunicação confiável. Um par de IP/porta adequado é então selecionado para transferência de dados.
Várias tecnologias ajudam a superar as limitações de NAT e Firewall:
- atordoamento (utilitários de travessia de sessão para nat): ajuda os clientes a descobrir seu endereço IP público e mapeamentos de porta.
- Turn (Traversal usando relés em torno do NAT): fornece serviços de retransmissão para conexões p2p quando conexões diretas Fail.
- gelo (estabelecimento de conectividade interativa): um protocolo padronizado Gerenciando o atordoamento e o uso para o uso de conexões p2p.
- webrtc: uma implementação de gelo com bibliotecas prontamente disponíveis para a construção de aplicativos P2P.
- upnp (plug and play universal): funciona com o protocolo de dispositivo do gateway da Internet para configurar automaticamente os mapeamentos de porta.
- libnice: uma implementação de gelo de código aberto para sistemas Linux.
- libjingle: uma biblioteca de gelo C do google.
- pjnath: Uma pilha de gelo de pjsip.