Përdorimi i NAT Traversal për të lidhur përdoruesit në modalitetin pasiv

Ky artikull është një përkthim falas i një prej hyrjeve në Blog zhvilluesi DC++.

Me lejen e autorit (si dhe për qartësi dhe interes), e ngjyrosa me lidhje dhe e plotësova me disa kërkime personale.

Paraqitje

Të paktën një përdorues i çiftit lidhës duhet të jetë në modalitetin aktiv në këtë moment. Mekanizmi i kalimit NAT do të jetë i dobishëm kur modaliteti aktiv nuk është i konfiguruar në asnjërën anë. Kjo është zakonisht për shkak të një muri zjarri ose pajisjes NAT që bllokon lidhjet hyrëse.

Nëse të dy klientët janë në modalitetin aktiv

Klienti inicues dërgon një komandë që përmban adresën dhe portin e vet IP $ConnectToMe tek një klient tjetër. Duke përdorur këto të dhëna, klienti që ka marrë komandën krijon një lidhje me iniciatorin.

Nëse njëri nga klientët është në gjendje pasive

Nëpërmjet shpërndarësit, një klient pasiv A dërgon një komandë $RevConnectToMe klient aktiv Bi cili më pas përgjigjet me komandën $ConnectToMe.

Përdorimi i NAT Traversal për të lidhur përdoruesit në modalitetin pasiv
Si server S në rastin e mësipërm ka një shpërndarës DC

Nëse të dy klientët janë në modalitetin pasiv qendër ADC

Klientë që qëndrojnë pas NAT-ve të ndryshme A и B u bashkua me qendrën S.

Përdorimi i NAT Traversal për të lidhur përdoruesit në modalitetin pasiv
Kështu duket lidhja me shpërndarësin nga ana e klientit A

Hub pranon lidhje në portin 1511. Klient A bën lidhje dalëse nga rrjeti i tij privat nëpërmjet portit 50758. Hub-i, nga ana tjetër, sheh adresën e pajisjes NAT, punon me të dhe e transmeton te klientët sipas identifikuesve të tyre.

klient A dërgon në server S mesazh që kërkon ndihmë për t'u lidhur me një klient B.

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

Gjithashtu në modalitetin pasiv, klienti B, pasi të ketë marrë këtë komandë, duhet të raportojë portin e tij privat të përdorur për t'u lidhur me shpërndarësin nëpërmjet NAT.

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

Pas marrjes së këtij informacioni klienti A menjëherë përpiqet të krijojë një lidhje me klientin B dhe raporton portin e vet privat.

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

Cili është interesi? Interesi është në zhvendosjen e pikës fundore të së njëjtës lidhje duke krijuar një lidhje të re me një adresë publike përmes një porti privat tashmë të përdorur.

Përdorimi i NAT Traversal për të lidhur përdoruesit në modalitetin pasiv
Bingo!

Sigurisht, në këtë rast klienti NAT B ka çdo të drejtë të refuzojë kërkesën e parë të lidhjes nga një klient A, por kërkesa e tij nxiton në “vrimën” e krijuar pikërisht nga kjo lidhje dhe lidhja vendoset.

Përdorimi i NAT Traversal për të lidhur përdoruesit në modalitetin pasiv
Ilustrim i përshtatshëm për të gjithë procesin me paralajmërimin që protokolli nuk përdor portet publike të hapura nga seanca NATS, si dhe adresat private.

epilog

Në kohën e shkrimit të artikullit (origjinal), afërsisht gjysma e klientëve DC janë duke punuar në modalitetin pasiv. Kjo do të thotë se një e katërta e të gjitha lidhjeve të mundshme nuk mund të bëhet.

Me tutje DC++ do të jetë në gjendje të anashkalojë NATduke përdorur lidhjet ekzistuese AS и BS për të krijuar një lidhje të drejtpërdrejtë klient-klient, edhe nëse A и B janë në gjendje pasive.

Burimi: www.habr.com

Shto një koment