Ми знали, що завдяки архітектурі WireGuard® протокол NordLynx мав бути набагато швидшим, ніж будь-який інший VPN-протокол тієї ж категорії. Але не можна ухвалювати технологічні рішення на основі припущень, тому ми провели чимало тестів (а саме 256 886) для того, аби розуміти очікувані робочі характеристики Nordlynx. Ця стаття містить результати дослідження, які доводять реальну швидкість протоколу NordLynx.
Але спершу трохи довідкової інформації.
Тестування швидкості: підготовка
Щоб краще зрозуміти, що відбувається під час такого масштабного тестування швидкості (спідтесту), спочатку розглянемо використану методологію.
Нашою метою було зрозуміти, як VPN-протокол впливає на швидкість інтернету. Ми визначили чотири можливих моделі використання VPN:
- Клієнт підключений до найближчого VPN-сервера, та контент-сервер розташований якомога ближче до VPN-сервера.
- Клієнт підключений до іноземного VPN-сервера, але контент-сервер розташований якомога ближче до VPN-сервера.
- Клієнт підключений до найближчого VPN-сервера, але контент-сервер розташований далеко від VPN-сервера.
- Клієнт підключений до іноземного VPN-сервера, та контент-сервер розташований далеко від VPN-сервера.
Для проведення спідтестів ми створили образ Docker, який мав конфігурації трьох VPN-протоколів (NordLynx, OpenVPN та IKEv2) та був оснащений додатком для визначення швидкості Speedtest CLI від Ookla. Після того, як образ був встановлений на віртуальну машину (VM), він кожні дві хвилини виконував наступне:
- Надсилав запит до NordVPN API, щоб вказати рекомендований VPN-сервер
- Випадковим чином вибирав протокол для тестування
- Випадковим чином вибирав тестову мішень
Тестова мішень має два складники: країна, де розташований VPN-сервер для під’єднання (з наведеного списку¹), та країна, де розташований Speedtest-сервер (з наведеного списку).
Щоб отримати дані, які б дозволили нам порівняти VPN-з’єднання за цим протоколом, ми запустили 47 віртуальних машин, розташованих у 9 різних провайдерів² в 19 різних містах³ з 8 різних країн⁴.
Кожна спроба тесту генерувала в масив даних рядок, який містив у себе наступне:
- 1.Мітку часу, коли був виконаний тест
- 2.Географічне місце віртуальної машини
- 3.Місцеперебування VPN-сервера
- 4.Місцеперебування сервера Speedtest
- 5.Протестований VPN-протокол
- 6.Швидкість завантаження (download)
- 7.Швидкість вивантаження/передачі (upload)
Таким чином ми проводили близько 8200 спідтестів в день протягом місяця. (Малюнок 1)
Як видно на малюнку нижче, за протоколом OpenVPN було проведено трохи більше тестів, ніж за двома іншими протоколами. Це пояснюється нерівномірним розподілом серверів за протоколами в нашій мережі. Зараз найбільш популярним протоколом серед користувачів NordVPN є протокол OpenVPN, тому наша мережа містить більше серверів, які підтримують OpenVPN, ніж серверів з підтримкою IKEv2 та NordLynx.
Чому так багато тестів
Перш ніж перейти до результатів, коротко розглянемо основи роботи інтернету.
Мережевий пакет від комп’ютера користувача до цільового сервера (вебсервера, ігрового сервера або сервера з іншим контентом) проходить багато кроків:
На швидкість завантаження та вивантаження даних на кожному кроці впливають багато чинників. Тому майже неможливо постійно мати бездоганно швидке та стабільне з’єднання.
Пристрої мають певний ліміт пропускної спроможності в залежності від моделі. Наприклад, якщо у вас iPhone 11 з Wi-Fi 6, теоретично ліміт пропускної спроможності для нього становить 10 Гбіт/с. На старіших моделях з Wi-Fi 5 або Wi-Fi 4 швидкість інтернету буде обмежена до 2.34 Гбіт/с та 450 Мбіт/с відповідно.
До того ж Wi-Fi-роутер також може мати апаратні обмеження. І маршрутизатор, і телефон можуть бути сильно навантажені у момент проведення спідтесту. Ваш інтернет-провайдер може бути перенавантаженим великою кількістю глядачів «Короля тигрів» у 4K на Netflix.
І це тільки основні з багатьох чинників (мал. 3), що впливають на пропускну швидкість протягом усього маршруту, але не будемо зараз розповідати про всіх них. Головне в тому, щоб взяти якомога ширшу вибірку. Ось чому ми провели таку величезну кількість тестів та розглянули розподіл значень, а не абсолютні цифри.
Результат: чи є NordLynx швидшим?
Пам’ятаєте чотири можливих моделі використання VPN, згадані раніше? Тепер розгляньмо результати тестування швидкості для цих моделей.
Модель 1. Клієнт підключений до найближчого VPN-сервера, та контент-сервер розташований якомога ближче до VPN-сервера.
Для тестування цієї моделі всі випадково вибрані цілі (VPN-сервер, географічне місце віртуальної машини (VM), та сервер Speedtest) були розташовані у США. Ми спостерігали такі швидкості завантаження (download):
З цих гістограм можна зробити декілька висновків. По-перше, середнє та медіанне значення швидкості завантаження очевидно вище у NordLynx. IKEv2 посідає друге, а OpenVPN – третє місце.
Також важливо звернути увагу на розбіг, або відхилення, у кожній гістограмі. Що тут відбувається? Як було зазначено раніше, на швидкість інтернету впливають багато чинників. Знаючи це, можна сказати, що протокол VPN підіймає верхню межу швидкості завантаження. Чим вища верхня межа, тим більший розбіг спостерігається у розподілі швидкості завантаження, тому що діапазон потенційного зменшення швидкості ширший через зовнішні перешкоди.
Модель 2. Клієнт підключений до іноземного VPN-сервера, але контент-сервер розташований якомога ближче до клієнта.
Такий варіант ми тестували за допомогою віртуальної машини і Speedtest-сервера, розташованих у Великій Британії, та VPN-сервера, розташованого у США. Ось які результати було отримано:
Бачимо, що збільшення довжини шляху між користувачем та контент-сервером (з VPN-сервером посередині) додає таке навантаження, що сам протокол відіграє вже меншу роль у швидкості завантаження. Як і раніше, середнє та медіальне значення є віщими у NordLynx, але різниця вже не є такою разючою, як у першому випадку.
Модель 3. Клієнт підключений до найближчого VPN-серверу, але контент-сервер розташований далеко від VPN-сервера.
Третій приклад містить результати, коли і віртуальна машина, і VPN-сервер розташовані у США, а Speedtest-сервер розташований у Великій Британії.
Розшифрувати значення цих гістограм трошки важче. Тут переможці зі швидкості завантаження не такі очевидні, як раніше. Але одне дуже зрозуміло: відстань між VPN-сервером та контент-сервером значною мірою впливає на швидкість.
Тож облишимо четвертий варіант, а замість цього розглянемо відстань. Щоб краще продемонструвати, який вплив має відстань, ми додали більше інформації до наявного масиву даних: відстань між країною VPN-сервера та країною Speedtest-сервера.
Кожна точка на графіку являє собою середню швидкість завантаження для відстані між VPN-сервером та Speedtest-сервером. Тут ми спостерігаємо цікаву картину: при підключенні до найближчого VPN-сервера та завантаженні контенту з CDN-мережі в радіусі кількох тисяч кілометрів очікується майже подвійне збільшення швидкості завантаження для протоколу NordLynx! Але, вочевидь, що зі збільшенням відстані різниця у швидкості зменшується.
А як щодо швидкості вивантаження (upload)? Як показано на малюнку нижче, результати дуже схожі.
На основі результатів цього масштабного тестування швидкості можемо сказати, що з використанням NordLynx швидкість звантаження (download) та вивантаження (upload) може бути більше в два рази у порівнянні з протоколами OpenVPN та IKEv2. Це стосується випадків, коли відстань між VPN-сервером та контент-сервером становить до декількох тисяч кілометрів. Ви можете спитати: наскільки вірогідні ці результати? Коротка відповідь – їм можна довіряти. А щоб дізнатися подробиці, ознайомтеся зі статтею про точність вимірювань.
І на останок: що далі?
Найближчим часом швидкість VPN порадує користувачів ще більше. А поки що хочемо надати кожному можливість ближче ознайомитись з отриманими нами результатами, зробивши публічним весь масив даних, який складається з 256 886 рядків даних тестування швидкості. Тож, будь ласка, копніть глибше, зробіть власні висновки та надсилайте їх нам.
Додаткова інформація
¹ США, Канада, Німеччина, Гонконг, Сінгапур, Австралія, Велика Британія, Нідерланди, Франція, Японія, та Швеція
² 100TB, ALTUHOST, DigitalOcean, GloboTech, Linode, ONEPROVIDER, Online SAS, OVH, Vult.
³ Амстердам, Атланта, Чикаго, Даллас, Франкфурт, Нью-Йорк, Лондон, Гонконг, Лос-Анджелес, Маямі, Монреаль, Париж, Сан-Хосе, Сієтл, Сінгапур, Стокгольм, Сідней, Токіо, Торонто
⁴ Франція, Велика Британія, США, Німеччина, Нідерланди, Японія, Сінгапур, Австралія