SSTP içinde TCP: yeniden iletim neden iki kez olur
SSTP, tüneli TLS üzerinden bir TCP akışında taşır. Yol paket düşürdüğünde, dış ve iç kurtarma aynı anda geri çekilir.
Kulaktan kulağa aktarım protokolden önce gelir. Çevrenize sorun, SSTP yavaş olandır, bir şey zorlamadıkça kaçındığınız seçenektir. Bu itibar, tek bir yol türünde tek bir arıza modunu anlatır.
Mekanizma gerçektir. Aynı zamanda koşulludur ve itibar bundan hiç söz etmez.
Tek yolda iki güvenilir akış
SSTP tünelini bir HTTPS oturumunun içine sarar. HTTPS, TCP üzerinde çalışır ve o dış akış sıralı teslimatı garanti eder. Bu yüzden tek bir eksik segment arkasında sıraya giren her şeyi alıkoyar. Başka iç konuşmalara ait sonraki baytlar yine de bekler.
İç TCP akışları kendi sıralamalarını ve tıkanıklık denetimlerini korur. Dış kurtarmayı göremezler, bu yüzden gözlemledikleri tek şey bir duraklamadır. Duraklama, yolda tıkanıklık olduğunu onlara söyleyen sinyaldir.
Şimdi iki katman da aynı anda geri çekilir. Bütün etkileşim bundan ibarettir ve onu başlatmak için tek bir kayıp segment yeterlidir.
Etkinin göründüğü ve görünmediği yerler
Temiz bir yolda dış akış nadiren bir şey kurtarır. Etkileşim hiç tetiklenmez ve SSTP etkileşimli trafiği gayet iyi taşır. Genel iddia tam da bu noktada çöker.
Etki, kayıp veya yeniden sıralama altındaki yola ulaştığında ortaya çıkar. Tıkanmış bir Wi-Fi bağlantısı veya değişken gecikmeli bir mobil bağlantı koşulları yaratır. Ardından bloke edilmiş dış kuyruk tünelin içinde görünür gecikmeye dönüşür.
İş yüküyle birlikte de büyür. Çok sayıda paralel akış kuyruğu doldurur ve kuyruk başındaki bloklamayı kötüleştirir. Aynı yol üzerindeki tek bir etkileşimli oturum kabul edilebilir gelebilir.
Semptomun genellikle olmadığı şey
Her yavaş oturum bu sorun değildir. İlk paketten itibaren istikrarlı düşük hız kapasiteye, şekillendirmeye veya bir sunucu sınırına işaret eder. Yerel tıkanıklıkla örtüşen duraklamalar erişim bağlantısındaki kuyruklara işaret eder.
Çareler farklıdır, bu yüzden önce tanı gelir. Tampon ayarı şekillendirilmiş bir bağlantı için hiçbir şey yapmaz. Protokol değiştirmek kapasitesi tükenmiş bir sunucu için hiçbir şey yapmaz. Tekrarlanan sıfırlamalar bambaşka bir yeri gösterir.
# 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
Ölçümü sorun yaşanırken yapın. Sağlıklı bir dakikada alınan kayıt, kötü dakikada çalışan döngü hakkında hiçbir şey kanıtlamaz.
Güvenilmeye değer bir karşılaştırma
Gerçekten başka bir taşıma varsa, onu kontrollü koşullarda karşılaştırın. Aynı ana bilgisayar, aynı ağ, aynı hedef ve aynı görev. Her iki çalıştırma da aynı on dakika içinde olmalı ki yol koşulları uyuşsun.
Bağlantı noktasını değiştirmek protokolü değiştirmez. İlgisiz bir profili SSTP istemcisine aktarmak alternatif bir taşıma yaratmaz. Karşılaştırma ancak sunucu ikinci seçeneği sunduğunda anlam taşır.
TLS doğrulamasını her zaman açık tutun. Performans çalışması doğrulanmamış bir sertifikayı kabul etmek için gerekçe değildir. Duraklamalar ağırlıklı olarak yukarı akış doygunken ortaya çıkıyorsa, katmanları suçlamadan önce kuyruklamaya bakın.