Digamos que temos um servidor STUN no endereço stun_addr
e um servidor no endereço srv_addr
. O uso do STUN geralmente é mais ou menos assim:
- O cliente se conecta ao servidor STUN no
stun_addr
dispositivo NAT. O dispositivo NAT converte o endereço de origem emnatted_addr_1
- O servidor STUN informa ao cliente o endereço do qual recebeu a conexão, que é
natted_addr_1
- O cliente entra em contato com o servidor
srv_addr
através do dispositivo NAT e instrui o sistema externo a usar natted_addr_1
se desejar alcançar o cliente
- O sistema externo envia algo ao cliente usando
natted_addr_1
Isso funcionará apenas se o dispositivo NAT usar natted_addr_1
para a comunicação com o servidor STUN e o outro sistema externo. Mais especificamente, funciona apenas se o dispositivo NAT entregar os pacotes que chegam na etapa 4 ao cliente.
Um dispositivo NAT simétrico usará uma tradução diferente nas etapas 1 e 3 porque o endereço de destino do tráfego é diferente. Na etapa 3, o endereço de origem nos pacotes para o servidor é traduzido para outro endereço natted_addr_2
.
O dispositivo NAT conhece apenas essas combinações de endereços de origem e destino e só permitirá que eles retornem:
- De
stun_addr
aténatted_addr_1
- De
srv_addr
aténatted_addr_2
Infelizmente, o servidor foi instruído a usar, natted_addr_1
mas os pacotes srv_addr
destinados a natted_addr_1
serão rejeitados pelo dispositivo NAT devido à restrição de Endereço NAT: Porta no local.
Para ser mais correto, 'endereço' deve ser substituído por 'endereço / porta' nesta resposta, porque os dispositivos NAT funcionarão com a combinação de endereço IP e números de porta.