Comecei a explorar a opção de conectar com outro usando uma conexão p2p, então codifiquei um programa de soquete simples em JAVA para dispositivos Android em que o usuário em que os usuários podem compartilhar mensagens simples p2p (eu não tenho nenhum idéia sobre NAT então). Eu tenho que saber sobre o NAT, então agora preciso estabelecer uma conexão TCP com outro usuário que usa um servidor para a descoberta, mas a carga é transferida p2p. Eu também vi o XMPP (uma explicação muito boa e detalhada de como o protocolo funciona é aqui ) e UPnP, mas eu não sei como implementá-los.
Outra questão interessante que surge é do BitTorrent, porque eles podem trabalhar em qualquer dispositivo e até mesmo atrás de um NAT. Eu não sou capaz de obter qualquer explicação sobre como o BitTorrent funciona.
Eu pesquisei muito, mas estou preso.
Minhas perguntas são:
Editar:
Um dos métodos discutidos na rede para trabalhar com o NAT é usando o SIP. Isso funcionou para o Bleep, mas não consigo encontrar nenhuma implementação disso na rede. Alguém poderia explicar como o SIP funciona?
Tags bittorrent nat sip p2p