UDP ni vedno hitrejši: izbira prevoza OpenVPN
UDP je razumna privzeta izbira za OpenVPN, ne razsodba. Primerjajte prevoza na isti poti in pri isti nalogi ter preverite, kateri poslušalec res deluje.
Vsak vodnik pravi, da UDP premaga TCP pri OpenVPN, ta nasvet pa je privzeta nastavitev, ne meritev. Prevoz spremeni, kako se paketi dostavljajo in kaj se zgodi, ko jih pot zavrže, ne pa, kako se tunel šifrira. Za ujetim portalom ali posrednikom, ki dovoli le vrata 443, je počasnejša možnost tista, ki se sploh poveže. Kar sledi, ločuje, kaj počne protokol, od tega, kar dovoljuje vaše dostopovno omrežje.
Kaj prevoz v resnici spremeni
TCP zagotavlja zanesljiv, urejen tok bajtov in znova pošlje vse izgubljeno, kot določa RFC 9293. UDP preda podatgrame omrežju, OpenVPN pa nad tem vtičem izvaja svojo plast zanesljivosti. Zapiranje TCP v TCP zloži dve zanki za obnovitev, zato en izgubljen segment lahko zadrži notranji tok, dokler ne prispe zunanje ponovno pošiljanje. Ta interakcija je pravi argument za UDP in se kaže kot zakasnitev, ne kot prepustnost.
Učinek raste z izgubami in povratnim časom. Na čisti lokalni poti se oba prevoza zdita enaka, zato laboratorijski test redko ponovi pritožbo. Na zasedeni mobilni povezavi se razlika pokaže v interaktivnih sejah veliko prej, preden velik prenos kaj opazi.
Nič od tega se ne dotika zaupnosti ali celovitosti. Ročna povezava TLS in šifra podatkovnega kanala sta enaki za oba prevoza, zato preklop ne more rešiti šibkega nabora šifer.
Kje si TCP prisluži svoje mesto
Dostopovna omrežja so običajen razlog za izbiro TCP. Hotel, letališče ali gostinsko omrežje lahko dovoli odhodni 443 in zavrže vse drugo, TCP poslušalec na teh vratih pa je edini profil, ki deluje. To je dosegljivost, ne zmogljivost, in je samo po sebi dovolj dober razlog.
TCP pomaga tudi, ko je pot stabilna, a so vmesne naprave sovražne. Nekatera omrežja ponastavijo dolgotrajne tokove UDP, medtem ko prenašajo seje TCP, ki spominjajo na običajen spletni promet. Ali ta podobnost uspe, je lastnost konkretnega omrežja in noben vodnik je ne more obljubiti za vse. Preizkusite znotraj omrežja, ki odpove, preden krivite protokol.
Zavrnjena prijava ni težava prevoza. Izklop preverjanja potrdila, da bi povezavo pretisnili, je druga sprememba s precej slabšim izidom.
Pripravljen profil TCP je praktičen kompromis. Večina odjemalcev shrani oba in vam omogoči preklop, ko omrežje zavrne pot UDP, kar ne stane nič, dokler tega ne potrebujete. Česar ne bi smeli storiti, je pošiljanje dveh profilov, ki kažeta na različne končne točke, ker takrat vaša primerjava meri strežnike.
Preverite, kateri poslušalec v resnici je
Preden primerjate zmogljivost, potrdite, da se oba konca strinjata o prevozu in vratih. Spreminjanje proto udp v proto tcp v odjemalčevi datoteki ne ustvari strežniškega poslušalca. Strežnik mora biti konfiguriran za ta protokol, profil pa se mora ujemati z njim.
grep -E '^(proto|port|remote)' /etc/openvpn/server.conf
ss -lunp | grep openvpn
ss -ltnp | grep openvpn
grep izpiše, kaj so strežniku naročili uporabljati, medtem ko seznama vtičev kažeta, na kaj je vezan. Poslušalec UDP se pojavi le na prvem seznamu, poslušalec TCP pa le na drugem, zato je manjkajoča vrstica najhitrejša pot do profila, ki ni bil nikoli uporabljen. Primerjajte tudi vrata, saj se profil TCP na 1194 v večini dostopovnih omrežij obnaša drugače kot tisti na 443. Po spremembi znova zaženite storitev in preberite vrstico dnevnika, ki poroča o vezavi.
Potrditev na odjemalčevi strani je poceni: zaženite povezavo z --verb 4 in preberite vrstico o prevozu v dnevniku. Če odjemalec pravi UDP, medtem ko strežnik posluša na TCP, se rokovanje nikoli ne začne in nobena nastavitev ne pomaga.
Primerjajte delovno obremenitev, ne oznake prevoza
Poštena primerjava ohranja vse razen prevoza nespremenjeno. Ista naprava, isto dostopovno omrežje, isti ciljni gostitelj, ista aplikacija in idealno isti strežnik. Če profila kažeta na različna gostitelja, merite tudi ta gostitelja.
Za vsak zagon zabeležite tri izide: ali se tunel vzpostavi, ali ostane in ali se naloga dokonča. Majhne zahteve, ki delujejo, medtem ko se veliki prenosi zataknejo, kažejo na velikost paketov in MTU, ne na prevoz. Ponavljajoče se ponovne povezave kažejo na pot ali na časovno omejitev vmesne naprave.
Obdržite profil, ki deluje v razmerah, s katerimi se res srečujete, drugega pa shranite. Izbira pripada omrežju, ne osebi, zato je vsak posamezni privzeti odgovor nekje napačen.