UDP nie je vždy rýchlejší: výber transportu OpenVPN
UDP je rozumná predvolená voľba pre OpenVPN, nie verdikt. Porovnávajte transporty na tej istej ceste a úlohe a overte, ktorý listener naozaj beží.
Každý návod hovorí, že UDP je pre OpenVPN lepší ako TCP, a táto rada je predvolené nastavenie, nie meranie. Transport mení, ako sa pakety doručujú a čo sa stane, keď ich cesta zahodí, nie ako sa tunel šifruje. Za captive portálom alebo proxy, ktoré povoľuje iba port 443, je pomalšia možnosť tá, ktorá sa vôbec pripojí. Nasledujúce oddeľuje, čo robí protokol, od toho, čo dovoľuje vaša prístupová sieť.
Čo transport skutočne mení
TCP doručuje spoľahlivý, usporiadaný bajtový tok a znovu odosiela všetko, čo sa stratí, ako určuje RFC 9293. UDP odovzdáva datagramy sieti a OpenVPN nad týmto socketom prevádzkuje vlastnú vrstvu spoľahlivosti. Zapuzdrenie TCP do TCP skladá dve slučky obnovy, takže jeden stratený segment môže zdržať vnútorný tok, kým nepríde vonkajšie opakované odoslanie. Práve táto interakcia je skutočný argument za UDP a prejavuje sa ako latencia, nie ako priepustnosť.
Účinok rastie so stratami a dobou obehu. Na čistej miestnej ceste oba transporty pôsobia rovnako, a preto laboratórny test málokedy zopakuje sťažnosť. Na preťaženom mobilnom spoji je rozdiel vidieť v interaktívnych reláciách dávno predtým, než si veľký prenos niečoho všimne.
Nič z toho sa netýka dôvernosti ani integrity. TLS handshake a šifra dátového kanála sú pre oba transporty rovnaké, takže prepnutie nezachráni slabú šifrovú sadu.
Kde si TCP zaslúži svoje miesto
Prístupové siete sú obvyklým dôvodom, prečo zvoliť TCP. Hotel, letisko alebo hostovská sieť môžu povoliť odchádzajúci 443 a zahodiť všetko ostatné, a TCP listener na tomto porte je jediný profil, ktorý funguje. To je dosiahnuteľnosť, nie výkon, a samo o sebe je to dosť dobrý dôvod.
TCP pomáha aj vtedy, keď je cesta stabilná, ale medziľahlé zariadenia sú nepriateľské. Niektoré siete resetujú dlhé UDP toky, zatiaľ čo tolerujú TCP relácie, ktoré pripomínajú bežnú webovú prevádzku. Či táto podobnosť uspeje, je vlastnosť konkrétnej siete a žiadny návod to nemôže sľúbiť za všetky. Testujte vnútri siete, ktorá zlyháva, skôr než obviníte protokol.
Odmietnuté prihlásenie nie je problém transportu. Vypnutie overovania certifikátu, aby sa spojenie pretlačilo, je iná zmena s oveľa horším výsledkom.
Mať pripravený TCP profil je praktický kompromis. Väčšina klientov ukladá oba a umožňuje prepnúť, keď sieť odmietne UDP cestu, čo nič nestojí, kým to nepotrebujete. Čo by ste robiť nemali, je dodávať dva profily ukazujúce na rôzne koncové body, pretože potom vaše porovnanie meria servery.
Overte, ktorý listener skutočne máte
Pred porovnávaním výkonu potvrďte, že obe strany súhlasia s transportom a portom. Zmena proto udp na proto tcp v klientskom súbore nevytvorí serverový listener. Server musí byť nakonfigurovaný pre tento protokol a profil mu musí zodpovedať.
grep -E '^(proto|port|remote)' /etc/openvpn/server.conf
ss -lunp | grep openvpn
ss -ltnp | grep openvpn
grep vypíše, čo bolo serveru povedané používať, zatiaľ čo dva výpisy socketov ukazujú, k čomu je pripojený. UDP listener sa objaví iba v prvom výpise a TCP listener iba v druhom, takže chýbajúci riadok je najrýchlejšia cesta k profilu, ktorý sa nikdy neuplatnil. Porovnajte aj port, pretože TCP profil na 1194 sa vo väčšine prístupových sietí správa inak ako ten na 443. Po zmene službu reštartujte a prečítajte riadok v logu, ktorý hlási naviazanie.
Overenie na strane klienta je lacné: spustite spojenie s --verb 4 a prečítajte riadok o transporte v logu. Ak klient hlási UDP, zatiaľ čo server počúva na TCP, handshake nikdy nezačne a žiadne ladenie nepomôže.
Porovnávajte záťaž, nie označenie transportu
Poctivé porovnanie drží všetko okrem transportu konštantné. To isté zariadenie, tá istá prístupová sieť, ten istý cieľový hostiteľ, tá istá aplikácia a ideálne ten istý server. Ak dva profily ukazujú na rôznych hostiteľov, meriate aj tých hostiteľov.
Pri každom behu zaznamenajte tri výsledky: či sa tunel nadviaže, či zostane stáť a či sa úloha dokončí. Malé požiadavky, ktoré fungujú, zatiaľ čo veľké prenosy sa zaseknú, ukazujú na veľkosť paketov a MTU, nie na transport. Opakované opätovné pripojenia ukazujú na cestu alebo na časový limit medziľahlého zariadenia.
Ponechajte si profil, ktorý funguje v podmienkach, ktoré skutočne stretávate, a druhý si uložte. Voľba patrí sieti, nie človeku, a preto je každá jediná predvolená odpoveď niekde nesprávna.