STUN Server: یہ کیا ہے، کیسے کام کرتا ہے اور کہاں استعمال ہوتا ہے

مصنف: IT Sectr اشاعت: 2026-06-02 مطالعے کا وقت: 8 منٹ

STUN Server Session Traversal Utilities for NAT (STUN) پروٹوکول کا ایک سرور ہے جو کلائنٹ کو اپنا بیرونی IP ایڈریس اور پورٹ متعین کرنے کی اجازت دیتا ہے، نیز Network Address Translation (NAT) کی قسم کا پتہ لگانے میں مدد کرتا ہے جس کے پیچھے وہ موجود ہے۔ IETF RFC 5389، 2008 کے مطابق، STUN WebRTC انفراسٹرکچر کا ایک لازمی جزو ہے، جو NAT کے پیچھے کلائنٹس کے درمیان براہ راست ہمہمت مساوی کنکشن قائم کرنے کے قابل بناتا ہے۔

اہم نکات

  • STUN Server — ایک نیٹ ورک نوڈ ہے جو کلائنٹ کو P2P کنکشن منظم کرنے کے لیے اپنا عوامی IP ایڈریس اور NAT قسم متعین کرنے میں مدد کرتا ہے۔
  • اصول — کلائنٹ ایک STUN درخواست بھیجتا ہے، سرور اس IP ایڈریس اور پورٹ کے ساتھ جواب دیتا ہے جہاں سے درخواست آئی تھی، کلائنٹ کے بیرونی ایڈریس ڈیٹا کو ظاہر کرتا ہے۔
  • WebRTC میں کردار — STUN سرور ICE Candidate Gathering مرحلے میں امیدواروں کو جمع کرنے اور براہ راست کنکشن کے امکان کی جانچ کرنے کے لیے استعمال ہوتا ہے۔
  • حدود — STUN Symmetric NAT کے ساتھ کام نہیں کرتا، جہاں بیرونی ایڈریس ہر منزل میزبان کے لیے بدلتا ہے۔
  • متبادل — جب STUN ناکام ہو جاتا ہے، تو TURN سرور استعمال کیا جاتا ہے، جو ایک ریلے نوڈ کے ذریعے ٹریفک کو ریلے کرتا ہے۔

STUN سرور کیا ہے

STUN Server (Session Traversal Utilities for NAT) ایک نیٹ ورک سروس ہے جو RFC 5389 میں متعین اور RFC 8489 میں اپ ڈیٹ کردہ پروٹوکول پر کام کرتی ہے۔ STUN سرور کا بنیادی کام کلائنٹ کو اس کے اپنے عوامی IP ایڈریس اور پورٹ کے بارے میں معلومات فراہم کرنا ہے جیسا کہ بیرونی نیٹ ورک سے دیکھا جاتا ہے، نیز کلائنٹ اور انٹرنیٹ کے درمیان NAT ڈیوائس کی قسم متعین کرنا ہے۔

STUN فن تعمیر میں دو اجزاء شامل ہیں: ایک STUN کلائنٹ جو ایپلیکیشن میں شامل ہوتا ہے (مثلاً براؤزر یا مقامی WebRTC ایپ)، اور ایک STUN سرور جو عوامی نیٹ ورک میں تعینات ہوتا ہے۔ کلائنٹ سرور کو ایک بائنڈنگ درخواست (Binding Request) بھیجتا ہے، جو اپنے جواب میں درخواست کے ماخذ IP ایڈریس اور پورٹ کو ظاہر کرتا ہے — یعنی کلائنٹ کے عوامی ایڈریس جیسا کہ سرور دیکھتا ہے۔ اس ڈیٹا کا اپنے مقامی ایڈریسز سے موازنہ کرکے، کلائنٹ یہ طے کر سکتا ہے کہ اس کے نیٹ ورک میں کس قسم کا NAT استعمال ہو رہا ہے۔

STUN پروٹوکول

STUN UDP (ڈیفالٹ طور پر پورٹ 3478) یا TCP (پورٹ 3478 یا TLS کے لیے 5349) پر کام کرتا ہے۔ ایک STUN پیغام 20 بائٹس کے ہیڈر اور متغیر تعداد میں خصوصیات پر مشتمل ہوتا ہے۔ ہیڈر میں پیغام کی قسم (Binding Request، Binding Response، Binding Error Response)، لمبائی، اور ایک منفرد لین دین شناخت کنندہ (96 بٹ) ہوتا ہے جو درخواستوں اور جوابات کو ملانے کی اجازت دیتا ہے۔ ہر Binding Response میں XOR-MAPPED-ADDRESS خصوصیت ہوتی ہے — کلائنٹ کا بیرونی ایڈریس، جو STUN ٹریفک کی روک تھام پر مبنی حملوں سے بچانے کے لیے ماسکنگ کے ساتھ انکوڈ کیا جاتا ہے۔

STUN سرور کیسے کام کرتا ہے

ایک STUN سرور ایک سادہ درخواست جوابی پروٹوکول پر کام کرتا ہے۔ NAT کے پیچھے موجود کلائنٹ ایک بائنڈنگ درخواست (Binding Request) بناتا ہے اور اسے STUN سرور کو بھیجتا ہے۔ سرور پیکٹ وصول کرتا ہے، UDP ہیڈر سے ماخذ IP ایڈریس اور بھیجنے والے کا پورٹ نکالتا ہے، پھر ایک بائنڈنگ جواب (Binding Response) بناتا ہے، اس ایڈریس کو XOR-MAPPED-ADDRESS خصوصیت میں پیک کرتا ہے۔ جواب درخواست کے ماخذ ایڈریس پر واپس بھیجا جاتا ہے۔

کلائنٹ جواب وصول کرتا ہے اور XOR-MAPPED-ADDRESS نکالتا ہے، جس میں NAT ڈیوائس کے ذریعے متعین کردہ بیرونی IP ایڈریس اور پورٹ ہوتا ہے۔ پھر کلائنٹ اس ایڈریس کا اپنے مقامی (RFC 1919 — نجی) ایڈریس سے موازنہ کرتا ہے۔ اگر ایڈریس مماثل ہیں — کلائنٹ NAT کے پیچھے نہیں ہے۔ اگر مختلف ہیں — کلائنٹ NAT کے پیچھے ہے، اور بیرونی ایڈریس WebRTC میں ICE (Interactive Connectivity Establishment) کے لیے امیدوار کے طور پر استعمال ہوتا ہے۔

NAT دریافت کا عمل

ایک STUN سرور جانچ کی درخواستوں کے ایک سلسلے کے ذریعے NAT کی قسم متعین کرنے کی اجازت دیتا ہے۔ کلائنٹ مختلف جھنڈیوں (CHANGE-REQUEST) کے ساتھ درخواستیں بھیجتا ہے اور جوابات کا تجزیہ کرتا ہے۔ مکمل دریافت کا چکر STUN سرور کے مختلف IP ایڈریسز اور پورٹس پر درخواستیں بھیجنا شامل ہے۔ اگر سرور تبدیل شدہ پورٹ کے ساتھ درخواست کا جواب دیتا ہے — NAT ريسٹریکٹڈ کون قسم کا ہے۔ اگر یہ تبدیل شدہ پورٹ اور IP کے ساتھ درخواست کا جواب نہیں دیتا — NAT سیمیٹرک قسم کا ہے۔ یہ معلومات WebRTC میں ICE حکمت عملی منتخب کرنے کے لیے اہم ہے۔

STUN سرور اور NAT کی اقسام

ایک STUN سرور چار اہم اقسام کے NAT کا پتہ لگا سکتا ہے، جن میں سے ہر ایک P2P کنکشن قائم کرنے کی صلاحیت کو مختلف طریقے سے متاثر کرتا ہے۔ NAT کی قسم طے کرتی ہے کہ آیا STUN دو کلائنٹس کے درمیان براہ راست کنکشن فعال کر سکتا ہے۔ یہ بھی طے کرتی ہے کہ کنکشن کے لیے کون سا ICE امیدوار — host، server reflexive یا relay — استعمال ہوگا۔

NAT قسمرویہSTUN کام کرتا ہےICE فالبیک
Full Coneکوئی بھی بیرونی میزبان کلائنٹ کو پیکٹ بھیج سکتا ہےہاںServer Reflexive
Restricted Coneصرف وہ میزبان جنہیں کلائنٹ نے پیکٹ بھیجے ہیںہاںServer Reflexive
Port RestrictedRestricted کی طرح، لیکن ماخذ پورٹ سے بھی فلٹر کرتا ہےہاںServer Reflexive
Symmetric NATبیرونی ایڈریس ہر میزبان:پورٹ جوڑی کے لیے منفرد ہےنہیںRelay (TURN)

Symmetric NAT وہ واحد قسم ہے جس سے STUN نمٹ نہیں سکتا۔ Symmetric NAT کے ساتھ، ایک نئے منزل میزبان کو ہر نئی درخواست ایک مختلف بیرونی ایڈریس (IP اور/یا پورٹ) حاصل کرتی ہے۔ چونکہ STUN سرور خود STUN سرور سے کنکشن کے لیے ایڈریس رپورٹ کرتا ہے، یہ ایڈریس دوسرے کلائنٹ سے جڑنے کے لیے نا مناسب ہے۔ ایسے معاملات میں، WebRTC ٹریفک کو ریلے کرنے کے لیے TURN سرور استعمال کرتا ہے۔ تحقیق کے مطابق (Ford et al., RFC 3489, 2003)، انٹرنیٹ پر تقریباً 8–10% NAT ڈیوائسز سیمیٹرک ہیں۔

WebRTC میں STUN سرور کا استعمال

STUN سرور RTCPeerConnection کنفیگریشن کے ذریعے WebRTC میں ضم ہوتا ہے۔ براؤزر یا مقامی ایپلیکیشن ICE امیدوار جمع کرنے کے لیے STUN استعمال کرتی ہے، جو بعد میں سگنلنگ سرور کے ذریعے تبادلہ کیے جاتے ہیں۔ WebRTC کنفیگریشن میں، STUN سرور iceServers صف میں UDP کے لیے stun: سابقہ یا TLS کنکشن کے لیے stuns: کے ساتھ متعین کیا جاتا ہے۔

آئیے WebRTC ایپلیکیشن کے لیے RTCPeerConnection بناتے وقت JavaScript میں STUN سرور سیٹ اپ کی ایک مثال دیکھتے ہیں۔

js
const config = {
    iceServers: [
        {
            urls: "stun:stun.l.google.com:19302"
        },
        {
            urls: "stun:stun1.l.google.com:19302"
        }
    ]
};

const pc = new RTCPeerConnection(config);

pc.onicecandidate = (event) => {
    if (event.candidate) {
        console.log("ICE امیدوار:", event.candidate.candidate);
    }
};

const offer = await pc.createOffer();
await pc.setLocalDescription(offer);

یہ مثال Google کے عوامی STUN سرورز (stun.l.google.com:19302) استعمال کرتی ہے۔ offer یا answer بناتے وقت، براؤزر خود بخود متعین سرورز کو STUN بائنڈنگ درخواست بھیجتا ہے، بیرونی ایڈریس (server reflexive امیدوار) حاصل کرتا ہے اور اسے ICE امیدواروں کی فہرست میں شامل کرتا ہے۔ تمام امیدواروں کے جمع ہونے کے بعد، وہ براہ راست P2P کنکشن قائم کرنے کی کوشش کے لیے سگنلنگ سرور کے ذریعے دور دراز پیر کو بھیجے جاتے ہیں۔

ICE امیدوار کی اقسام اور STUN

ICE عمل میں تین قسم کے امیدوار ہیں: host (مقامی ایڈریس)، srflx (server reflexive — STUN سے حاصل کردہ) اور relay (TURN کے ذریعے ریلے کردہ)۔ STUN سرور srflx امیدواروں کی تخلیق کو قابل بناتا ہے، جن کی relay امیدواروں سے زیادہ ترجیح ہوتی ہے کیونکہ STUN پر مبنی کنکشن براہ راست ہوتا ہے اور ریلے کی ضرورت نہیں ہوتی۔ ICE عمل دونوں پیرز کے تمام امیدواروں کے امتزاج (مقامی اور STUN سے حاصل کردہ) کی جانچ کرتا ہے، سب سے زیادہ ترجیحات سے شروع کرتے ہوئے۔

STUN پروٹوکول کی حدود

STUN سرور میں پروٹوکول فن تعمیر سے متعلق بنیادی حدود ہیں۔ اہم حد Symmetric NAT کے ساتھ کام کرنے میں ناکامی ہے، جہاں بیرونی میزبان کو ہر نئی درخواست ایک منفرد بیرونی پورٹ حاصل کرتی ہے۔ اس صورت میں، STUN سرور سے حاصل کردہ ایڈریس کسی دوسرے پیر سے جڑنے کے لیے استعمال نہیں کیا جا سکتا کیونکہ NAT نے صرف STUN سرور کے ساتھ مواصلت کے لیے بائنڈنگ بنائی ہے۔

دوسری حد یہ ہے کہ STUN ڈیٹا ریلے فراہم نہیں کرتا۔ اگر براہ راست P2P کنکشن ناممکن ہے (دونوں پیرز Symmetric NAT کے پیچھے)، STUN ڈیٹا کی ترسیل کے لیے کوئی متبادل راستہ فراہم نہیں کرتا۔ اس صورت میں، TURN سرور کی ضرورت ہوتی ہے، جو پیرز کے درمیان میڈیا ٹریفک ریلے کے طور پر کام کرتا ہے، ایک شریک سے ڈیٹا وصول کرتا ہے اور اسے اپنے عوامی IP ایڈریس کے ذریعے دوسرے کو بھیجتا ہے۔

  • Symmetric NAT — STUN سیمیٹرک NAT کے ساتھ کام نہیں کرتا کیونکہ بیرونی ایڈریس ہر منزل میزبان کے لیے منفرد ہے اور P2P کے لیے دوبارہ استعمال نہیں کیا جا سکتا۔
  • فائر وال گہری پیکٹ معائنہ — کچھ فائر والز پورٹ 3478 پر UDP پیکٹوں میں پروٹوکول کے دستخط کا پتہ لگا کر STUN ٹریفک کو بلاک کرتی ہیں۔
  • IPv6 — IPv6 نیٹ ورکس میں، NAT عام طور پر استعمال نہیں ہوتا، اس لیے STUN کی ضرورت نہیں، لیکن IPv6 پر WebRTC STUN یا TURN کی ضرورت کے بغیر host امیدوار استعمال کر سکتا ہے۔
  • دستیابی پر انحصار — STUN سرور کنکشن قیام کے مرحلے کے دوران کلائنٹ کے لیے قابل رسائی ہونا چاہیے، ورنہ srflx امیدوار جمع نہیں ہوں گے۔
  • سیکیورٹی — STUN پروٹوکول ایمپلیفیکیشن حملوں کا شکار ہے اگر سرور غلط طریقے سے کنفیگر کیا گیا ہو اور جعلی ماخذ ایڈریس والی درخواستوں کا جواب دیتا ہو۔

حدود کے باوجود، STUN سرور WebRTC انفراسٹرکچر کا ایک اہم جزو بنا ہوا ہے۔ زیادہ تر معاملات میں (80–90%)، STUN استعمال کرکے براہ راست P2P کنکشن قائم کیا جا سکتا ہے، جو TURN ریلے کے اخراجات سے بچاتا ہے اور میڈیا ڈیٹا کی ترسیل میں تاخیر کو کم کرتا ہے۔ عوامی WebRTC ایپلیکیشنز کے لیے، کسی بھی نیٹ ورک کے حالات میں کنکشن کی ضمانت کے لیے خودکار فالبیک کے ساتھ STUN اور TURN سرورز کا امتزاج استعمال کرنے کی سفارش کی جاتی ہے۔

اکثر پوچھے گئے سوالات

سادہ الفاظ میں STUN سرور کیا ہے؟

STUN سرور انٹرنیٹ پر ایک "آئینہ" ہے جو کلائنٹ کو اس کا بیرونی IP ایڈریس بتاتا ہے۔ جب کمپیوٹر راؤٹر (NAT) کے پیچھے ہوتا ہے، تو وہ اپنا عوامی ایڈریس نہیں جانتا۔ STUN سرور اسے تلاش کرنے میں مدد کرتا ہے تاکہ دوسرے کمپیوٹر براہ راست جڑ سکیں۔

WebRTC میں STUN سرور کیسے استعمال ہوتا ہے؟

WebRTC میں، STUN سرور RTCPeerConnection کنفیگریشن میں متعین کیا جاتا ہے۔ براؤزر بیرونی امیدوار ایڈریس (srflx) حاصل کرنے کے لیے STUN درخواست بھیجتا ہے۔ یہ امیدوار سگنلنگ سرور کے ذریعے دور دراز پیر کو بھیجا جاتا ہے، اور ICE ان کے درمیان براہ راست کنکشن قائم کرنے کی کوشش کرتا ہے۔

STUN اور TURN سرورز میں کیا فرق ہے؟

STUN براہ راست P2P کنکشن کے لیے بیرونی ایڈریس تلاش کرنے میں مدد کرتا ہے۔ TURN جب P2P ممکن نہ ہو تو اپنے سرور کے ذریعے ٹریفک کو ریلے کرتا ہے۔ STUN ایک "آئینہ" ہے، TURN ایک "ثالث" ہے۔ TURN سرور پر بوجھ ڈالتا ہے اور تاخیر بڑھاتا ہے، اس لیے STUN کو ترجیح دی جاتی ہے۔

کون سے عوامی STUN سرور استعمال کیے جا سکتے ہیں؟

Google مفت STUN سرورز فراہم کرتا ہے: stun.l.google.com:19302، stun1.l.google.com:19302۔ Twilio بھی اپنی Network Traversal Service کے ذریعے STUN + TURN انفراسٹرکچر فراہم کرتا ہے۔ پروڈکشن ایپلیکیشنز کے لیے، ضمانت شدہ دستیابی کے ساتھ اپنے یا تجارتی STUN/TURN سرورز کا استعمال بہتر ہے۔

STUN Symmetric NAT کے ساتھ کیوں کام نہیں کرتا؟

Symmetric NAT ہر "مقامی ایڈریس:منزل بیرونی ایڈریس" جوڑی کے لیے ایک منفرد بیرونی پورٹ میپنگ بناتا ہے۔ کلائنٹ STUN سرور سے جو ایڈریس حاصل کرتا ہے وہ اس STUN سرور کے ساتھ کنکشن سے منسلک ہوتا ہے۔ جب کوئی دوسرا پیر اس ایڈریس کو استعمال کرنے کی کوشش کرتا ہے، Symmetric NAT پیکٹ کو بلاک کر دیتا ہے کیونکہ نئے منزل ایڈریس کے لیے پورٹ میپنگ مختلف ہوتی ہے۔

خلاصہ

  • STUN Server — NAT کے پیچھے کلائنٹ کا بیرونی IP ایڈریس اور پورٹ متعین کرنے کے لیے RFC 5389 پروٹوکول لاگو کرنے والا نیٹ ورک نوڈ۔
  • کام کرنے کا اصول — کلائنٹ بائنڈنگ درخواست بھیجتا ہے، سرور XOR-MAPPED-ADDRESS کے ساتھ جواب دیتا ہے جس میں درخواست کے ماخذ کا عوامی ایڈریس ہوتا ہے۔
  • NAT کی اقسام — STUN Full Cone، Restricted Cone اور Port Restricted NAT کے ساتھ کام کرتا ہے، لیکن Symmetric NAT کو سنبھال نہیں سکتا۔
  • WebRTC میں کردار — STUN ICE امیدوار جمع کرنے کے مرحلے میں بیرونی ایڈریس کے ساتھ srflx امیدوار بنانے کے لیے استعمال ہوتا ہے۔
  • حدود — Symmetric NAT کے ساتھ کام نہیں کرتا، DPI فائر والز کے ذریعے مسدود ہو سکتا ہے، ڈیٹا ریلے فراہم نہیں کرتا۔
  • مفت سرورز — stun.l.google.com:19302 اور دیگر عوامی STUN سرورز جانچ اور زیادہ تر منظرناموں کے لیے کافی ہیں۔
  • سفارش — کسی بھی نیٹ ورک کے حالات میں کنکشن کی ضمانت کے لیے ہمیشہ فال بیک کے طور پر TURN سرور کے ساتھ STUN استعمال کریں۔

ہم ایک موبائل ایپلیکیشن ٹرنکی تیار کریں گے

IT Sectr 2017 سے اسٹارٹ اپس اور کاروبار کے لیے iOS اور Android ایپلیکیشنز بناتا ہے۔ ہم آپ کو مشورہ دیں گے اور بہترین حل تجویز کریں گے۔

پروجیکٹ پر بحث کریں

مزید پڑھیں