Layer 0
What a VPN is made of
A VPN connection is not one monolithic mechanism — it's a stack of layers. Each layer can be swapped independently, and different protocols pick different combos.
The VPN stack
Разные протоколы выбирают разные комбинации:
| Protocol | Transport | Crypto | CC | Camouflage |
|---|---|---|---|---|
| WireGuard | UDP | Noise + ChaCha20 | simple | none |
| OpenVPN | TCP / UDP | TLS 1.2 | TCP Cubic | none |
| Hysteria 2 | UDP | TLS 1.3 / QUIC | Brutal | QUIC |
| VLESS Reality | TCP | TLS 1.3 fake-SNI | BBR | Reality |
Layer 1
QUIC — what it is
QUIC is a transport protocol Google developed in 2012 and the IETF standardized in 2021 (RFC 9000). The idea: bundle TCP + TLS + HTTP/2 into one. Runs over UDP but still gives delivery guarantees, encryption and stream multiplexing.
Why it matters for VPNs
- 3× faster handshake — 1 RTT vs 3 RTT for TCP+TLS.
- 0-RTT resumption — first byte ships immediately on reconnect.
- No head-of-line blocking — streams don't fight each other.
- Userspace CC updates — no kernel rebuilds.
Layer 2
TLS 1.3 vs TLS 1.2
TLS 1.3 was standardized in 2018 and today powers ~80% of HTTPS. Key difference from 1.2 — a drastically simplified handshake.
| TLS 1.2 | TLS 1.3 | |
|---|---|---|
| Handshake | 2-RTT | 1-RTT (0-RTT on resume) |
| Ciphers | RSA, CBC ok | AEAD only |
| Forward secrecy | optional | always |
| DPI signal | readable SNI | ESNI / ECH |
| Speed | ok | fast |
Layer 3
Congestion control — the speed engine
Where performance lives. CC decides how much data to send per unit of time: too much — loss and backoff, too little — idle channel.
| TCP Cubic | TCP BBR | Brutal | |
|---|---|---|---|
| Year | 2006 | 2016 | 2022 |
| Congestion signal | loss | bandwidth × RTT | ignores loss |
| Lossy networks | |||
| Polite to neighbours | |||
| Used in | Linux default | YouTube · GCP | Hysteria 2 |
Layer 4
Why WireGuard isn't the ceiling
WireGuard is an excellent 2018-era protocol. Minimal overhead, simple format, modern crypto. But it has architectural limits that bite in 2026.
- Fixed packet format — you can't swap CC without touching the kernel.
- UDP-only — no TCP fallback when the carrier blocks UDP.
- No built-in camouflage — WireGuard traffic fingerprints easily.
- Static handshake — no 0-RTT resumption.
Hysteria 2 solves all of that: userspace with flexible CC, QUIC camouflage, 0-RTT, TCP fallback possible. Lunaire doesn't ship WireGuard as a primary protocol for these reasons.
Layer 5
Camouflage — obfs, Reality, xHTTP
Camouflage is a separate layer trying to make VPN traffic look like something ordinary. Three approaches:
| obfs | Reality | xHTTP | |
|---|---|---|---|
| Year | 2012 | 2023 | 2024 |
| Strategy | random bytes | fake real-site TLS | over HTTP/2 |
| DPI resistance | |||
| Works via CDN | Нет | Нет | Да |
| Where | Hysteria 1 (legacy) | Xray / VLESS | Xray, Cloudflare-friendly |
Verdict
What to use in 2026
Short answer: Hysteria 2 primary + VLESS Reality fallback for UDP-blocked networks. Lunaire ships both in one client — no manual setup.