Utilizà NAT Traversal per cunnette l'utilizatori in Modu Passivu

Questu articulu hè una traduzzione libera di una di e voci in Blog di sviluppatori DC++.

Cù u permessu di l'autore (cum'è per a chiarità è l'interessu), l'aghju culuritu cù ligami è cumplementatu cù qualchì ricerca persunale.

Introduzione

Almenu un utilizatore di a coppia di cunnessione deve esse in modu attivu à questu mumentu. U mecanismu di traversu NAT serà utile quandu u modu attivu ùn hè micca cunfiguratu da ogni latu. Questu hè di solitu dovutu à un firewall o un dispositivu NAT chì impediscenu e cunnessione entranti.

Sì i dui clienti sò in modu attivu

U clientu di l'iniziu manda un cumandamentu chì cuntene u so propiu indirizzu IP è portu $ConnectToMe à un altru cliente. Utilizendu questi dati, u cliente chì hà ricevutu u cumandamentu stabilisce una cunnessione cù l'iniziatore.

Se unu di i clienti hè in modu passiu

Per mezu di u hub, un cliente passiu A manda un cumandamentu $RevConnectToMe cliente attivu Bchì poi risponde cù u cumandimu $ ConnectToMe.

Utilizà NAT Traversal per cunnette l'utilizatori in Modu Passivu
Cum'è un servitore S in u casu sopra ci hè un hub DC

Sì i dui clienti sò in modu passiu hub ADC

Clienti daretu à diversi NAT A и B unitu à u hub S.

Utilizà NAT Traversal per cunnette l'utilizatori in Modu Passivu
Hè cusì chì a cunnessione à u hub pare da u cliente A

U hub accetta cunnessione à u portu 1511. Client A face cunnessione in uscita da a so reta privata via u portu 50758. U hub, à u turnu, vede l'indirizzu di u dispusitivu NAT, travaglia cun ellu è trasmette à i clienti secondu i so identificatori.

Cliente A manda à u servitore S missaghju chì dumanda aiutu per cunnette cù un cliente B.

Hub: [Outgoing][178.79.159.147:1511] DRCM AAAA BBBB ADCS/0.10 1649612991

Ancu in modu passiu, u cliente B, avè ricivutu stu cumandamentu, deve signalà u so portu privatu utilizatu per cunnette à u hub via NAT.

Hub: [Incoming][178.79.159.147:1511] DNAT BBBB AAAA ADCS/0.10 59566 1649612991

Dopu avè ricivutu sta infurmazione u cliente A immediatamente prova à stabilisce una cunnessione cù u cliente B è raporta u so propiu portu privatu.

Hub:		[Outgoing][178.79.159.147:1511]	 	D<b>RNT</b> AAAA BBBB ADCS/0.10 <b>50758</b> 1649612991

Chì ghjè l'interessu ? L'interessu hè di trasfurmà u puntu finale di a stessa cunnessione creendu una nova cunnessione à un indirizzu publicu attraversu un portu privatu digià utilizatu.

Utilizà NAT Traversal per cunnette l'utilizatori in Modu Passivu
Bingo !

Di sicuru, in stu casu, u cliente NAT B hà u dirittu di ricusà a prima dumanda di cunnessione da un cliente A, ma a so propria dumanda si precipita in u "buru" creatu da sta cunnessione, è a cunnessione hè stabilita.

Utilizà NAT Traversal per cunnette l'utilizatori in Modu Passivu
Illustrazione adattata per tuttu u prucessu cù l'avvertimentu chì protocolu ùn usa micca i porti publichi aperti da a sessione natuS, è ancu indirizzi privati.

Epilogue

À u mumentu di a scrittura di l'articulu (uriginale), circa a mità di i clienti DC sò travagliendu in modu passiu. Questu significa chì un quartu di tutte e cunnessione pussibuli ùn pò micca esse fattu.

In u futuru DC ++ hà da pudè aggiri NATutilizendu e cunnessione esistenti AS и BS per stabilisce una cunnessione diretta cliente-cliente, ancu s'ellu A и B sò in modu passiu.

Source: www.habr.com

Add a comment