Защо рейтингът Wi-Fi на вашия рутер не предсказва скоростта на VPN
Обявената скорост Wi-Fi и измерената скорост на VPN описват различни слоеве. Преминете през тази подредена проверка, преди да купите по-бърз рутер.
Рутер с етикет Wi-Fi от 3,000 Mbps все още може да прекарва шифрован трафик с част от тази цифра и нито една от двете цифри не е нечестна. Радио рейтингът описва най-добрата модулация на безжичната връзка, която чипсетът поддържа; цифрата за VPN описва колко бързо едно устройство може да прокара шифровани пакети през процесора на рутера и извън вашата достъпна линия. Това са различни слоеве, различни размери на пакетите и различни методи за измерване. Приемайте числото на кутията като таван, който никой не достига, а не като прогноза за скоростта на тунела ви.
Стъпка 1: Начертайте четирите слоя, които ограничават числото
Почти всяка жалба за бавен рутер, с която съм работил, попада в едно от четири нива: безжичната връзка, скоростта на WAN достъпа, пътят за препращане (NAT, защитна стена, проследяване на връзки) или криптопътят на VPN. Те се натрупват и най-бавното ниво определя резултата. Обявената скорост Wi-Fi говори само за първото ниво и говори за него щедро.
Това число идва от броя потоци, умножен по ширината на канала и по най-високата модулация, която чипсетът може да договори. Радио 2x2 на 5 GHz при 80 MHz с 1024-QAM се обявява близо до 1,200 Mbps, но Wi-Fi е споделена, полудуплексна среда: клиентите се редуват, повторните предавания и служебният трафик изгарят ефирно време, а TCP добавя своите разходи. Клиент, който договори най-високата скорост при идеални условия, обикновено измерва доста под половината от нея и още по-малко, щом се появят съседни мрежи.
| 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 |
Ако таблицата сочи към радиото, първо оправете безжичната страна: обхват, ширина на канала, разстояние. Ако сочи под радиото, следващите четири стъпки са важни и никакво пазаруване на антени няма да ги промени.
Стъпка 2: Вземете кабелна базова линия, преди да пипате радиото
Сложете лаптопа на Ethernet и първо измерете пътя без тунела, защото това ви дава знаменател. Пуснете инструмента за пропускателна способност от другата страна, на VPS или домашния сървър, който терминира VPN, и насочете клиента към публичния му адрес, така че трафикът да минава през вашия рутер и достъпна линия.
# 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
Две числа от този блок отговарят на различни въпроси. Един поток показва тавана за една връзка, който включва поведението на TCP прозореца и всяко оформяне на потока по пътя. Четири потока показват дали връзката има капацитет, който не използвате, защото паралелните потоци могат да напълнят тръба, която един поток не може.
Пазете го честно: същият хост, час на денонощието и продължителност, без нищо друго да стриймва в дома. Прехвърлянето на обем за тридесет секунди е правилната единица тук, а RFC 6349, рамката за тестване на TCP пропускателна способност, е изградена точно на тази логика, защото кратките изблици и малките заявки ласкаят връзката. Запишете базовата линия, преди да промените каквото и да е.
Стъпка 3: Пуснете същия тест през тунела
Сега го повторете към адреса на тунела на крайната точка, със същия клиент, продължителност и брой потоци, с вдигнат тунел и без друг трафик. Съотношението между двата резултата ви казва какво струват шифроването и инкапсулацията на този хардуер; абсолютното число ви казва дали е достатъчно за задачата.
Наблюдавайте броячите, докато тече прехвърлянето. При WireGuard wg show отчита прехвърлени байтове за всеки партньор; при OpenVPN файл със статус, записван на интервал, ви дава същата картина.
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
Ако числото на тунела е близо до кабелната базова линия, VPN не е тясното място и можете да спрете да го обвинявате. Ако е част от базовата линия, загубата е станала в крипто- и препращащия път на рутера и следващата стъпка ще ви каже коя част.
Едно предупреждение: щом изходният IP се смени, някои услуги за тест на скоростта тихо избират друг измервателен сървър, така че сравнявате две различни дестинации. Заковайте адреса на сървъра сами.
Стъпка 4: Четете процесора като път, а не като средно
Рутер, който показва 30 процента общо натоварване на процесора, все още може да е наситен: работата на един тунел обикновено попада на едно ядро, една опашка за прекъсвания или една нишка на ядрото, така че средното скрива тавана. Гледайте числата по ядра и softirq вместо индикатора на таблото.
mpstat -P ALL 1
top -H -p $(pgrep -f 'openvpn')
grep -o -m1 aes /proc/cpuinfo
Три неща имат значение в този изход. Едно ядро, заковано близо до 100 процента, докато другите бездействат, сочи към ограничение за връзка. Висок %soft или зает ksoftirqd на един процесор сочи към обработка на пакети от страна на приемане, която не се разпределя по опашките. А липсващият флаг aes означава, че процесорът няма AES инструкции, така че симетричното шифроване работи в софтуер и струва много повече на пакет.
Реализацията също има значение. Традиционен екземпляр на OpenVPN в потребителско пространство обработва пакетите на един тунел до голяма степен на едно място, така че бърза многоядрена кутия може да се държи като едноядрена за този тунел. WireGuard в ядрото разпределя работата по процесорите, а разтоварването на канала за данни на OpenVPN също мести обработката на пакети в ядрото, но само при сборки и платформи, които го поддържат. Твърдение за хардуерно ускорение на маркетинговата страница не е доказателство, че кодовият път, който изпълнявате, го използва.
Стъпка 5: Решете какво да промените, точно в този ред
Минете надолу по списъка и спрете на първия верен ред, защото промяна на нещо под него няма да премести числото.
1. Директната кабелна пропускателна способност е под това, което плащате: говорете с доставчика, защото тунелът не може да създаде капацитет, който достъпната линия не дава. 2. Директно по кабел е добре, но едно ядро се заковава по време на теста на тунела: криптопътят на рутера е границата. 3. Процесорът бездейства, но тунелът е бавен: проверете MTU и фрагментацията, после собствения капацитет на далечната крайна точка. 4. Бавни са само Wi-Fi клиентите: сменете обхвата или ширината на канала и приемете, че обявената скорост никога не е била цифра за VPN.
Когато рутерът наистина е границата, честните варианти са устройство с AES инструкции и по-бърз път за препращане, тунел от страна на ядрото като WireGuard вместо такъв в потребителско пространство, или преместване на клиента върху самото устройство, за да спре рутерът да шифрова. Изключването на удостоверено шифроване, за да спечелите бенчмарк, не е един от тях; то разменя свойство за сигурност срещу число, което пак няма да съвпадне с кутията.
Преди да купите нещо, пуснете отново стъпки 2 и 3 на новото устройство със същия сървър и продължителност, после сравнявайте съотношения, а не пикове.