ویپیان میتواند بگوید وصل شد و هیچ چیزی رد نکند
دکمه بهمحض بالا آمدن هسته سبز میشود، و این با رسیدن ترافیک به اینترنت یکی نیست. چرا این دو با هم اشتباه گرفته میشوند و اپ بهجایش باید چه چیزی را بررسی کند.
یک اپ ویپیان دو سؤال دارد که باید جواب بدهد، و بیشترشان فقط به اولی جواب میدهند.
سؤال اول این است که آیا تونل شروع شد. هسته کانفیگ را خواند، سوکتش را باز کرد و خطا نداد. این یک واقعیت محلی است، در چند میلیثانیه معلوم میشود، و همان چیزی است که دکمه تقریباً هر کلاینتی در واقع گزارش میکند.
سؤال دوم این است که آیا ترافیک میرسد. این یک واقعیت درباره ماشینی در کشور دیگر است، درباره مسیر رسیدن به آن، و اینکه آیا آن ماشین هنوز اعتبارنامه تو را میشناسد یا نه. این یکی نه محلی معلوم میشود نه آنی.
چرا این شکاف دیده نمیشود
گیتویای که حساب تو را فراموش کرده دقیقاً به همان تمیزی گیتوی سالم بالا میآید. گیتویای هم که دستدهیاش در مسیر قطع میشود همینطور. در هر دو حالت هسته کلاینت کانفیگ را قبول میکند، رابطش را باز میکند و موفقیت گزارش میدهد، چون از جایی که ایستاده هر کاری که از او خواسته شده موفق بوده.
نتیجه صفحهای است که میگوید CONNECTED و هر دو شمارنده روی صفر است و هیچ خطایی هم هیچجا نیست. این بدترین حالت خرابی است، چون شبیه کندی به نظر میرسد و آدم یک شب را صرف مقصر دانستن اینترنت خودش میکند.
بهجایش چه باید بررسی شود
سه نشانه، به ترتیب اینکه هر کدام چقدر چیزی را ثابت میکنند:
۱. پورت جواب میدهد. یک دستدهی TCP به گیتوی. فقط ثابت میکند اولین پرش روی این شبکه در دسترس است و هیچ چیز دیگری. ۲. تونل پذیرفته میشود. دستدهی کامل میشود و اعتبارنامه شناخته میشود. هنوز درباره آن سر ماجرا چیزی نمیگوید. ۳. یک درخواست واقعی برمیگردد. چیزی از داخل تونل گرفته میشود و برمیگردد. تنها همین یکی یعنی مسیر از این سر تا آن سر کار میکند.
فقط سومی ارزش دارد که به آن بگویی «وصل». همان یکی هم تنها موردی است که یک رفت و برگشت هزینه دارد، و دقیقاً برای همین کلاینتها از آن رد میشوند.
خودت چطور نشانه را بخوانی
اگر کلاینتی ادعا میکند وصل است و چیزی بالا نمیآید، شمارندههای بایت در یک ثانیه تکلیف را روشن میکنند. صفر بالا و صفر پایین بعد از تلاش برای باز کردن یک صفحه یعنی تونلی در کار نیست، دکمه هر چه بگوید. غیرصفر ولی کند، مشکل دیگری است با دلایل دیگر: مسیر، کنترل ازدحام روی سرور، یا خود خطی که روی آن هستی.
این دو یک خرابی نیستند و راهحلشان هم یکی نیست، پس قبل از عوض کردن هر چیزی میارزد بدانی کدامش را داری.