VPN বনাম TURN রিলে: WebRTC কল আসলে কোনটি বহন করে?
টানেল ICE যে পথ দেখে তা বদলে দেয়; এটি কখনো রিলে বরাদ্দ করে না বা সিগন্যালিং জোগায় না। VPN এগ্রেস ও TURN সার্ভার প্রতিটি কী দেয় তা তুলনা করুন।
পেজ VPN দিয়ে লোড হয়, কল কখনো সংযোগ হয় না: একই ঠিকানা-বারে দুটি ভিন্ন ত্রুটি। টানেল ব্রাউজার যে পথ ব্যবহার করে তা বদলে দিয়েছে; এটি সিগন্যালিং সেবা, STUN সার্ভার বা রিলে হয়ে ওঠেনি, এবং ICE কোন প্রার্থী-জোড়া বাছবে তাও এটি ঠিক করে না। প্রতিটি উপাদান যে কাজ করে তা আলাদা করাই অস্পষ্ট “WebRTC ব্লকড” কথাটিকে নির্দিষ্ট ত্রুটিতে বদলে দেয়।
চারটি কাজ, যার মধ্যে টানেল ছোঁয় মাত্র একটি
অ্যাপ্লিকেশন কিছু সিগন্যালিং ব্যবস্থার মাধ্যমে সেশন-তথ্য বিনিময় করে, এটাই প্রথম কাজ। ICE প্রার্থী-ঠিকানা সংগ্রহ করে এবং একটি কাজ করা পর্যন্ত জোড়া পরীক্ষা করে, এটাই দ্বিতীয়। STUN একজন সহকর্মীকে জানতে দেয় তার ট্রাফিক বাইরে থেকে কেমন দেখায়, আর TURN এমন ক্ষেত্রে রিলে বরাদ্দ করে যেখানে সরাসরি পথ নেই। ওই চারটি ভূমিকা আলাদা, এবং VPN তাদের যে ঠিকানা ও ফিল্টারিংয়ের মুখোমুখি হয় তা প্রভাবিত করে, সেগুলোর কোনটি নিজে জোগায় না।
তাই সফল লগইন মিডিয়া-পথ সম্পর্কে কিছুই বলে না। সিগন্যালিং সাধারণত পেজ যে HTTPS ব্যবহার করে সেটাই ব্যবহার করে, 443 পোর্টে, অথচ মিডিয়া UDP দিয়ে সম্পূর্ণ ভিন্ন গন্তব্যে যেতে পারে।
ব্যক্তিগত ঠিকানাকরণ বিভ্রান্তি আরও বাড়ায়। টানেল-ঠিকানা সহকর্মীর কাছে কেবল তখনই উপযোগী যখন তার দিকে ফিরে যাওয়ার একটি উদ্দিষ্ট পথ থাকে; ব্যক্তিগত হওয়া পারস্পরিক পৌঁছানোর প্রমাণ নয়, এবং ব্রাউজার যাচাই করা যায় না এমন প্রার্থী বাদ দেওয়ার সময় তাকে তা হিসেবে ধরে না। আপনার কাছে স্থানীয় দেখানো প্রার্থী অন্য দিক থেকে যাচাই-অযোগ্য হতে পারে। টানেল মিডিয়া ফেলছে বলে সিদ্ধান্তে পৌঁছানোর আগে ওই ফাঁক বাদ দেওয়া উচিত।
VPN এগ্রেসের সঙ্গে TURN রিলের তুলনা করুন
দুটোই প্যাকেট আগে পাঠায়, তাই এদের গুলিয়ে ফেলা হয়, আর উপরের তুলনা-সারণিটি বৈশিষ্ট্যের তালিকা হিসেবে নয়, কলাম ধরে পড়া উচিত। রিলে বরাদ্দ হলো প্রমাণীকৃত অনুরোধে তৈরি প্রতি-সেশনের একটি বস্তু; টানেল হলো একটি পথ। একটির শংসাপত্রের মেয়াদ শেষ হয়, অন্যটির সহকর্মী-ঠিকানা হয় পৌঁছানো যায়, নয় যায় না।
| Component | What it contributes | What it needs to work | What it cannot do |
|---|---|---|---|
| VPN exit | Changes the observed mapping and the route packets take | A working tunnel and a policy that permits the media transport | Allocate a relay or supply signaling |
| STUN server | Reports the mapped address a peer appears to use | Reachability from the client, on its configured transport | Carry media when a direct path fails |
| TURN server | Relays media through an authenticated allocation | Valid credentials, an allowed transport and sufficient capacity | Fix a missing ICE policy or an unauthorized client |
| Signaling channel | Carries offers, answers and candidate lists | Both peers reaching the same application endpoint | Establish connectivity by itself |
পোর্ট নম্বর পার্থক্যটিকে মূর্ত করে। TURN ডিফল্টভাবে UDP ও TCP-এর জন্য 3478-এ এবং TLS-এর জন্য 5349-এ শোনে, আর যে নেটওয়ার্ক 443 অনুমোদন করে কিন্তু ওই পোর্টগুলো বাদ দেয়, সেখানে ব্রাউজিং স্বাভাবিক চললেও রিলেকৃত কল ব্যর্থ হবে। VPN-এর পোর্ট বদলে এসবের কিছুই কনফিগার হয় না, কারণ গুরুত্বপূর্ণ পোর্টগুলো টানেলের নয়, রিলে সেবার।
ডায়াগনস্টিক্স পড়ুন, তারপর কল পরীক্ষা করুন
ব্রাউজার প্যাকেট ক্যাপচার ছাড়াই প্রয়োজনীয় তথ্য দেখায়। আপনার ব্রাউজারের WebRTC ডায়াগনস্টিক্স পেজ খুলুন, কল করুন, এবং সংগৃহীত তালিকার বদলে নির্বাচিত প্রার্থী-জোড়া পড়ুন: কোন স্থানীয় ও দূরবর্তী প্রার্থী-ধরন বাছা হয়েছে, কোন ট্রান্সপোর্ট ও ঠিকানা-পরিবারে, এবং পথটি সরাসরি না রিলে-করা।
দুটি পাঠ আগে থেকেই জানা ভালো। নির্বাচিত জোড়া ব্যক্তিগত ঠিকানায় হোস্ট-থেকে-হোস্ট হলে মিডিয়া এমন পথে থাকে যা নিয়ে আপনি যুক্তি করতে পারেন; রিলে-থেকে-রিলে হলে কলটি রিলে-ক্ষমতা খরচ করে এবং ওই সেবার প্রাপ্যতার উপর নির্ভর করে। নির্বাচিত জোড়া ছাড়া “যাচাই হচ্ছে” অবস্থায় আটকে যাওয়া ব্যর্থতা মানে প্রার্থীরা সংগৃহীত হয়েছে, কিন্তু কোনোটিই সংযোগ-পরীক্ষায় উত্তীর্ণ হয়নি।
তারপর একই কলের একই দুই প্রান্তে কেবল একটি অনুমোদিত শর্ত বদলে তুলনা করুন, এবং “সংযুক্ত” সূচকে নয়, দুইমুখী মিডিয়া বা ডেটায় ফলাফল গ্রহণ করুন। প্রার্থী সংগ্রহ এমন অনেক ক্ষেত্রে সফল হয় যেগুলো এক ফ্রেমও অডিও বহন করে না। পরিবর্তনের অন্য দিকে কলটি আবার করুন এবং দুটি ডায়াগনস্টিক ক্যাপচারই রাখুন, কারণ দুইবারের তুলনা যেকোনো একটি একা পড়ার চেয়ে বেশি তথ্য দেয়। একই প্রান্ত, একই কোডেক, একটি চলক বদলানো।
যে অ্যাপ্লিকেশন সচেতনভাবে তার ICE ট্রান্সপোর্ট নীতি relay-এ সেট করে, সে কেবল রিলে প্রার্থী চায়। ওই সেটিং রিলে তৈরি করে না এবং অনুপস্থিত শংসাপত্র মেরামত করে না; এটি প্রয়োজনীয়তাটি স্পষ্ট করে, যা তখন কাজে লাগে যখন কেউ সাইটের বেছে নেওয়া নীতির জন্য VPN-কে দোষ দেয়।
গোপনীয়তার দাবিটা প্রমাণের মতোই সংকীর্ণ রাখুন
প্রার্থীর প্রকাশ ব্রাউজার ও অ্যাপ্লিকেশন নীতি অনুসারে, কেবল টানেল-অবস্থার উপর নয়, আর W3C-এর পিয়ার-সংযোগ স্পেসিফিকেশন IP হ্যান্ডলিংকে নিজস্ব বিষয় হিসেবে দেখে। তাই সংযুক্ত VPN এই প্রতিশ্রুতি দিতে দুর্বল ভিত্তি যে কলটি কেবল একটি নির্বাচিত ঠিকানা প্রকাশ করে। একই টানেলের পিছনে দুই সহকর্মী এমন পথও বাছতে পারে যা কখনো হোস্ট ছাড়ে না, যা একই মুহূর্তে গোপনীয়তার উন্নতি ও সংযোগের সীমাবদ্ধতা।
যা আপনি নিখুঁতভাবে বলতে পারেন তা আরও সংকীর্ণ ও উপযোগী: কোন প্রার্থী-জোড়া বাছা হলো, কোন ট্রান্সপোর্ট তা বহন করল, এবং পথটি টানেলের ভেতরে রইল কি না। কাজ করা ও ব্যর্থ কলের জন্য এই তিনটি তথ্য লিখে রাখুন, পার্থক্যটি সাধারণত যে উপাদান ঠিক করতে হবে তার নাম বলে দেয়।
সংযোগ কাজ করলে কর্মক্ষমতা ও পৌঁছানোকে আলাদা করুন। ক্ষতি, বিলম্ব, সারি ও MTU সবই একটি সঠিক প্রার্থী-জোড়ার নিচের ধাপে থাকে, আর দুর্বল কলকে সংযোগ-ব্যর্থতা হিসেবে দেখা আপনাকে কারণ ছাড়াই প্রার্থী-তালিকায় ফিরিয়ে দেয়।