WebRTC امیدواروں کی فہرست آپ کے VPN کے بارے میں کیا ظاہر کرتی ہے
ہوسٹ، سرور ریفلکسیو یا ریلے امیدوار بتاتا ہے کہ پتہ کہاں سے آیا۔ صرف منتخب ICE جوڑی بتاتی ہے کہ میڈیا نے واقعی کون سا راستہ استعمال کیا۔
جب WebRTC ٹیسٹ صفحہ 172.20.4.15 چھاپتا ہے، تو اس نے جان لیا ہے کہ اس نیٹ ورک پر ایک مقامی انٹرفیس موجود ہے۔ یہ حقیقی افشا ہے، اور یہ «میڈیا VPN ایگزٹ سے باہر گیا» والا وہی نتیجہ نہیں ہے۔ امیدواروں کی دریافت اور پیکٹ روٹنگ الگ الگ میکانزم ہیں، اور زیادہ تر لیک رپورٹیں انہیں ایک ہی فیصلے میں ملا دیتی ہیں۔ آپ کون سا دیکھ رہے ہیں، یہی حل طے کرتا ہے۔
کچھ بھیجنے سے پہلے جمع کرنا ہوتا ہے
براؤزر مقامی انٹرفیس کی فہرست بناتا ہے، STUN سرور کو بائنڈنگ درخواست بھیجتا ہے اور TURN سرور سے الاٹمنٹ مانگتا ہے، پھر نتائج کو سیشن تفصیل میں امیدوار لائنوں کے طور پر لکھتا ہے۔ یہ سب کسی کال، میڈیا اور سامنے والے فریق کے بغیر مکمل ہوتا ہے۔ اس لیے امیدواروں کی فہرست دریافت کا ریکارڈ ہے، ترسیل کا نہیں۔
جدید براؤزر ہوسٹ امیدوار کے لغوی پتے کو mDNS نام .local سے بدل سکتے ہیں، جس سے صفحہ نجی IP نہیں پڑھ سکتا۔ مقامی نیٹ ورک اب بھی وہ ملٹی کاسٹ استفسارات دیکھتا ہے جو اس نام کو حل کرتے ہیں، یعنی پتہ ایپلیکیشن سے چھپایا جاتا ہے، تار سے ہٹایا نہیں جاتا۔
ترتیب بھی اہم ہے: نئی صفحہ لوڈ نئی مجموعہ جمع کرتی ہے، مختلف TURN الاٹمنٹ اور ممکنہ طور پر مختلف ریفلکسیو میپنگ کے ساتھ۔ مختلف نتائج دینے والی دو رنز لازماً دو مختلف ترتیبات نہیں ہیں۔
تین قسم کے امیدوار، تین قسم کے ثبوت
ہر لائن کسی مختلف مشاہدے سے آتی ہے۔ ہر قسم مختلف سوال کا جواب دیتی ہے، اور جدول انہیں اس بنیاد پر الگ کرتا ہے کہ وہ کیا ثابت کر سکتے ہیں اور کیا نہیں۔
| Candidate | Derived from | What it establishes | What it cannot establish |
|---|---|---|---|
| Host | An interface on the device | A local address exists in that network | That the peer can reach it |
| Server-reflexive | A STUN binding response | How a NAT mapped this source | Which exit the media will use |
| Peer-reflexive | A connectivity check that arrived | An address seen by the far side | That it was ever advertised |
| Relay | A TURN allocation | The relay server accepted the session | That the relay carries the call |
ریلے امیدوار کو اکثر صارف کے انٹرنیٹ پتے کے طور پر غلط سمجھا جاتا ہے۔ یہ TURN سرور کا ہے، اور اس کی موجودگی بتاتی ہے کہ ریلے دستیاب تھا، یہ نہیں کہ براؤزر نے اسے چنا۔ یہی الجھن ہوسٹ امیدواروں کے ساتھ الٹی سمت میں چلتی ہے، جہاں mDNS نام پتے کو صفحہ سے چھپاتا ہے جبکہ نیٹ ورک اب بھی استفسارات لے کر جاتا ہے۔ قدر پڑھنے سے پہلے قسم پڑھیں۔
منتخب جوڑی روٹنگ سوال کا جواب دیتی ہے
ICE ہر مقامی امیدوار کو ہر دور امیدوار کے ساتھ جوڑتا ہے، ہر جوڑی پر کنیکٹیویٹی جانچ چلاتا ہے اور ایک جیتنے والا نامزد کرتا ہے۔ وہی نامزد جوڑی، جو براؤزر کی اپنی تشخیص میں نظر آتی ہے، میڈیا لے کر جاتی ہے۔ فہرست میں باقی سب ہاری ہوئی امکان ہے۔
جیتنے والا آپ کو راستے کی شکل بتاتا ہے۔ ریلے سے ریلے TURN سرور سے گزرتا ہے، ہوسٹ جوڑی مقامی نیٹ ورک پر رہتی ہے، اور سرور ریفلکسیو جوڑی NAT سے سیدھی جاتی ہے۔ یہی وہ حقیقت ہے جو VPN جانچ کو درکار ہے، اور یہ پتوں کی فہرست سے مختلف حقیقت ہے۔ ایک جیسی امیدوار فہرستوں والی دو کالیں مختلف جوڑیاں لے سکتی ہیں۔
نہ چنے گئے امیدوار بھی جمع ہوئے، اور جمع کرنا وہ نیٹ ورک ٹریفک ہے جو مشین سے باہر جاتا ہے۔ جس کال نے آخر میں ریلے استعمال کیا، اس کا مطلب یہ نہیں کہ فہرست بنتے وقت کچھ بھی ظاہر نہیں ہوا۔
کنٹرول اہداف سے مطابقت رکھتے ہیں، لیک اسکور سے نہیں
WebRTC کی IP ہینڈلنگ تفصیل کئی پالیسیاں بیان کرتی ہے: صرف وہ انٹرفیس استعمال کرنا جو ڈیفالٹ راستہ لے کر جاتا ہے، تمام انٹرفیس استعمال کرنا، اور پراکسی کے بغیر UDP بند کرنا تاکہ ٹریفک کو ریلے یا پراکسی سے گزرنا پڑے۔ ہر ایک کنیکٹیویٹی اور تاخیر کو مختلف قسم کے انکشاف سے بدلتا ہے۔ براؤزر کون سی نافذ کرتا ہے اور کس نام سے، یہ پلیٹ فارم اور ورژن کے مطابق بدلتا ہے۔
پالیسی ہدف سے چنیں۔ صفحہ سے مقامی پتے چھپانا ایک ہدف ہے؛ براہ راست ہم مرتبہ ٹریفک روکنا دوسرا ہے؛ ہر پیکٹ کو ٹنل کے اندر رکھنا تیسرا ہے۔ پہلا زیادہ تر اس بارے میں ہے کہ ایپلیکیشن کیا سیکھتی ہے، دوسرا اس بارے میں کہ کون سا راستہ اجازت یافتہ ہے، اور تیسرا پلیٹ فارم یا VPN کی حد پر بھی نافذ کرنا ہوگا۔
آپ جو بھی کنٹرول چنیں، دونوں نصف جانچیں: جمع کرنے کا ٹیسٹ چلائیں اور امیدواروں کی اقسام درج کریں، پھر اصل سیشن کے دوران منتخب جوڑی کا جائزہ لیں۔ براہ راست میڈیا راستے والی صاف پتوں کی فہرست بھی وہ راستہ ہے جس کا آپ نے ارادہ نہیں کیا تھا۔