Perché il NAT è d'intralcio
La maggior parte dei computer sta dietro una traduzione degli indirizzi di rete (NAT): un router che condivide un indirizzo pubblico tra molti indirizzi privati e lascia entrare solo i pacchetti che rispondono a una connessione partita dall'interno. Due computer su reti di casa o d'ufficio diverse quindi non possono semplicemente aprire una connessione l'uno verso l'altro: ogni router scarta il primo pacchetto dell'altra parte.
Quanto sia difficile il problema dipende dal router. L'RFC 4787 descrive come i NAT mappano e filtrano il traffico UDP: quando un router riusa la stessa porta pubblica per ogni destinazione, di solito è facile trovare una via diretta; quando sceglie una porta nuova per ogni destinazione (spesso chiamato NAT simmetrico), è molto più difficile.
Come funziona l'hole punching
L'attraversamento del NAT è l'insieme di tecniche che trovano comunque una via diretta. Prima ogni lato scopre come appare dall'esterno, di solito chiedendolo a un server STUN. I due lati si scambiano questi indirizzi candidati tramite un server di coordinamento, poi entrambi inviano pacchetti l'uno verso l'altro nello stesso momento. Ogni router vede prima un pacchetto in uscita e tratta la risposta come parte di quel flusso, così si apre una via in entrambe le direzioni. L'RFC 5128 passa in rassegna queste tecniche.
Si può anche chiedere direttamente ai router: UPnP IGD, NAT-PMP e il suo successore, il Port Control Protocol (RFC 6887), permettono a un'applicazione di chiedere una mappatura di porta. Alcuni firewall aziendali e il NAT degli operatori (carrier-grade NAT) sconfiggono ogni tecnica. Quando niente funziona, la sessione ripiega su un relay che inoltra il traffico tra i due lati.
Come si collega Vexaro Desk
Una sessione Vexaro Desk si collega direttamente ovunque la rete lo consenta, e tramite un relay Vexaro autenticato quando non lo consente. Non c'è niente da configurare: il client trova una via da solo.
Il programma di installazione aggiunge una regola a Windows Firewall perché le connessioni dirette e quelle in rete locale possano funzionare; una copia portable non può aggiungerla, quindi è più probabile che le sue sessioni passino da un relay. Le connessioni dirette si possono disattivare nelle Impostazioni, e la finestra della sessione mostra se una sessione è diretta o tramite relay. Le sessioni dirette hanno la crittografia end-to-end. Quando una rete impone una connessione tramite relay, il traffico resta cifrato in transito attraverso relay gestiti da Vexaro.