TCP inne i SSTP: kvifor gensending skjer to gonger
SSTP ber tunnelen i ein TCP-straum over TLS. Når vegen mistar pakkar, trekkjer ytre og indre gjenoppretting seg tilbake samstundes.
Munn-til-munn kjem før protokollen. Spør deg rundt, og SSTP er den treige, alternativet du unngår med mindre noko tvingar deg. Det ryktet skildrar éin feilmodus på éin type veg.
Mekanismen er reell. Han er også vilkårleg, noko ryktet aldri nemner.
To pålitelege straumar på éin veg
SSTP pakkar tunnelen sin inn i ein HTTPS-økt. HTTPS går over TCP, og den ytre straumen garanterer levering i rekkefølgje. Eitt manglande segment held derfor tilbake alt som står i kø bak det. Seinare byte som høyrer til andre indre samtalar ventar uansett.
Indre TCP-straumar held på si eiga rekkefølgje og overbelastningskontroll. Dei kan ikkje sjå den ytre gjenopprettinga, så det einaste dei observerer, er ein stans. Ein stans er signalet som fortel dei at vegen er overbelasta.
No trekkjer begge laga seg tilbake samstundes. Det er heile samspelet, og eitt tapt segment er nok til å starte det.
Kvar effekten viser seg, og kvar han ikkje gjer det
På ein rein veg gjenopprettar den ytre straumen sjeldan noko. Samspelet blir aldri utløyst, og SSTP ber interaktiv trafikk heilt fint. Den generelle påstanden sviktar nettopp på dette punktet.
Effekten viser seg når tap eller omorganisering når den underliggande vegen. Ei overbelasta Wi-Fi-lenke eller ei mobilforbinding med variabel latens skapar tilhøva. Ei blokkert ytre kø blir då til synleg forseinking inne i tunnelen.
Han skalerer også med arbeidslasta. Mange parallelle straumar fyller køa og gjer blokkering i køas front verre. Éi interaktiv økt over same veg kan kjennast akseptabel.
Kva symptomet vanlegvis ikkje er
Ikkje kvar treig økt er dette problemet. Ein jamn låg hastigheit frå første pakke peikar på kapasitet, forming eller ei servergrense. Pausar som fell saman med lokal overbelastning, peikar på køar på tilgangslenka.
Råda er ulike, og difor kjem diagnosen først. Bufferjustering gjer ingenting for ei forma lenke. Bytte av protokollar gjer ingenting for ein server som har brukt opp kapasiteten. Gjentekne tilbakestillingar peikar ein heilt annan stad.
# 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
Utfør målinga medan problemet skjer. Eit opptak teke i eit friskt minutt beviser ingenting om løkka som køyrer i det dårlege.
Ein samanlikning det er verdt å stole på
Viss ein annan transport faktisk er tilgjengeleg, samanlikn han under kontrollerte tilhøve. Same vert, same nettverk, same destinasjon og same oppgåve. Begge køyringane må liggje innanfor dei same ti minutta, slik at vegtilhøva stemmer.
Å endre ein port endrar ikkje ein protokoll. Å importere ein uvedkomande profil i ein SSTP-klient skapar ikkje ein alternativ transport. Samanlikninga betyr berre noko når serveren tilbyr det andre alternativet.
Hald TLS-verifiseringa på heile tida. Ytingsarbeid er ikkje ein grunn til å godta eit uverifisert sertifikat. Viss stansane hovudsakleg oppstår medan oppstraumslenka er metta, sjå på køinga før du klandrar laga.