একই টানেলে দুটি VPN গতির পরীক্ষা কেন ভিন্ন ফল দেয়
নতুন এক্সিট পরীক্ষার সার্ভার বদলে দেয়, আর ধীর শুরু ফলাফল বদলে দেয়। গন্তব্য স্থির করুন, স্ট্রিম সংখ্যা মিলিয়ে নিন এবং সিপিইউ খরচকে লিংকের ধারণক্ষমতা থেকে আলাদা করুন।
দুটি রান, একটি টানেল, আর সংখ্যাগুলো তিন গুণ আলাদা। তাদের মধ্যে টানেল বদলায়নি। যা বদলেছে তা হলো মাপজোক: একটি পরীক্ষার সাইট যা আপনার দেখতে পাওয়া অবস্থানের ভিত্তিতে সার্ভার বেছে নেয়, একটি স্ট্রিম সংখ্যা যা ঠিক করে একটি ধীর শুরু না ছয়টি পাইপ ভরছে, এবং এমন একটি সময়কাল যা পথটি ঠিকভাবে ব্যবহৃত হওয়ার আগেই শেষ হয়ে যায়। গতির পরীক্ষা ভুল নয়, তবে তারা মানুষ তাদের যে প্রশ্ন করে তার চেয়ে সংকীর্ণ প্রশ্নের উত্তর দেয়।
নতুন এক্সিট ঠিকানা পরীক্ষার গন্তব্য বদলায়
বেশিরভাগ পরীক্ষার সাইট স্বয়ংক্রিয়ভাবে একটি মাপার সার্ভার বেছে নেয়, এবং তারা তা বেছে নেয় আংশিকভাবে দেখে যে আপনার সংযোগ কোথা থেকে আসছে বলে মনে হচ্ছে। টানেল চালু করুন, আপনার দৃশ্যমান দেশ বদলে যায়, ফলে বাছাই করা সার্ভার বদলায়, এবং তুলনাটি এখন দুই ভিন্ন হোস্টে যাওয়া দুই ভিন্ন পথ জুড়ে বিস্তৃত হয়।
ফলাফলটি আদৌ কোনো VPN মাপ নয়। এটি আপনার এমন একটি সার্ভারে যাওয়ার পথের মাপ যা আপনি বেছে নেননি, এবং দুই রানের মধ্যে পার্থক্য ওই সার্ভারের পিয়ারিং দ্বারা প্রভাবিত হতে পারে, টানেল যা করেছে তার দ্বারা নয়।
অন্য কিছু বদলানোর আগে গন্তব্য স্থির করুন। প্রতিটি নির্ভরযোগ্য টুল আপনাকে স্পষ্টভাবে সার্ভার বেছে নিতে দেয়, আর যখন দেয় না, ফলাফল পৃষ্ঠা সাধারণত ব্যবহৃত সার্ভারটির নাম বলে, যা বুঝতে যথেষ্ট যে দুই রান তুলনাযোগ্য নয়। সাইটটি যা দেখেছে তা নিশ্চিত করুন তার পছন্দে ভরসা করার আগে:
curl -sS https://ipinfo.io/json | grep -E '"ip"|"org"|"country"'
রানগুলোর মধ্যে দেশ বদলালে, পরীক্ষাটি এর পরে যা বেছে নিয়েছে তাও বদলেছে। প্রতিটি ফলাফলের পাশে দেখা যাওয়া এক্সিট লিখুন এবং বিভ্রান্তি বেশিরভাগ ক্ষেত্রে মিলিয়ে যায়।
ধীর শুরু বেশিরভাগ ছোট পরীক্ষা শেষ হওয়ার পরে শেষ হয়
একটি TCP সংযোগ লিংকের গতিতে শুরু হয় না। এটি একটি ছোট কনজেশন উইন্ডো দিয়ে শুরু হয়, প্রায় প্রতিটি রাউন্ড ট্রিপে তা দ্বিগুণ করে, এবং কয়েকটি রাউন্ড ট্রিপের পরে পথের ধারণক্ষমতায় পৌঁছায়। উচ্চ লেটেন্সিযুক্ত পথে দশ সেকেন্ডের পরীক্ষা তার জীবনের উল্লেখযোগ্য অংশ ওই আরোহণে কাটাতে পারে।
এজন্যই বেশি লেটেন্সিযুক্ত টানেল ছোট পরীক্ষায় যতটা প্রাপ্য তার চেয়ে খারাপ ফল করে, এবং এজন্যই দীর্ঘ রান প্রায়শই কোনো কনফিগারেশন পরিবর্তন ছাড়াই বেশি সংখ্যা জানায়। RFC 6349 থ্রুপুট কাঠামো এটি স্পষ্টভাবে বিবেচনা করে, তাই গুরুতর মাপজোক স্থিতিশীল অবস্থায় পৌঁছাতে যথেষ্ট দীর্ঘ চলে। স্যাটেলাইট পথে পাঁচ সেকেন্ডের রান পথটি নয়, ত্বরণকারীটিকে মাপে।
একটি মাত্র সংখ্যায় ভরসা না করে সংযোগের ধাপগুলো দেখুন। Curl প্রতিটি ধাপ আলাদাভাবে জানায়, তাই আপনি দেখতে পান সময় হ্যান্ডশেকে যাচ্ছে, আরোহণে নাকি স্থানান্তরে:
curl -sS -o /dev/null -w 'dns=%{time_namelookup} tcp=%{time_connect} tls=%{time_appconnect} total=%{time_total} bytes/s=%{speed_download}\n' \
https://mirror.example.net/testfile.bin
একই গন্তব্যে এটি পরপর দুবার চালান। দ্বিতীয় রান অনেক দ্রুত হলে আপনি আরোহণ মাপছিলেন, পথ নয়, এবং কেবল প্রথম রান ব্যবহার করা যে কোনো তুলনা সন্দেহজনক।
একটি স্ট্রিম আর ছয়টি স্ট্রিম ভিন্ন জিনিস মাপে
একটি TCP স্ট্রিম যে উইন্ডোটি উড়ন্ত অবস্থায় রাখতে পারে তা দিয়ে সীমিত, যা মোটামুটি রাউন্ড ট্রিপ সময়কে গতি দিয়ে গুণ করলে হয়। দীর্ঘ পথে সেই গুণফল একটি স্ট্রিম যা ব্যবহার করবে তার চেয়ে বেশি, তাই একটি ডাউনলোড বিদ্যমান ধারণক্ষমতাকে কম দেখায়। ছয়টি সমান্তরাল স্ট্রিম ফাঁকটি ভরাট করে এবং বড় সংখ্যা দেয়।
iperf3 -c speed.example.net -t 20
iperf3 -c speed.example.net -t 20 -P 6
mtr -rwc 50 speed.example.net
দুটি সংখ্যাই সত্য। একক-স্ট্রিম সংখ্যা বলে একটি ডাউনলোড কী করবে, যা সাধারণত একটি ব্রাউজার ট্যাব পায়। সমান্তরাল সংখ্যা বলে পথটি সামগ্রিকভাবে কী বহন করতে পারে, যা একটি টরেন্ট বা বহু-অংশ ডাউনলোড ব্যবহার করতে পারে। একটিকে অন্যটির মতো উদ্ধৃত করাই হলো সুস্থ টানেল বিনা কারণে বদলে ফেলার পথ।
সমান্তরাল ফলাফলকে একক-স্ট্রিম ফলাফলের সঙ্গে তুলনা করা হলো মানুষদের এই সিদ্ধান্তে পৌঁছানোর সবচেয়ে সাধারণ উপায় যে VPN তাদের গতি অর্ধেক করে দিয়েছে। পদ্ধতি মিলিয়ে নিন, তারপর তুলনা করুন। তৃতীয় কমান্ডের ট্রেস অনুপস্থিত প্রসঙ্গ যোগ করে: বেশি জিটারযুক্ত পথ দুই মোডেই অসঙ্গত ফল দেবে, এবং কোনো স্ট্রিম সংখ্যা তা সারায় না।
এনক্রিপশন প্রসেসরের সময় নেয়, এনক্যাপসুলেশন বাইট নেয়
লিংক কত দ্রুত তা নির্বিশেষে প্রতিটি প্যাকেটে দুটি প্রক্রিয়া চলে। এনক্রিপশন প্রতি বাইটে সিপিইউ খরচ করে, আর এনক্যাপসুলেশন হেডার বাইট যোগ করে যা লিংককে এখনও বহন করতে হয়। দুটিই একটি সিলিং হিসেবে দেখা যায়, এবং তাদের উপসর্গ আলাদা।
সিপিইউ সিলিং একটি মালভূমির মতো দেখায়: আপনি যত স্ট্রিম যোগ করুন না কেন থ্রুপুট বাড়া বন্ধ হয়ে যায়, আর মেশিনের প্রসেসর ব্যস্ত থাকে লিংক নয়। ছোট রাউটার বা ফোনে এটি প্রায়ই প্রকৃত সীমা, এবং এজন্যই একটি দ্রুত লাইনও সাধারণ মানের টানেল দিতে পারে।
বাইট খরচ ছোট কিন্তু স্থির। অতিরিক্ত হেডার মানে প্রতি প্যাকেটে কম পেলোড, এবং নির্দিষ্ট সর্বোচ্চ ট্রান্সমিশন ইউনিটযুক্ত পথে সেগুলো ফ্র্যাগমেন্টেশন বা ব্ল্যাকহোলিংও ঘটাতে পারে যা বড় স্থানান্তরে ধীর গড় হিসেবে নয়, বরং থামার মতো দেখায়।
| Observation | Likely mechanism | What to measure |
|---|---|---|
| Throughput flat as streams increase | CPU per packet on one core | Per-core utilisation during the test |
| Fast small transfers, stalled large ones | MTU and fragmentation | Payload size at which it breaks |
| Good average, unusable calls | Queueing delay behind a full buffer | Latency under load |
এই তিনটি প্রায়শই গুলিয়ে যায়, কারণ ব্যবহারকারীরা সবগুলোকে বলেন «VPN ধীর»। কেবল প্রথমটি বড় মেশিনে সাড়া দেয়, কেবল দ্বিতীয়টি ছোট MTU-তে সাড়া দেয়, এবং কেবল তৃতীয়টি কিউ ব্যবস্থাপনায় সাড়া দেয়।
পদ্ধতিটি রেকর্ডে লিখুন
সংরক্ষণের যোগ্য ফলাফল ডিভাইস, অ্যাক্সেস নেটওয়ার্ক, এক্সিট, মাপার সার্ভার, দিক, স্ট্রিম সংখ্যা এবং সময়কালের নাম বলে। এগুলো ছাড়া দুটি সংখ্যা তুলনা করা যায় না, এবং একটি সংখ্যা থাকা টিকিট আসলে একটি মেজাজ।
খারাপ রানগুলোও রাখুন। যে সিরিজে একটি এক্সিট প্রতিবার থামা তৈরি করে তা গড়ের চেয়ে অনেক বেশি তথ্যবহ, আর থামাগুলোই ঠিক যা গড় লুকিয়ে রাখে।
তারপর আপনি সত্যিই যা নিয়ে ভাবেন তা পরীক্ষা করুন। লক্ষ্য বড় ডাউনলোড হলে ফাইলটি ডাউনলোড করুন। লক্ষ্য কল হলে নিষ্ক্রিয় থ্রুপুট নয়, লোডের নিচে লেটেন্সি মাপুন, কারণ একটি টানেল গতির পরীক্ষায় ভালো স্কোর করে সব সভাকে শোনার অযোগ্য করে তুলতে পারে।