Mengapa peringkat Wi-Fi router Anda tidak memprediksi throughput VPN
Kecepatan Wi-Fi yang diiklankan dan kecepatan VPN yang diukur menggambarkan lapisan yang berbeda. Jalani pemeriksaan berurutan ini sebelum membeli router yang lebih cepat.
Router dengan label Wi-Fi 3,000 Mbps tetap bisa memindahkan lalu lintas terenkripsi pada sebagian kecil dari angka itu, dan kedua angka itu tidak menipu. Peringkat radio menggambarkan modulasi terbaik yang mungkin dari tautan nirkabel yang didukung chipset; angka VPN menggambarkan seberapa cepat satu perangkat dapat mendorong paket terenkripsi melalui CPU router dan keluar dari sirkuit akses Anda. Itu lapisan yang berbeda, ukuran paket yang berbeda, dan metode pengukuran yang berbeda. Perlakukan angka pada kotak sebagai langit-langit yang tidak dicapai siapa pun, bukan sebagai ramalan kecepatan terowongan Anda.
Langkah 1: Petakan empat lapisan yang membatasi angka itu
Hampir setiap keluhan router lambat yang saya tangani masuk ke salah satu dari empat tingkatan: tautan nirkabel, laju akses WAN, jalur penerusan (NAT, firewall, pelacakan koneksi), atau jalur kripto VPN. Semuanya bertumpuk, dan tingkatan paling lambat menentukan hasilnya. Laju Wi-Fi yang diiklankan hanya berbicara tentang tingkatan pertama, dan berbicara dengan murah hati.
Angka itu berasal dari jumlah aliran dikali lebar kanal dikali modulasi tertinggi yang bisa dinegosiasikan chipset. Radio 2x2 pada 5 GHz di 80 MHz dengan 1024-QAM diiklankan mendekati 1,200 Mbps, tetapi Wi-Fi adalah media bersama dan setengah dupleks: klien bergiliran, pengiriman ulang dan lalu lintas manajemen membakar waktu udara, dan TCP menambahkan bebannya sendiri. Klien yang menegosiasikan laju tertinggi dalam kondisi ideal biasanya mengukur jauh di bawah separuhnya, dan lebih rendah lagi begitu jaringan tetangga muncul.
| Symptom | Tier to suspect first |
|---|---|
| Wired clients are slow too | WAN access or forwarding path |
| Only Wi-Fi clients are slow | Radio, airtime, or channel width |
| One stream is slow, four parallel streams add up | Per-connection CPU path, not the link |
| Every stream is slow and one core sits at 100% | Crypto path |
| Fast to LAN hosts, slow to the internet | WAN, not the tunnel |
Jika tabel menunjuk ke radio, perbaiki dulu sisi nirkabel: pita, lebar kanal, jarak. Jika menunjuk di bawah radio, empat langkah berikutnya yang penting, dan berapa pun antena yang dibeli tidak akan mengubahnya.
Langkah 2: Ambil garis dasar berkabel sebelum menyentuh radio
Pasang laptop ke Ethernet dan ukur dulu jalur tanpa terowongan, karena itu memberi Anda penyebut. Jalankan alat throughput di sisi jauh, pada VPS atau server rumah yang mengakhiri VPN, dan arahkan klien ke alamat publiknya agar lalu lintas melewati router dan sirkuit akses Anda.
# on the far host (VPN endpoint)
iperf3 -s
# wired client, direct to the endpoint's public address
iperf3 -c 203.0.113.10 -t 30
# same client, four parallel streams
iperf3 -c 203.0.113.10 -t 30 -P 4
Dua angka dari blok itu menjawab pertanyaan berbeda. Satu aliran menunjukkan batas per koneksi, termasuk perilaku jendela TCP dan segala pembentukan per aliran di jalur. Empat aliran menunjukkan apakah tautan punya kapasitas yang tidak Anda pakai, karena aliran paralel dapat mengisi pipa yang tidak bisa diisi satu aliran.
Jaga kejujurannya: host yang sama, waktu dalam sehari dan durasi, tanpa hal lain yang streaming di rumah. Transfer massal tiga puluh detik adalah satuan yang tepat di sini, dan RFC 6349, kerangka pengujian throughput TCP, dibangun di atas penalaran itu, karena semburan pendek dan permintaan kecil membuat tautan tampak lebih baik. Catat garis dasar sebelum Anda mengubah apa pun.
Langkah 3: Jalankan pengujian yang sama melalui terowongan
Sekarang ulangi terhadap alamat terowongan titik akhir, dengan klien, durasi, dan jumlah aliran yang sama, terowongan menyala dan tanpa lalu lintas lain. Rasio antara kedua hasil memberi tahu Anda berapa biaya enkripsi dan enkapsulasi pada perangkat keras itu; angka absolutnya memberi tahu apakah cukup untuk pekerjaan itu.
Amati penghitung saat transfer berjalan. Di WireGuard, wg show melaporkan byte yang ditransfer per rekan; di OpenVPN, berkas status yang ditulis berkala memberi Anda tampilan yang sama.
watch -n 1 'wg show wg0 transfer'
# OpenVPN: add --status /run/openvpn/server.status 10 to the server config
tail -f /run/openvpn/server.status
Jika angka terowongan dekat dengan garis dasar berkabel, VPN bukan hambatan Anda dan Anda bisa berhenti menyalahkannya. Jika hanya sebagian kecil dari garis dasar, kehilangan terjadi di dalam jalur enkripsi dan penerusan router, dan langkah berikutnya memberi tahu bagian mana.
Satu peringatan: begitu IP keluar berubah, sebagian layanan uji kecepatan diam-diam memilih server pengukuran lain, sehingga Anda akhirnya membandingkan dua tujuan. Sematkan sendiri alamat server.
Langkah 4: Baca CPU sebagai jalur, bukan sebagai rata-rata
Router yang menunjukkan 30 persen CPU total masih bisa jenuh: pekerjaan satu terowongan cenderung mendarat di satu inti, satu antrean interupsi, atau satu utas kernel, sehingga rata-rata menyembunyikan batasnya. Lihat angka per inti dan softirq alih-alih meteran di dasbor.
mpstat -P ALL 1
top -H -p $(pgrep -f 'openvpn')
grep -o -m1 aes /proc/cpuinfo
Tiga hal penting dalam keluaran itu. Satu inti tertahan mendekati 100 persen sementara yang lain menganggur menunjuk pada batas per koneksi. %soft yang berat atau ksoftirqd yang sibuk pada satu CPU menunjuk pada pemrosesan paket sisi terima yang tidak menyebar ke antrean. Dan tanda aes yang hilang berarti CPU tidak punya instruksi AES, jadi enkripsi simetris berjalan di perangkat lunak dan jauh lebih mahal per paket.
Implementasi juga penting. Instans OpenVPN tradisional di ruang pengguna memproses paket satu terowongan sebagian besar di satu tempat, sehingga kotak multi-inti yang cepat bisa berperilaku seperti inti tunggal untuk terowongan itu. WireGuard di kernel menyebarkan pekerjaan ke seluruh CPU, dan offload kanal data OpenVPN juga memindahkan penanganan paket ke kernel, tetapi hanya pada build dan platform yang mendukungnya. Klaim akselerasi perangkat keras di halaman pemasaran bukan bukti bahwa jalur kode yang Anda jalankan memakainya.
Langkah 5: Putuskan apa yang akan diubah, dalam urutan itu
Telusuri daftar ini ke bawah dan berhenti pada baris pertama yang benar, karena mengubah apa pun di bawahnya tidak akan menggerakkan angka.
1. Throughput langsung berkabel lebih rendah dari yang Anda bayar: bicaralah dengan penyedia, karena terowongan tidak dapat menciptakan kapasitas yang tidak diberikan sirkuit akses. 2. Berkabel langsung baik-baik saja tetapi satu inti tertahan selama uji terowongan: jalur kripto router adalah batasnya. 3. CPU menganggur tetapi terowongan lambat: periksa MTU dan fragmentasi, lalu kapasitas titik akhir jauh itu sendiri. 4. Hanya klien Wi-Fi yang lambat: ubah pita atau lebar kanal, dan terima bahwa laju yang diiklankan tidak pernah menjadi angka VPN.
Ketika router benar-benar menjadi batas, pilihan jujurnya adalah perangkat dengan instruksi AES dan jalur penerusan lebih cepat, terowongan sisi kernel seperti WireGuard alih-alih yang di ruang pengguna, atau memindahkan klien ke perangkat itu sendiri agar router berhenti mengenkripsi. Mematikan enkripsi terautentikasi untuk memenangkan benchmark bukan salah satunya; itu menukar properti keamanan dengan angka yang tetap tidak akan cocok dengan kotak.
Sebelum membeli apa pun, jalankan ulang langkah 2 dan 3 pada perangkat baru dengan server dan durasi yang sama, lalu bandingkan rasio, bukan puncak.