UDP nije uvek brži: kako izabrati OpenVPN transport
UDP je razuman podrazumevani izbor za OpenVPN, a ne presuda. Uporedite transporte na istom putu i zadatku i proverite koji listener zaista radi.
Svaki vodič kaže da UDP pobeđuje TCP za OpenVPN, a taj savet je podrazumevana postavka, ne merenje. Transport menja kako se paketi dostavljaju i šta se dešava kada ih put izgubi, a ne kako se tunel šifrira. Iza captive portala ili proxyja koji dozvoljava samo port 443, sporija opcija je ona koja se uopšte povezuje. Ono što sledi razdvaja šta protokol radi od onoga što vaša pristupna mreža dozvoljava.
Šta transport zapravo menja
TCP isporučuje pouzdan, uređen tok bajtova i ponovo šalje sve što se izgubi, kako propisuje RFC 9293. UDP predaje datagrame mreži, a OpenVPN vodi sopstveni sloj pouzdanosti preko tog socketa. Enkapsuliranje TCP-a u TCP slaže dve petlje oporavka, pa jedan izgubljeni segment može zadržati unutrašnji tok dok ne stigne spoljno ponovno slanje. Ta interakcija je pravi argument za UDP i pojavljuje se kao latencija, a ne kao propusnost.
Učinak raste sa gubicima i vremenom kružnog puta. Na čistom lokalnom putu oba transporta deluju identično, zato laboratorijski benchmark retko reprodukuje žalbu. Na zagušenoj mobilnoj vezi razlika se vidi u interaktivnim sesijama mnogo pre nego što veliki prenos išta primeti.
Ništa od ovoga ne dira poverljivost ni integritet. TLS rukovanje i šifra podatkovnog kanala isti su za oba transporta, pa prebacivanje ne može spasiti slab skup šifri.
Gde TCP zaslužuje svoje mesto
Pristupne mreže su uobičajen razlog za izbor TCP-a. Hotel, aerodrom ili gostinska mreža mogu dozvoliti odlazni 443 i odbaciti sve ostalo, a TCP listener na tom portu jedini je profil koji radi. To je dostupnost, a ne performansa, i dovoljno je dobar razlog sam po sebi.
TCP pomaže i kada je put stabilan, ali su posredni uređaji neprijateljski. Neke mreže resetuju dugotrajne UDP tokove dok tolerišu TCP sesije koje liče na običan web saobraćaj. Da li ta sličnost uspeva, svojstvo je konkretne mreže i nijedan vodič to ne može obećati za sve. Testirajte unutar mreže koja pada pre nego što optužite protokol.
Odbijena prijava nije problem transporta. Isključivanje provere sertifikata da se veza progura druga je promena sa mnogo gorim ishodom.
Držati TCP profil spremnim praktičan je kompromis. Većina klijenata čuva oba i dozvoljava prebacivanje kada mreža odbije UDP put, što ništa ne košta dok ne zatreba. Ono što ne treba raditi jeste isporučiti dva profila usmerena na različite krajnje tačke, jer tada vaše poređenje meri servere.
Proverite koji listener zaista imate
Pre poređenja performansi potvrdite da se obe strane slažu o transportu i portu. Promena proto udp u proto tcp u klijentskoj datoteci ne stvara serverski listener. Server mora biti konfigurisan za taj protokol, a profil se mora s njim podudarati.
grep -E '^(proto|port|remote)' /etc/openvpn/server.conf
ss -lunp | grep openvpn
ss -ltnp | grep openvpn
grep ispisuje šta je serveru rečeno da koristi, dok dva popisa socketa pokazuju na šta je vezan. UDP listener pojavljuje se samo na prvom popisu, a TCP listener samo na drugom, pa je red koji nedostaje najbrži način da nađete profil koji nikada nije primenjen. Uporedite i port, jer TCP profil na 1194 ponaša se drugačije od onog na 443 u većini pristupnih mreža. Ponovo pokrenite servis nakon promene i pročitajte red u logu koji izveštava o povezivanju.
Potvrda na strani klijenta je jeftina: pokrenite vezu sa --verb 4 i pročitajte red o transportu u logu. Ako klijent kaže UDP dok server sluša na TCP, rukovanje nikada ne počinje i nikakvo podešavanje ne pomaže.
Uporedite radno opterećenje, ne oznaku transporta
Pošteno poređenje drži sve osim transporta konstantnim. Isti uređaj, ista pristupna mreža, isti odredišni host, ista aplikacija i idealno isti server. Ako dva profila pokazuju na različite hostove, merite i te hostove.
Zabeležite tri ishoda za svako pokretanje: da li se tunel uspostavlja, da li ostaje uspostavljen i da li se zadatak dovršava. Mali zahtevi koji rade dok se veliki prenosi zaglave upućuju na veličinu paketa i MTU, a ne na transport. Ponovna povezivanja upućuju na put ili na istek vremena posrednog uređaja.
Zadržite profil koji radi u uslovima u kojima se zaista nađete, a drugi sačuvajte. Izbor pripada mreži, a ne osobi, i zato je svaki pojedinačni podrazumevani odgovor negde pogrešan.