Este artigo é uma tradução livre de uma das postagens no .
Com a permissão do autor (e também para clareza e curiosidade), eu adicionei links e completei com algumas reflexões pessoais.
Introdução
Atualmente, pelo menos um usuário do par de se conectando deve estar em modo ativo. O mecanismo de 'contorno' do NAT será útil quando nenhum dos lados tiver o modo ativo configurado. Normalmente, isso acontece devido ao bloqueio de conexões de entrada pelo firewall ou dispositivo NAT.
Se ambos os clientes estão em modo ativo
O cliente iniciador envia um comando contendo seu próprio endereço IP e porta para o outro cliente. Usando esses dados, o cliente que recebeu o comando estabelece uma conexão com o iniciador.
Se um dos clientes estiver em modo passivo
Através do hub, o cliente passivo A envia o comando para o cliente ativo B, que então responde com o comando $ConnectToMe.

Como servidor S nesse caso, atua o hub do DC
Se ambos os clientes estiverem em modo passivo no
Clientes atrás de diferentes NATs A e B se conectaram ao hub S.

Assim, a conexão com o hub parece do lado do cliente A
O hub aceita conexões na porta 1511. O cliente A realiza conexões de saída de sua rede privada através da porta 50758. O hub, por sua vez, vê o endereço do dispositivo NAT, trabalha com ele e transmite aos clientes de acordo com seus identificadores.
Cliente A envia ao servidor S uma mensagem pedindo ajuda para se conectar ao cliente B.
Hub: [Outgoing][178.79.159.147:1511] DRCM AAAA BBBB ADCS/0.10 1649612991
Estando também em modo passivo, o cliente B, ao receber esse comando, deve informar sua porta privada, usada para conectar ao hub através do NAT.
Hub: [Incoming][178.79.159.147:1511] DNAT BBBB AAAA ADCS/0.10 59566 1649612991
Após receber essa informação, o cliente A imediatamente tenta estabelecer uma conexão com o cliente B e comunica sua própria porta privada.
Hub: [Outgoing][178.79.159.147:1511] D<b>RNT</b> AAAA BBBB ADCS/0.10 <b>50758</b> 1649612991Qual é o interesse? O interesse está em deslocar o ponto final da mesma conexão, criando uma nova conexão em um endereço público através de uma porta privada já utilizada.

Bingo!
Certamente, o NAT do cliente B tem total direito de rejeitar o primeiro pedido de conexão do cliente A, mas já seu próprio pedido se direciona para a 'abertura' criada por essa mesma conexão, e a conexão é estabelecida.

Uma ilustração que se aplica a todo o processo, com a ressalva de que não utiliza portas públicas abertas pela sessão NAT‒S, assim como endereços privados.
Epílogo
No momento da redação (original) do artigo, cerca de metade dos clientes do DC está operando em modo passivo. Isso significa que um quarto de todas as conexões possíveis não pode ser estabelecido.
No futuro , utilizando as conexões existentes A‒S e B‒S para estabelecer uma conexão direta cliente-cliente, mesmo se A e B estiverem em modo passivo.
Fonte: habr.com
