Defnyddio NAT Traversal i gysylltu defnyddwyr yn y modd goddefol

Mae'r erthygl hon yn gyfieithiad rhad ac am ddim o un o'r cofnodion yn Blog datblygwr DC++.

Gyda chaniatΓ’d yr awdur (yn ogystal ag er mwyn eglurder a diddordeb), fe wnes i ei liwio Γ’ dolenni a'i ategu Γ’ pheth ymchwil personol.

Cyflwyniad

Rhaid io leiaf un defnyddiwr o'r pΓ’r cysylltu fod yn y modd gweithredol ar hyn o bryd. Bydd mecanwaith croesi NAT yn ddefnyddiol pan nad yw'r modd gweithredol wedi'i ffurfweddu ar y naill ochr na'r llall. Mae hyn fel arfer oherwydd wal dΓ’n neu ddyfais NAT yn rhwystro cysylltiadau sy'n dod i mewn.

Os yw'r ddau gleient yn y modd gweithredol

Mae'r cleient cychwyn yn anfon gorchymyn sy'n cynnwys ei gyfeiriad IP a'i borthladd ei hun $ConnectToMe i gleient arall. Gan ddefnyddio'r data hwn, mae'r cleient a dderbyniodd y gorchymyn yn sefydlu cysylltiad Γ’'r cychwynnwr.

Os yw un o'r cleientiaid yn y modd goddefol

Trwy'r canolbwynt, cleient goddefol A yn anfon gorchymyn $RevConnectToMe cleient gweithredol Bsydd wedyn yn ymateb gyda'r gorchymyn $ConnectToMe.

Defnyddio NAT Traversal i gysylltu defnyddwyr yn y modd goddefol
Fel gweinydd S yn yr achos uchod mae canolbwynt DC

Os yw'r ddau gleient yn y modd goddefol ymlaen canolbwynt ADC

Cleientiaid y tu Γ΄l i NATs gwahanol A ΠΈ B ymunodd Γ’'r canolbwynt S.

Defnyddio NAT Traversal i gysylltu defnyddwyr yn y modd goddefol
Dyma sut mae'r cysylltiad Γ’'r canolbwynt yn edrych o ochr y cleient A

Mae'r canolbwynt yn derbyn cysylltiadau ar borthladd 1511. Cleient A yn gwneud cysylltiadau sy'n mynd allan o'i rwydwaith preifat trwy borthladd 50758. Mae'r canolbwynt, yn ei dro, yn gweld cyfeiriad y ddyfais NAT, yn gweithio gydag ef ac yn ei ddarlledu i gleientiaid yn Γ΄l eu dynodwyr.

Cwsmer A yn anfon at y gweinydd S neges yn gofyn am help i gysylltu Γ’ chleient B.

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

Hefyd yn y modd goddefol, y cleient B, ar Γ΄l derbyn y gorchymyn hwn, rhaid adrodd am ei borthladd preifat a ddefnyddir i gysylltu Γ’'r canolbwynt trwy NAT.

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

Ar Γ΄l derbyn y wybodaeth hon y cleient A yn ceisio sefydlu cysylltiad Γ’'r cleient ar unwaith B ac yn adrodd ei borthladd preifat ei hun.

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

Beth yw'r diddordeb? Y diddordeb yw symud diweddbwynt yr un cysylltiad trwy greu cysylltiad newydd i gyfeiriad cyhoeddus trwy borthladd preifat a ddefnyddir eisoes.

Defnyddio NAT Traversal i gysylltu defnyddwyr yn y modd goddefol
Bingo!

Wrth gwrs, yn yr achos hwn y cleient NAT B Mae ganddo bob hawl i wrthod y cais am gysylltiad cyntaf gan gleient A, ond y mae ei gais ei hun yn rhuthro i’r β€œ twll ” a grΓ«ir gan yr union gysylltiad hwn, a sefydlir y cysylltiad.

Defnyddio NAT Traversal i gysylltu defnyddwyr yn y modd goddefol
Darlun sy'n addas ar gyfer y broses gyfan gyda'r cafeat hwnnw protocol ddim yn defnyddio porthladdoedd cyhoeddus a agorwyd gan y sesiwn NATβ€’S, yn ogystal Γ’ chyfeiriadau preifat.

Epilogue

Ar adeg ysgrifennu'r erthygl (gwreiddiol), mae tua hanner y cleientiaid DC yn gweithio mewn modd goddefol. Mae hyn yn golygu na ellir gwneud chwarter yr holl gysylltiadau posibl.

Ymhellach Bydd DC++ yn gallu osgoi NATdefnyddio cysylltiadau presennol Aβ€’S ΠΈ Bβ€’S i sefydlu cysylltiad cleient-cleient uniongyrchol, hyd yn oed os A ΠΈ B sydd mewn modd goddefol.

Ffynhonnell: hab.com

Ychwanegu sylw