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

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

TURN سرور پروٹوکول Traversal Using Relays around NAT کا ایک سرور ہے جو دو پیرز کے درمیان میڈیا ٹریفک کو ریلے کرتا ہے جب براہ راست P2P کنکشن ممکن نہ ہو۔ IETF RFC 5766, 2010 کے مطابق، TURN سرور WebRTC کے ICE عمل میں آخری فال بیک کے طور پر کام کرتا ہے، جو Symmetric NAT اور کارپوریٹ فائر والز کے باوجود بھی گارنٹیڈ کنکشن کو یقینی بناتا ہے۔

اہم نکات

  • TURN سرور — ایک ریلے سرور ہے جو NAT کے ذریعے براہ راست P2P کنکشن ممکن نہ ہونے پر پیرز کے درمیان میڈیا ڈیٹا کو آگے بھیجتا ہے۔
  • اصول — ہر پیر TURN سرور کو ڈیٹا بھیجتا ہے، جو اسے دوسرے پیر کو آگے بھیجتا ہے، مواصلات میں ثالث کا کردار ادا کرتا ہے۔
  • ICE میں کردار — TURN اس وقت فعال ہوتا ہے جب براہ راست کنکشن کی تمام کوششیں (host اور server reflexive امیدوار) ناکام ہو جائیں۔
  • خرابی — TURN اضافی تاخیر اور سرور بوجھ پیدا کرتا ہے، کیونکہ تمام ٹریفک ریلے کے ذریعے گزرتی ہے۔
  • سیکیورٹی — TURN تصدیق (username, credential, realm) اور ریلے کردہ ڈیٹا کی حفاظت کے لیے TLS انکرپشن کو سپورٹ کرتا ہے۔

TURN سرور کیا ہے

TURN سرور (Traversal Using Relays around NAT) ایک نیٹ ورک سروس ہے جو RFC 5766 میں بیان کی گئی اور RFC 8656 میں اپ ڈیٹ کی گئی، جو دو کلائنٹس کے درمیان UDP اور TCP ٹریفک کو ریلے کرتی ہے جب NAT یا فائر وال کی پابندیوں کی وجہ سے براہ راست P2P کنکشن ممکن نہ ہو۔ WebRTC فن تعمیر میں، TURN سرور آخری فال بیک میکانزم کے طور پر کام کرتا ہے، کسی بھی نیٹ ورک کے حالات میں کنیکٹیویٹی کو یقینی بناتا ہے۔

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

TURN پروٹوکول

TURN STUN پروٹوکول کی ایک توسیع ہے۔ TURN پیغامات ایک ہی 20 بائٹ ہیڈر اور وصف میکانزم کا استعمال کرتے ہیں۔ کلیدی فرق یہ ہے کہ TURN نئی پیغام کی اقسام (Allocate, Refresh, Send, Data, CreatePermission, ChannelBind) اور ریلے مختص کے انتظام کے لیے ضروری صفات کی وضاحت کرتا ہے۔ کلائنٹ Allocate پیغام کے ذریعے TURN سرور پر ایک مختص بناتا ہے، ایک ریلےڈ ٹرانسپورٹ پتہ (relayed transport address) حاصل کرتا ہے اور سرور کے ذریعے ڈیٹا بھیجنے اور وصول کرنے کے لیے اسے استعمال کرتا ہے۔

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

TURN سرور مندرجہ ذیل اقدامات کی ترتیب کے مطابق کام کرتا ہے۔ کلائنٹ تصدیق (username, credential) کے ساتھ Allocate درخواست بھیجتا ہے۔ سرور اسناد کی تصدیق کرتا ہے اور ایک مختص بناتا ہے — کلائنٹ کے لیے ایک ریلےڈ پتے (TURN سرور پر IP:پورٹ) کا عارضی بائنڈنگ۔ سرور ایک ریلےڈ ٹرانسپورٹ پتہ کے ساتھ Allocate جواب واپس کرتا ہے — وہ پتہ جسے دوسرے پیر TURN سرور کے ذریعے اس کلائنٹ کو ڈیٹا بھیجنے کے لیے استعمال کریں گے۔

مختص بننے کے بعد، کلائنٹ Send Indication پیغامات یا چینلز (ChannelBind) کے ذریعے TURN سرور کے ذریعے ڈیٹا بھیج سکتا ہے۔ کلائنٹ سے ڈیٹا وصول کرنے پر، TURN سرور اجازتوں (مخصوص پیرز کو ڈیٹا بھیجنے کی اجازت) کی جانچ کرتا ہے اور ڈیٹا کو ہدف پیر کو ریلے کرتا ہے۔ آنے والا ڈیٹا وصول کرنے کے لیے، کلائنٹ کو پہلے اس پیر کے لیے اجازت بنانی ہوگی جس سے وہ ڈیٹا کی توقع کرتا ہے؛ بصورت دیگر TURN سرور آنے والا پیکٹ ضائع کر دے گا۔ ایک اجازت پیر کے IP پتے کی وضاحت کرتے ہوئے CreatePermission پیغام کے ذریعے بنائی جاتی ہے۔

مختص اور زندگی کا دورانیہ

TURN سرور پر مختص کا محدود زندگی کا دورانیہ ہوتا ہے — ڈیفالٹ طور پر 10 منٹ۔ کلائنٹ کو مختص بڑھانے کے لیے وقتاً فوقتاً Refresh درخواست بھیجنی چاہیے۔ زندگی کا دورانیہ LIFETIME وصف میں سیکنڈ میں بتایا جاتا ہے۔ اگر کوئی Refresh موصول نہیں ہوتا، تو سرور مختص کو ہٹا دیتا ہے اور ریلےڈ پتہ خالی کر دیتا ہے۔ تجویز کردہ ریفریش وقفہ — 5 منٹ (300 سیکنڈ) Refresh پیکٹ کے نقصان سے بچاؤ کے لیے۔

WebRTC میں TURN سرور ترتیب دینا

WebRTC میں، TURN سرور iceServers صف میں RTCPeerConnection ترتیب کے ذریعے ترتیب دیا جاتا ہے۔ TURN سرورز UDP، TCP یا TLS ٹرانسپورٹ استعمال کر سکتے ہیں۔ تصدیق عام طور پر ایپلیکیشن سرور پر محدود میعاد کے ساتھ پیدا کردہ وقت کی حد بند اسناد (TURN اسناد) استعمال کرتی ہے۔

JavaScript میں HMAC-SHA1 ٹوکن تصدیق کے ساتھ TURN سرور ترتیب کی ایک مثال پر غور کریں۔

js
async function createPeerConnection(turnServerUrl) {
    const credentials = await fetchTurnCredentials();

    const config = {
        iceServers: [
            {
                urls: "stun:stun.l.google.com:19302"
            },
            {
                urls: turnServerUrl,
                username: credentials.username,
                credential: credentials.credential
            }
        ],
        iceTransportPolicy: "all"
    };

    return new RTCPeerConnection(config);
}

async function fetchTurnCredentials() {
    const response = await fetch("/api/turn-credentials");
    return response.json();
}

const turnUrl = "turn:turn.example.com:3478";
const pc = await createPeerConnection(turnUrl);

اس مثال میں، TURN سرور ایک STUN سرور کے ساتھ ایک ہی ICE ترتیب میں بتایا گیا ہے۔ ICE عمل پہلے host امیدواروں اور STUN سے حاصل کردہ srflx امیدواروں کو استعمال کرنے کی کوشش کرتا ہے۔ اگر براہ راست کنکشن ناکام ہوتا ہے، ICE خود بخود TURN سرور سے حاصل کردہ relay امیدوار پر سوئچ کر جاتا ہے۔ پیرامیٹر iceTransportPolicy: "all" relay امیدواروں کو فعال کرتا ہے — متبادل قدر "relay" TURN کے علاوہ تمام امیدواروں کو غیر فعال کر دیتی ہے، جو جانچ کے لیے مفید ہے۔

TURN سرور تصدیق

غیر مجاز استعمال کو روکنے کے لیے، TURN سرور کو تصدیق کی ضرورت ہوتی ہے۔ معیاری طریقہ HMAC-SHA1 کا استعمال کرتے ہوئے ایپلیکیشن سرور پر وقت کی حد بند اسناد پیدا کرنا ہے۔ ایپلیکیشن سرور TURN سرور کی خفیہ کلید سے صارف نام کو انکرپٹ کرتا ہے اور صارف نام اور اسناد کلائنٹ کو واپس کرتا ہے۔ کلائنٹ انہیں RTCPeerConnection ترتیب میں دیتا ہے، اور براؤزر TURN سرور پر مختص بناتے وقت انہیں استعمال کرتا ہے۔ جب اسناد کی میعاد ختم ہوتی ہے، کلائنٹ ایپلیکیشن سرور سے نئی حاصل کرتا ہے۔

TURN بمقابلہ STUN: موازنہ

TURN اور STUN متعلقہ NAT ٹراورسل کاموں کو حل کرتے ہیں لیکن میکانزم اور لاگت میں بنیادی طور پر مختلف ہیں۔ TURN ٹریفک کو ریلے کرتا ہے، ثالث کا کردار ادا کرتا ہے، جبکہ STUN صرف براہ راست P2P کنکشن کے لیے بیرونی پتہ تعین کرنے میں مدد کرتا ہے۔ ان کے درمیان انتخاب پیرز کی NAT قسم اور کارکردگی کی ضروریات پر منحصر ہے۔

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

عملی طور پر، TURN سرور صرف ان کنکشنز کے لیے استعمال ہوتا ہے جہاں P2P ممکن نہ ہو۔ Google (WebRTC اعدادوشمار، 2023) کے مطابق، تقریباً 15–20% تمام WebRTC کنکشنز کو TURN ریلے کی ضرورت ہوتی ہے۔ باقی 80–85% STUN یا مقامی host امیدواروں کے ذریعے کنیکٹیویٹی قائم کرتے ہیں۔ ایپلیکیشن ڈیزائن کرتے وقت، آپ کو کل میڈیا والیوم کے 15–20% پر TURN ٹریفک کے لیے بجٹ بنانا چاہیے اگر آپ کے سامعین میں کارپوریٹ نیٹ ورکس اور سخت NAT پابندیوں والے علاقوں کے صارفین شامل ہیں۔

TURN سرور کی لاگت اور کارکردگی

TURN سرور اہم وسائل استعمال کرتا ہے کیونکہ تمام میڈیا ٹریفک اس کے ذریعے گزرتی ہے۔ TURN ریلے کے ساتھ ہر فعال کال کل میڈیا ٹریفک تھرو پٹ (آنے والا + جانے والا سلسلہ) کے برابر سرور بینڈوتھ استعمال کرتی ہے۔ HD ویڈیو کال (720p) کے لیے، یہ ہر کنکشن پر ہر سمت میں 1.5–2.5 Mbps ہو سکتا ہے، جو TURN سرور کے ذریعے کل 3–5 Mbps ٹریفک بنتا ہے۔

TURN انفراسٹرکچر کی تعیناتی کے لیے کئی اختیارات ہیں۔ مفت عوامی TURN سرورز کوالٹی اور سیکیورٹی گارنٹی کی کمی کی وجہ سے پروڈکشن کے لیے تجویز نہیں کیے جاتے۔ تجارتی فراہم کنندگان (Twilio Network Traversal Service, Xirsys, Metered) فی گیگا بائٹ قیمت پر TURN بطور سروس پیش کرتے ہیں — عام لاگت $0.005–0.02 فی گیگا بائٹ ہے۔ coturn (اوپن سورس TURN سرور) کے ساتھ سیلف ہوسٹنگ کے لیے کافی بینڈوتھ صلاحیت اور مانیٹرنگ سیٹ اپ والا سرور درکار ہے۔

  • coturn — سب سے مقبول اوپن سورس TURN سرور، زیادہ تر پروڈکشن سسٹمز میں استعمال ہوتا ہے، UDP، TCP، TLS اور DTLS ٹرانسپورٹ کو سپورٹ کرتا ہے۔
  • Twilio — ایک تجارتی سروس جو ٹریفک پر مبنی قیمتوں اور وقت کی حد بند ٹوکنز کے ذریعے تصدیق کے ساتھ TURN + STUN فراہم کرتی ہے۔
  • Xirsys — عالمی سرور نیٹ ورک اور تفصیلی استعمال کے تجزیات کے ساتھ ایک ماہر TURN فراہم کنندہ۔
  • Metered.ca — ایک TURN سروس جس میں ماہانہ 50 GB تک مفت حد اور اس سے زیادہ کے لیے ادائیگی جیسے استعمال ہے۔
  • سیلف ہوسٹڈ coturn — ترتیب پر مکمل کنٹرول، لیکن سرور ایڈمنسٹریشن اور مانیٹرنگ سیٹ اپ کی ضرورت ہے۔

TURN سرور حل منتخب کرتے وقت، صارف کے جغرافیہ، ٹریفک لاگت اور سیکیورٹی ضروریات پر غور کریں۔ ہزاروں بیک وقت کالوں والی ایپلیکیشنز کے لیے، وسیع چینل (1+ Gbps) والے سرورز پر سیلف ہوسٹڈ coturn تجارتی فراہم کنندگان سے زیادہ لاگت مؤثر ہو سکتا ہے۔ درجنوں صارفین والے چھوٹے پروجیکٹس کے لیے، انتظامیہ اور مانیٹرنگ کے اخراجات نہ ہونے کی وجہ سے تجارتی TURN خدمات ترجیحی ہیں۔

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

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

TURN سرور ایک ثالث ہے جو صارفین کے درمیان ڈیٹا ریلے کرتا ہے جب وہ براہ راست کنیکٹ نہیں ہو سکتے۔ اگر دو کمپیوٹر ایسے روٹرز کے پیچھے ہیں جو براہ راست کنکشن کی اجازت نہیں دیتے، تو TURN سرور ایک سے ڈیٹا وصول کرتا ہے اور دوسرے کو بھیجتا ہے۔

WebRTC میں TURN سرور کب درکار ہوتا ہے؟

TURN سرور اس وقت درکار ہوتا ہے جب WebRTC کال کے دونوں شرکاء Symmetric NAT یا کارپوریٹ فائر والز کے پیچھے ہوں جو P2P ٹریفک کو روکتی ہیں۔ ایسے معاملات میں، STUN مدد نہیں کر سکتا، اور ICE عمل خود بخود TURN سرور سے حاصل کردہ relay امیدوار پر سوئچ کر جاتا ہے۔

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

STUN صرف کمپیوٹر کو براہ راست کنکشن کے لیے اس کا بیرونی پتہ دکھاتا ہے۔ TURN اپنے ذریعے ٹریفک کو فعال طور پر ریلے کرتا ہے۔ STUN کوئی سرور بوجھ نہیں بناتا، جبکہ TURN بینڈوتھ استعمال کرتا ہے۔ STUN صرف مخصوص NAT اقسام کے ساتھ کام کرتا ہے؛ TURN ہمیشہ کام کرتا ہے لیکن مہنگا ہے۔

TURN سرور کی قیمت کتنی ہے؟

TURN سرور کی قیمت فراہم کنندہ اور ٹریفک والیوم پر منحصر ہے۔ Twilio TURN کے ذریعے ریلے کردہ ٹریفک کے فی GB تقریباً $0.005–0.01 چارج کرتا ہے۔ Xirsys فی GB $0.007 سے چارج کرتا ہے۔ coturn کی سیلف ہوسٹنگ کے لیے کم از کم 100 Mbps بینڈوتھ والا سرور درکار ہے، جس کی قیمت ہوسٹنگ فراہم کنندہ پر منحصر ہے۔

اپنا TURN سرور کیسے ترتیب دیں؟

آپ کا اپنا TURN سرور coturn (اوپن سورس) استعمال کرکے ترتیب دیا جا سکتا ہے۔ انسٹالیشن میں پورٹس، تصدیق (مشترکہ راز)، TLS سرٹیفکیٹس اور فائر وال کو ترتیب دینا شامل ہے۔ بنیادی ترتیب فائل میں listening-port، realm، user اور fingerprint کے پیرامیٹرز ہوتے ہیں۔ ترتیب کے بعد، سرور TLS کے لیے turn: یا turns: کے سابقے کے ساتھ WebRTC iceServers میں بتایا جاتا ہے۔

خلاصہ

  • TURN سرور — ایک ریلے سرور ہے جو پیرز کے درمیان براہ راست P2P کنکشن ممکن نہ ہونے پر میڈیا ٹریفک آگے بھیجتا ہے۔
  • کام کرنے کا اصول — کلائنٹ TURN سرور پر ایک مختص بناتا ہے، ریلےڈ ٹرانسپورٹ پتہ حاصل کرتا ہے اور ثالث سرور کے ذریعے ڈیٹا بھیجنے اور وصول کرنے کے لیے اسے استعمال کرتا ہے۔
  • ICE کردار — TURN ICE عمل میں آخری آپشن کے طور پر فعال ہوتا ہے جب host اور srflx امیدوار کنکشن قائم کرنے میں ناکام ہو جائیں۔
  • محدودیتیں — اضافی تاخیر (50–200 ms)، سرور بینڈوتھ استعمال (فی HD کال 3–5 Mbps)، ٹریفک اخراجات۔
  • STUN سے موازنہ — TURN کسی بھی NAT قسم کے ساتھ کام کرتا ہے لیکن مہنگا اور سست ہے۔ 80–85% کنکشنز کے لیے STUN ترجیحی ہے۔
  • آلات — coturn (سیلف ہوسٹڈ اوپن سورس)، Twilio NTS، Xirsys، Metered.ca تجارتی TURN سرور استعمال کے لیے۔
  • سفارش — TURN صرف فال بیک کے طور پر استعمال کریں جب STUN ناکام ہو، TURN کنکشنز کے فیصد کی نگرانی کریں اور ضرورت پڑنے پر بہتر بنائیں۔

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

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

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

مزید پڑھیں