Kiekvienas vadovas sako, kad UDP yra geresnis už TCP OpenVPN, ir šis patarimas yra numatytasis nustatymas, o ne matavimas. Transportas keičia, kaip pristatomi paketai ir kas nutinka, kai kelias juos numeta, o ne kaip tunelis šifruojamas. Už captive portalo ar tik 443 prievadą leidžiančio proxy lėtesnis variantas yra tas, kuris apskritai prisijungia. Toliau atskiriama, ką daro protokolas, nuo to, ką leidžia jūsų prieigos tinklas.

Ką transportas iš tikrųjų keičia

TCP teikia patikimą, tvarkingą baitų srautą ir pakartoja viską, kas pametama, kaip nustato RFC 9293. UDP perduoda duomenų gramas tinklui, o OpenVPN virš šios jungties vykdo savo patikimumo sluoksnį. Įdedant TCP į TCP vidų sukraunami du atkūrimo ciklai, todėl vienas pamestas segmentas gali sulaikyti vidinį srautą, kol atkeliaus išorinis pakartojimas. Būtent ši sąveika yra tikrasis argumentas už UDP, ir ji pasireiškia kaip delsa, o ne kaip pralaidumas.

Poveikis didėja su nuostoliais ir kelionės pirmyn-atgal laiku. Švariame vietiniame kelyje abu transportai atrodo vienodai, todėl laboratorinis bandymas retai atkuria skundą. Perkrautame mobiliojo ryšio kanale skirtumas matomas interaktyviose sesijose gerokai anksčiau, nei didelis perdavimas ką nors pastebi.

Niekas iš to neliečia konfidencialumo ar vientisumo. TLS rankos paspaudimas ir duomenų kanalo šifras yra vienodi abiem transportams, todėl perjungimas negali išgelbėti silpno šifrų rinkinio.

Kur TCP nusipelno savo vietos

Prieigos tinklai yra įprasta priežastis rinktis TCP. Viešbutis, oro uostas ar svečių tinklas gali leisti išeinantį 443 ir išmesti visa kita, o TCP klausytojas tame prievade yra vienintelis veikiantis profilis. Tai pasiekiamumas, o ne našumas, ir savaimi pakankamai gera priežastis.

TCP padeda ir tada, kai kelias stabilus, bet tarpiniai įrenginiai priešiški. Kai kurie tinklai atstato ilgalaikius UDP srautus, toleruodami TCP sesijas, primenančias įprastą žiniatinklio srautą. Ar tas panašumas pavyksta, yra konkretaus tinklo savybė, ir joks vadovas negali to pažadėti visiems. Išbandykite tame tinkle, kuris nepavyksta, prieš kaltindami protokolą.

Atmestas prisijungimas nėra transporto problema. Sertifikato tikrinimo išjungimas siekiant prastumti ryšį yra kitas pakeitimas, kurio rezultatas daug blogesnis.

Paruošto TCP profilio laikymas yra praktinis kompromisas. Dauguma klientų laiko abu ir leidžia perjungti, kai tinklas atsisako UDP kelio, o tai nieko nekainuoja, kol neprireikia. Ko neturėtumėte daryti, tai siųsti du profilius, nukreiptus į skirtingus galinius taškus, nes tada jūsų palyginimas matuoja serverius.

Patikrinkite, kurį klausytoją iš tikrųjų turite

Prieš lygindami našumą patvirtinkite, kad abi pusės sutaria dėl transporto ir prievado. proto udp pakeitimas į proto tcp kliento faile nesukuria serverio klausytojo. Serveris turi būti sukonfigūruotas tam protokolui, o profilis turi jį atitikti.

grep -E '^(proto|port|remote)' /etc/openvpn/server.conf
ss -lunp | grep openvpn
ss -ltnp | grep openvpn

grep išspausdina, kas serveriui buvo liepta naudoti, o du jungčių sąrašai rodo, prie ko jis prijungtas. UDP klausytojas rodomas tik pirmame sąraše, o TCP klausytojas tik antrame, todėl trūkstama eilutė yra greičiausias būdas rasti profilį, kuris niekada nebuvo pritaikytas. Palyginkite ir prievadą, nes TCP profilis 1194 prievade daugumoje prieigos tinklų elgiasi kitaip nei 443. Po pakeitimo paleiskite paslaugą iš naujo ir perskaitykite žurnalo eilutę, kuri praneša apie susiejimą.

Patvirtinimas kliento pusėje pigus: paleiskite ryšį su --verb 4 ir perskaitykite transporto eilutę žurnale. Jei klientas sako UDP, o serveris klausosi TCP, rankos paspaudimas niekada neprasideda ir joks derinimas nepadės.

Palyginkite darbo krūvį, o ne transporto etiketę

Sąžiningas palyginimas viską išlaiko pastovų, išskyrus transportą. Tas pats įrenginys, tas pats prieigos tinklas, tas pats paskirties mazgas, ta pati programa ir idealiu atveju tas pats serveris. Jei du profiliai nukreipti į skirtingus mazgus, matuojate ir tuos mazgus.

Kiekvienam paleidimui užrašykite tris rezultatus: ar tunelis susikuria, ar išlieka ir ar užduotis baigiama. Mažos užklausos, kurios veikia, kol dideli perdavimai stringa, rodo paketo dydį ir MTU, o ne transportą. Pasikartojantys prisijungimai rodo kelią arba tarpinio įrenginio laiko limitą.

Išsaugokite profilį, kuris veikia tomis sąlygomis, su kuriomis iš tikrųjų susiduriate, o kitą pasilikite. Pasirinkimas priklauso tinklui, o ne žmogui, todėl bet koks vienintelis numatytasis atsakymas kažkur yra neteisingas.

Susiję straipsniai