غیر فعال موڈ میں صارفین کو جوڑنے کے لیے NAT Traversal کا استعمال

یہ مضمون اندراجات میں سے ایک کا مفت ترجمہ ہے۔ DC++ ڈویلپرز کا بلاگ.

مصنف کی اجازت سے (اور وضاحت اور دلچسپی کے لیے بھی)، میں نے کچھ لنکس اور کچھ ذاتی تحقیق شامل کی ہے۔

تعارف

فی الحال، منسلک جوڑے میں کم از کم ایک صارف کا فعال موڈ میں ہونا ضروری ہے۔ NAT ٹراورسل مفید ہے جب دونوں طرف سے ایکٹو موڈ کنفیگر نہ ہو۔ یہ عام طور پر ہوتا ہے کیونکہ آنے والے کنکشن فائر وال یا NAT ڈیوائس کے ذریعے مسدود ہوتے ہیں۔

اگر دونوں کلائنٹ ایکٹو موڈ میں ہیں۔

شروع کرنے والا کلائنٹ ایک کمانڈ بھیجتا ہے جس میں اس کا اپنا IP ایڈریس اور پورٹ ہوتا ہے۔ $ConnectToMe دوسرے کلائنٹ کو۔ اس ڈیٹا کا استعمال کرتے ہوئے، کمانڈ حاصل کرنے والا کلائنٹ انیشی ایٹر کے ساتھ رابطہ قائم کرتا ہے۔

اگر کلائنٹس میں سے کوئی ایک غیر فعال موڈ میں ہے۔

حب کے ذریعے، ایک غیر فعال کلائنٹ A ایک حکم بھیجتا ہے $RevConnectToMe فعال کلائنٹ B، جو پھر $ConnectToMe کمانڈ کے ساتھ جواب دیتا ہے۔

غیر فعال موڈ میں صارفین کو جوڑنے کے لیے NAT Traversal کا استعمال
بطور سرور S اوپر کی صورت میں، DC حب موجود ہے۔

اگر دونوں کلائنٹس غیر فعال موڈ پر ہیں۔ ADC مرکز

مختلف NATs کے پیچھے موجود کلائنٹس A и B مرکز میں شمولیت اختیار کی S.

غیر فعال موڈ میں صارفین کو جوڑنے کے لیے NAT Traversal کا استعمال
کلائنٹ کی طرف سے حب کا کنکشن ایسا ہی لگتا ہے۔ A

حب پورٹ 1511 پر کنکشن قبول کرتا ہے۔ کلائنٹ A پورٹ 50758 کے ذریعے اپنے پرائیویٹ نیٹ ورک سے آؤٹ گوئنگ کنکشن بناتا ہے۔ ہب، بدلے میں، NAT ڈیوائس کا پتہ دیکھتا ہے، اس کے ساتھ کام کرتا ہے، اور کلائنٹس کو ان کے شناخت کنندگان کے مطابق براڈکاسٹ کرتا ہے۔

گاہک A سرور کو بھیجتا ہے۔ S ایک پیغام جس میں کلائنٹ سے رابطہ قائم کرنے میں مدد طلب کی گئی ہے۔ B.

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

غیر فعال موڈ میں ہونے کی وجہ سے، کلائنٹ Bاس کمانڈ کو موصول ہونے پر، NAT کے ذریعے حب سے جڑنے کے لیے استعمال ہونے والی اپنی نجی پورٹ کی اطلاع دینی چاہیے۔

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

یہ معلومات حاصل کرنے کے بعد، کلائنٹ A فوری طور پر کلائنٹ کے ساتھ رابطہ قائم کرنے کی کوشش کرتا ہے۔ B اور اپنی ذاتی پورٹ کی رپورٹ کرتا ہے۔

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

کیا بات ہے؟ نقطہ یہ ہے کہ پہلے سے استعمال شدہ پرائیویٹ پورٹ کے ذریعے پبلک ایڈریس پر نیا کنکشن بنا کر اسی کنکشن کے اینڈ پوائنٹ کو شفٹ کیا جائے۔

غیر فعال موڈ میں صارفین کو جوڑنے کے لیے NAT Traversal کا استعمال
بنگو!

یقینا، اس معاملے میں کلائنٹ کی NAT B کلائنٹ کی طرف سے پہلی کنکشن کی درخواست کو مسترد کرنے کا پورا حق ہے۔ A، لیکن اس کی اپنی درخواست پہلے ہی اس کنکشن کے ذریعہ بنائے گئے "سوراخ" میں بھیجی گئی ہے، اور آخر کار کنکشن قائم ہو گیا ہے۔

غیر فعال موڈ میں صارفین کو جوڑنے کے لیے NAT Traversal کا استعمال
ایک مثال جو پورے عمل کو اس انتباہ کے ساتھ فٹ کرتی ہے۔ پروٹوکول سیشن کے ذریعہ کھولی گئی عوامی بندرگاہوں کا استعمال نہیں کرتا ہے۔ NAT-Sنیز نجی پتے۔

اپسنہار

لکھنے کے وقت، تقریباً نصف ڈی سی کلائنٹس غیر فعال موڈ میں کام کرتے ہیں۔ اس کا مطلب ہے کہ تمام ممکنہ رابطوں کا ایک چوتھائی حصہ قائم نہیں کیا جا سکتا۔

مزید DC++ NAT کو بائی پاس کر سکے گا۔موجودہ کنکشن کا استعمال کرتے ہوئے A-S и B-S ایک براہ راست کلائنٹ کلائنٹ کنکشن قائم کرنے کے لیے، چاہے A и B غیر فعال موڈ میں ہیں۔

ماخذ: www.habr.com