BreakHub
راهنماهارتبه‌بندی و آزمایش

چطور رتبه‌بندی را بخوانیم

پشت هر ستون جدول رتبه‌بندی یک قاعده هست: چرا از میانه استفاده می‌کنیم، چرا بعضی ابزارها به‌جای رتبه «—» نشان می‌دهند، گزینهٔ «فقط سرویس‌ها» چه چیزی را فیلتر می‌کند، و ستون رتبهٔ GreatFire چطور محاسبه می‌شود.

7 دقیقه مطالعه · انتشار ۱۹ شهریور ۱۴۰۵

جدول رتبه‌بندی ساده به نظر می‌رسد: نام چند ابزار، چند عدد، یک رتبه. اما اگر ندانید این اعداد چطور تولید می‌شوند، خیلی راحت به نتیجهٔ اشتباه می‌رسید — مثلاً ابزاری را که دو بار در یک ساعت خلوت آزمایش شده «سریع‌ترین VPN چین» می‌نامید. این صفحه قاعدهٔ پشت هر ستون را توضیح می‌دهد. قواعد عمداً با Circumvention Central متعلق به GreatFire یکی است تا دو جدول را بتوان کنار هم مقایسه کرد.

میانه، نه میانگین

ستون‌های سرعت، تأخیر و پایداری همگی میانه هستند. همهٔ آزمایش‌های یک ابزار در بازهٔ انتخاب‌شده را بردارید، بر اساس سرعت مرتب کنید، عدد وسط را انتخاب کنید — این می‌شود «سرعت (میانه)» آن ابزار.

چرا میانگین نه؟ چون داده‌های سرعت فیلترشکن‌ها به‌شدت چوله است. ابزاری که معمولاً ۱ MB/s می‌دهد، یک شب عدد ۲۰ MB/s ثبت می‌کند — شاید مسیر خالی بوده، شاید آزمایش‌کننده یادش رفته کش محلی را پاک کند. میانگین می‌پرد؛ میانه به‌سختی تکان می‌خورد. در جهت مخالف هم همین‌طور است: یک آزمایش که سرعتش تا صفر پایین آمده، ابزاری را که معمولاً قابل اتکاست به ته جدول نمی‌کشد. روش GreatFire استفاده از میانه است و ما همان را نگه داشتیم.

تأخیر و پایداری همین منطق را دنبال می‌کنند. تأخیر یک آزمایش خودش میانهٔ بیست نمونهٔ همان آزمایش است، و جدول بعد میانهٔ بین آزمایش‌ها را می‌گیرد — میانهٔ میانه‌ها، که عمداً نسبت به داده‌های پرت بی‌حس است.

چرا دست‌کم پنج آزمایش در ۴۸ ساعت

برای رتبه گرفتن (ما می‌گوییم «ورود به استخر»)، یک ابزار در بازهٔ انتخاب‌شده به دست‌کم ۵ آزمایش نیاز دارد و بین اولین و آخرین آن‌ها باید حداقل ۴۸ ساعت فاصله باشد.

پنج یک کف است، نه یک آستانهٔ آماری دقیق، اما جلوی رایج‌ترین نویز را می‌گیرد: کسی ابزار جدیدی نصب می‌کند و سه بار پشت سر هم اجرایش می‌کند — همان مسیر، همان ساعت. شرط ۴۸ ساعت مشکل دیگری را حل می‌کند. پنج آزمایش در یک بعدازظهر و پنج آزمایش پخش‌شده در یک هفته، مقدار اطلاعات بسیار متفاوتی دارند. رفتار فیلترینگ در ساعت‌های مختلف روز فرق می‌کند؛ اوج مصرف شبانه و ساعت ۳ بامداد می‌توانند دو شبکهٔ متفاوت باشند. داده‌ای که دست‌کم دو روز را پوشش می‌دهد، یک چرخهٔ کامل روزانه را پشت سر گذاشته است.

ابزارهایی که این شرط‌ها را برآورده نمی‌کنند پنهان نمی‌شوند. سرعت، تأخیر، پایداری و تعداد آزمایش آن‌ها همچنان نمایش داده می‌شود، اما ستون رتبه «—» است و زیر ابزارهای رتبه‌بندی‌شده قرار می‌گیرند. نشانگر را روی خط تیره نگه دارید تا آستانه را ببینید. اگر ابزار موردعلاقهٔ شما آنجا نشسته، سریع‌ترین راه‌حل این است که خودتان یک آزمایش اجرا کنید — چند اجرای دیگر در روزهای مختلف و وارد استخر می‌شود.

رتبه چطور محاسبه می‌شود و چرا رتبه‌های مساوی پیش می‌آید

رتبه صرفاً مرتب‌سازی ستون سرعت نیست. هر سه معیار را ترکیب می‌کند:

  1. برای هر ابزار در استخر، یک رتبهٔ سرعت، یک رتبهٔ تأخیر و یک رتبهٔ پایداری محاسبه می‌شود. رتبه در یک معیار = ۱ + تعداد اعضای استخر که در آن معیار اکیداً بهتر هستند. سرعت بیشتر بهتر است، تأخیر کمتر بهتر است، پایداری بیشتر بهتر است.
  2. میانگین این سه رتبه می‌شود score. کمتر بهتر است.
  3. بر اساس score صعودی مرتب می‌شود. این همان «رتبه‌بندی» نهایی است.

مرحلهٔ ۱ از چیزی استفاده می‌کند که به آن رتبه‌بندی رقابتی می‌گویند: اگر سه ابزار همگی ۵٫۰ MB/s اندازه بگیرند و هیچ‌کدام از دیگری جلوتر نباشد، هر سه رتبهٔ سرعت ۱ می‌گیرند و ابزار بعدی ۴ می‌گیرد، نه ۲. به همین دلیل scoreها می‌توانند با هم برابر شوند و جدول رتبه‌های مساوی نشان می‌دهد. این باگ نیست؛ یعنی داده واقعاً نمی‌تواند آن‌ها را از هم جدا کند.

یک جزئیات: اگر یک ابزار یک معیار را به‌کلی نداشته باشد (مثلاً هیچ‌کدام از آزمایش‌هایش پایداری ثبت نکرده باشد)، رتبهٔ آن معیار برابر «اندازهٔ استخر + ۱» گذاشته می‌شود — عقب‌تر از همه. دادهٔ ناقص هیچ‌وقت امتیاز مجانی نمی‌گیرد.

یک مثال. چهار ابزار در استخر. ابزار A در سرعت اول است، در تأخیر سوم و در پایداری اول: score برابر (1+3+1)/3 ≈ 1.67. ابزار B دوم، اول، اول: score برابر 1.33. با اینکه A سریع‌تر است، B بالاتر از A قرار می‌گیرد، چون B در همه‌چیز خوب است. به همین دلیل «سریع‌ترین» و «رتبهٔ اول» اغلب دو ابزار متفاوت‌اند.

گزینهٔ «فقط سرویس‌ها»

هر ابزار در فهرست یک provider_type دارد: service (یک ارائه‌دهندهٔ تجاری) یا self-hosted (نرم‌افزار کلاینتی که به سرور خودتان وصلش می‌کنید — کلاینت‌های Shadowsocks، V2Ray، sing-box و مانند آن‌ها).

با فعال بودن «فقط سرویس‌ها»، استخر یک شرط اضافه می‌گیرد: فقط ابزارهای service رتبه‌بندی می‌شوند. دلیلش این است که «سرعت» یک ابزار خودمیزبان در واقع اندازه‌گیری سرور و مسیری است که آزمایش‌کننده خریده، نه خود نرم‌افزار. دو نفر که هر دو sing-box اجرا می‌کنند — یکی روی یک سرور BGP در هنگ‌کنگ، دیگری روی یک VPS ارزان در غرب آمریکا — میانه‌ای تولید می‌کنند که هیچ‌کدام را توصیف نمی‌کند. در مقابل، ارائه‌دهندگان تجاری همهٔ کاربرانشان را از یک استخر مشترک از گره‌های خروجی عبور می‌دهند، بنابراین میانهٔ آن‌ها واقعاً معنایی دارد.

وقتی دنبال خرید یک سرویس هستید روشنش کنید. وقتی می‌خواهید ببینید پیکربندی‌های خودمیزبان به‌طور کلی چه وضعی دارند خاموشش کنید.

ستون رتبهٔ GreatFire

ستون آخر «رتبهٔ GreatFire» است. این ستون از صفحهٔ بالادستی کپی نمی‌شود. در هر همگام‌سازی، داده‌های تجمیعی GreatFire برای آن بازه و منطقه — میانهٔ سرعت، تأخیر، پایداری، تعداد آزمایش و بازهٔ زمانی هر ابزار — به‌صورت یک تصویر لحظه‌ای ذخیره می‌شود و سپس دقیقاً همان الگوریتم بالا روی آن تصویر لحظه‌ای اجرا می‌شود.

بنابراین تنها تفاوت رتبهٔ ما و رتبهٔ GreatFire، مجموعه‌داده است. رتبهٔ ما از همهٔ آزمایش‌های پایگاه دادهٔ ما استفاده می‌کند (واردشده‌ها به‌علاوهٔ آزمایش‌های اجراشده در همین سایت)؛ رتبهٔ GreatFire از داده‌های تجمیعی آن‌ها تا آخرین تصویر لحظه‌ای. وقتی این دو با هم نمی‌خوانند، معمولاً یکی از این سه دلیل است: آزمایش‌های اجراشده در این سایت ابزاری را کمی بالا یا پایین برده، تصویر لحظه‌ای چند ساعت قدیمی است، یا مرز بازه‌ها بین دو سایت چند ساعت اختلاف دارد. اختلاف یکی دو رتبه عادی است. فاصلهٔ بزرگ ارزش بررسی دقیق‌تر دارد.

فیلترها

بازهٔ پیش‌فرض ۶۰ روز است، مثل GreatFire. می‌توانید امروز، ۷ روز، ۳۰ روز، ۶۰ روز، ۹۰ روز یا همهٔ زمان‌ها را انتخاب کنید. پنجره‌های کوتاه‌تر ابزارهای کمتری را رتبه‌بندی می‌کنند اما «همین حالا» را بازتاب می‌دهند؛ پنجره‌های بلندتر هموارترند اما ممکن است مسیرهایی را شامل شوند که از آن زمان فیلتر شده‌اند.

فیلتر منطقه، منطقه‌ای است که آزمایش‌کننده انتخاب کرده، نه منطقه‌ای که از IP استنباط شده — وقتی از تونل رد شده‌اید IP شما به هر حال خارج از کشور است، پس استنباط بی‌معنی می‌بود. سیستم‌عامل از User-Agent مرورگر می‌آید.

«منبع» به شما اجازه می‌دهد همه‌چیز را ببینید، فقط داده‌های واردشده از GreatFire را، یا فقط آزمایش‌های اجراشده در BreakHub را. مورد آخر فعلاً نمونهٔ بسیار کوچک‌تری است، اما تنها داده‌ای است که جزئیات کامل هر آزمایش به آن پیوست است.

داده‌ها چقدر تازه است

داده‌های واردشده از GreatFire هر ساعت در دقیقهٔ ۱۵ به‌صورت افزایشی همگام‌سازی می‌شود و یک تطبیق کامل روزانه در ساعت 03:30 UTC انجام می‌شود. آزمایش‌هایی که اینجا ارسال می‌شوند بلافاصله ذخیره می‌شوند؛ رتبه‌بندی پنج دقیقه کش می‌شود، بنابراین اجرای خودتان را حداکثر ظرف پنج دقیقه در جدول می‌بینید. خط «آخرین همگام‌سازی» در پایین صفحه آخرین واردکردن موفق را نشان می‌دهد.

پرسش‌های متداول

چرا ابزار رتبهٔ ۱ سریع‌ترین ابزار نیست؟ چون رتبه سرعت، تأخیر و پایداری را ترکیب می‌کند. ابزاری که در هر سه نزدیک به صدر است، قهرمان سرعتی را که بدترین تأخیر استخر را دارد شکست می‌دهد.

همین حالا یک آزمایش اجرا کردم — چرا ابزار من هنوز «—» نشان می‌دهد؟ رتبه‌بندی دست‌کم به پنج آزمایش با فاصلهٔ ۴۸ ساعت یا بیشتر نیاز دارد. چند اجرای دیگر در روزهای مختلف انجام دهید تا ظاهر شود.

چرا رتبهٔ ما با رتبهٔ GreatFire فرق دارد؟ همان الگوریتم، مجموعه‌دادهٔ متفاوت. ما آزمایش‌های اجراشده در این سایت را هم حساب می‌کنیم و تصویر لحظه‌ای چند ساعت عقب است. جابه‌جایی یکی دو رتبه طبیعی است.

می‌شود میانه را دستکاری کرد؟ خیلی سخت‌تر از میانگین. برای بالا بردن میانه باید بیش از نیمی از همهٔ آزمایش‌ها را در بازه‌ای دست‌کم ۴۸ ساعته بالا نگه دارید. ما همچنین امکان پنهان کردن رکوردهای آشکارا جعلی را داریم.