TCP درون SSTP: چرا بازفرستانی دو بار رخ میدهد
SSTP تونل را در یک جریان TCP روی TLS حمل میکند. وقتی مسیر بستهها را از دست میدهد، بازیابی بیرونی و درونی همزمان عقب میکشند.
دهانبهدهان قبل از پروتکل میرسد. از اطرافیان بپرسید و SSTP همان کند است، گزینهای که از آن پرهیز میکنید مگر اینکه چیزی مجبورتان کند. آن شهرت یک حالت خرابی روی یک نوع مسیر را توصیف میکند.
سازوکار واقعی است. این سازوکار مشروط هم هست، چیزی که شهرت هرگز به آن اشاره نمیکند.
دو جریان مطمئن روی یک مسیر
SSTP تونلش را درون یک نشست HTTPS میپیچد. HTTPS روی TCP کار میکند و آن جریان بیرونی تحویل مرتب را تضمین میکند. بنابراین یک قطعه گمشده همه چیزهایی را که پشت آن صف کشیدهاند نگه میدارد. بایتهای بعدی که به گفتگوهای درونی دیگر تعلق دارند هم به هر حال منتظر میمانند.
جریانهای درونی TCP ترتیب و کنترل ازدحام خودشان را حفظ میکنند. آنها نمیتوانند بازیابی بیرونی را ببینند، پس تنها چیزی که مشاهده میکنند یک توقف است. توقف همان علامتی است که به آنها میگوید مسیر ازدحام دارد.
اکنون هر دو لایه همزمان عقب میکشند. تمام تعامل همین است، و یک قطعه گمشده برای شروع آن کافی است.
اثر کجا ظاهر میشود و کجا نمیشود
روی مسیر پاک، جریان بیرونی بهندرت چیزی را بازیابی میکند. تعامل هرگز فعال نمیشود و SSTP ترافیک تعاملی را کاملاً خوب حمل میکند. ادعای کلی دقیقاً در همین نقطه شکست میخورد.
اثر زمانی ظاهر میشود که افت یا بازآرایی به مسیر زیرین برسد. یک پیوند Wi-Fi پرازدحام یا اتصال همراه با تأخیر متغیر شرایط را میسازد. صف بیرونی مسدودشده سپس به تأخیر دیدنی درون تونل تبدیل میشود.
با حجم کار هم مقیاس میگیرد. جریانهای موازی زیاد صف را پر میکنند و انسداد سر صف را بدتر میکنند. یک نشست تعاملی روی همان مسیر ممکن است قابل قبول به نظر برسد.
نشانه معمولاً چه چیزی نیست
هر نشست کندی این مشکل نیست. نرخ پایین و ثابت از اولین بسته به ظرفیت، شکلدهی یا محدودیت سرور اشاره میکند. مکثهایی که با ازدحام محلی همزمان میشوند به صفبندی روی پیوند دسترسی اشاره میکنند.
راهحلها متفاوتاند، به همین دلیل تشخیص اول میآید. تنظیم بافر برای پیوند شکلدادهشده کاری نمیکند. تغییر پروتکل برای سروری که ظرفیتش تمام شده کاری نمیکند. بازنشانیهای مکرر به جای کاملاً دیگری اشاره میکنند.
# outer path quality to the SSTP endpoint
ping -c 50 203.0.113.44 | tail -3
mtr -rwc 50 203.0.113.44
# is the local link saturated while the session stalls?
sar -n DEV 2 5
# retransmissions on the outer connection
ss -tin dst 203.0.113.44
اندازهگیری را وقتی مشکل در حال رخ دادن است انجام دهید. ضبطی که در یک دقیقه سالم گرفته شده هیچ چیزی درباره حلقهای که در دقیقه بد کار میکند ثابت نمیکند.
مقایسهای که ارزش اعتماد دارد
اگر واقعاً انتقال دیگری موجود است، آن را در شرایط کنترلشده مقایسه کنید. همان میزبان، همان شبکه، همان مقصد و همان کار. هر دو اجرا باید در همان ده دقیقه باشند تا شرایط مسیر یکسان بماند.
تغییر پورت پروتکل را تغییر نمیدهد. وارد کردن یک پروفایل نامرتبط به کارخواه SSTP انتقال جایگزین ایجاد نمیکند. مقایسه فقط زمانی معنا دارد که سرور گزینه دوم را ارائه کند.
تأیید TLS را در تمام مدت فعال نگه دارید. کار روی کارایی دلیلی برای پذیرش گواهی تأییدنشده نیست. اگر توقفها عمدتاً وقتی رخ میدهند که پیوند بالادست اشباع است، قبل از سرزنش لایهها به صفبندی نگاه کنید.