SYX VPN

چرا کم‌ترین پینگ اغلب کندترین سرور است

پینگ فقط اولین پرش را می‌سنجد. چیزی درباره اینکه گیت‌وی هنوز به اینترنت می‌رسد یا چقدر می‌تواند رد کند نمی‌گوید. به‌جایش چه چیزی را باید سنجید.

هر فهرست سروری بر اساس پینگ مرتب می‌شود، و پینگ ضعیف‌ترین نشانه روی آن صفحه است.

پینگ یک رفت و برگشت تا در ورودی گیت‌وی است. می‌گوید ماشین بالاست و چقدر دور است. نمی‌گوید که آن ماشین هنوز به اینترنت پشت سرش می‌رسد یا نه، که مسیر بالادستش اشباع است یا نه، و اینکه مسیری که ترافیک تو را حمل می‌کند شکل‌دهی می‌شود یا نه.

سه عدد متفاوت

یک گیت‌وی می‌تواند در بیست میلی‌ثانیه جواب بدهد و دو مگابیت رد کند. یکی دیگر در چهارصد میلی‌ثانیه جواب بدهد و دویست مگابیت. فهرستی که بر اساس پینگ مرتب شده، اشتباهی را اول می‌گذارد.

آن که واقعاً می‌زند، اتلاف است

روی یک مسیر طولانی بین‌المللی، مقدار کمی اتلاف هزینه بسیار زیادی از سرعت می‌گیرد. الگوریتم پیش‌فرض بیشتر سرورها، یعنی CUBIC، هر بسته گم‌شده را نشانه شلوغی شبکه می‌گیرد و عقب می‌کشد. روی مسیری که به دلایلی غیر از شلوغی بسته می‌اندازد، مثل شکل‌دهی یا یک نقطه تبادل اشباع یا آخرین کیلومتر پر اتلاف، تمام عمرش را صرف عقب کشیدن از مشکلی می‌کند که عقب کشیدن حلش نمی‌کند.

جواب معمول BBR است. به‌جای حدس زدن از روی اتلاف، پهنای باند و رفت و برگشت واقعی مسیر را مدل می‌کند، و روی یک خط طولانی پر اتلاف تفاوتش معمولاً چند برابر شدن گذردهی است. روی سرور یک تنظیم است:

net.core.default_qdisc=fq
net.ipv4.tcp_congestion_control=bbr

ارزشش را دارد که قبل از مقصر دانستن گیت‌وی انجام شود.

کلاینت باید چه چیزی را بسنجد

اندازه‌گیری صادقانه یک درخواست واقعی از داخل تونل است، با زمان‌سنجی. یک رفت و برگشت هزینه دارد و تنها چیزی است که هر سه عدد را با هم نشان می‌دهد: گیت‌وی‌ای که بالادستش مرده در آن یکسره رد می‌شود، و گیت‌وی‌ای که مسیرش شکل‌دهی شده به‌وضوح کندتر از چیزی است که پینگش نشان می‌داد.

رتبه‌بندی بر همین اساس، و نگه داشتن آنچه یاد گرفته شده بین اجراها، فهرستی به تو می‌دهد که بالاترین گزینه‌اش معمولاً همان درست است. رتبه‌بندی بر اساس پینگ فهرستی می‌دهد که مرتب است، و آن یک چیز دیگر است.