Транспортний протокол TCP проєктувався з фундаментальним припущенням: втрата пакета завжди свідчить про переповнення черги на проміжному маршрутизаторі. Коли класичні алгоритми керування перевантаженнями — такі як Reno, NewReno або ранні версії CUBIC — фіксують скидання пакетів через три дублюючі підтвердження (DupACK) або вичерпання тайм-ауту передачі (RTO), вони зменшують вікно відправлення на 30–50%. Хоча принцип мультиплікативного зменшення ефективно запобігає колапсу буферів у дротових оптоволоконних лініях, він абсолютно не підходить для сучасних бездротових, мобільних та супутникових каналів зв'язку.
Під час передачі даних через захищені тунелі віртуальних приватних мереж (VPN) нестабільними радіоканалами випадкові втрати відбуваються постійно. Електромагнітні завади, багатопроменеве згасання сигналу, взаємна інтерференція каналів Wi-Fi та перемикання між вежами стільникового зв'язку викликають відкидання кадрів, яке жодним чином не пов'язане з переповненням черг маршрутизатора. Сприймаючи ці тимчасові радіозавади як перевантаження каналу, стандартний мережевий стек різко знижує швидкість передачі. Алгоритм TCP Westwood та його вдосконалена версія TCP Westwood+ усувають цей недолік, замінюючи сліпе скорочення вікна безперервною наскрізною оцінкою доступної смуги пропускання.
Помилковість оцінки втрат у радіомережах: Чому традиційний контроль перевантажень гальмує VPN
У класичних моделях кожен втрачений IP-пакет вважається наслідком переповненої черги. Якщо відправник надсилає дані швидше, ніж найвужче місце здатне їх обробити, проміжні буфери переповнюються, і наступні пакети відкидаються.
Класична реакція на втрату (Reno / звичайний CUBIC):
[Виявлено втрату пакета] -------------------> Сліпе скидання: ssthresh = cwnd / 2
(Причина: переповнення черги АБО завади) Швидкість падає на 50% при вільному каналі 100 Мбіт/с
Адаптивне відновлення Westwood+:
[Виявлено втрату пакета] -------------------> Розрахунок за ємністю: ssthresh = (BWE * RTTmin) / MSS
(Визначається за темпом надходження ACK) Труба каналу залишається повною; штучне уповільнення знято
Хибне сприйняття радіозавад і згасання сигналу як переповнення буферів
Бездротове середовище передачі має фізичні особливості, відсутні в оптоволоконних лініях:
- Багатопроменеве згасання та інтерференція фаз: Відбиття радіохвиль від будівель і рельєфу викликає взаємне гасіння хвиль, що призводить до втрати кадрів на фізичному рівні.
- Атмосферне згасання у супутникових лініях: Низькоорбітальні угруповання супутників зазнають впливу опадів і вологи в атмосфері, що спричиняє короткочасні втрати пакетів.
- Інтервали хендоверу в мобільних мережах: Перехід пристрою 4G або 5G між сусідніми базовими станціями gNodeB створює паузи від 20 до 100 мілісекунд.
У кожній із цих ситуацій буфер на вузькому місці є повністю порожнім, а фізичний канал має значну доступну смугу. Проте традиційний стек TCP реагує однаково — зменшує вікно перевантаження (cwnd) удвічі, переводячи зв'язок у стан повільного старту.
Штраф від мультиплікативного зменшення вікна в шифрованих мобільних тунелях
Інкапсуляція трафіку в тунелі WireGuard або IPsec ще більше посилює цей штраф через накладні витрати протоколу та фіксовані розміри MTU, детально досліджені у статті про /news/tcp-gso-gro-offloading-linux-vpn-tun-performance.
За типового для радіомереж рівня випадкових втрат у 2%:
- Класичний відправник зазнає мультиплікативного зменшення вікна кожні 50 надісланих пакетів.
- Розмір вікна ніколи не встигає досягти значення добутку пропускної здатності на затримку (BDP).
- З'єднання з потенційною швидкістю 100 Мбіт/с деградує до рівня нижче 8 Мбіт/с, залишаючи понад 92% доступного радіоресурсу невикористаними.
Архітектурні засади: Безперервна оцінка доступної смуги пропускання (BWE)
Фахівці Каліфорнійського університету в Лос-Анджелесі (UCLA) запропонували принципово інший підхід: відправник не робить припущень на основі втрат, а безпосередньо вимірює пропускну здатність каналу за темпом надходження пакетів підтвердження (ACK).
Моніторинг швидкості надходження підтверджень ACK та темпу доставки даних
Коли отримувач успішно приймає пакети, він надсилає відправнику підтвердження. Якщо вузьке місце пересилає дані зі швидкістю своєї фізичної пропускної здатності ($C$), проміжки часу між підтвердженнями точно відображають цей темп.
Кожен отриманий ACK засвідчує, що певний обсяг даних ($d_k$) успішно пройшов крізь мережеву лінію. Відстежуючи інтервал часу між підтвердженнями ($\Delta t_k$), відправник обчислює миттєвий зразок пропускної здатності:
$$b_k = \frac{d_k}{\Delta t_k}$$
Алгоритм підтримує згладжену оцінку пропускної здатності (BWE), пропускаючи вимірювання крізь цифровий низькочастотний фільтр. Це згладжує тимчасові затримки планувальника операційної системи й точно фіксує суттєві зміни пропускної здатності лінії.
Розрахунок Ssthresh через добуток пропускної здатності на затримку
У разі втрати пакета TCP Westwood не виконує механічного зменшення вікна вдвічі. Натомість поріг повільного старту (ssthresh) розраховується з урахуванням реальних виміряних параметрів лінії зв'язку:
$$\text{ssthresh} = \frac{\text{BWE} \times \text{RTT}_{\min}}{\text{MSS}}$$
Де:
- $\text{BWE}$ — згладжена оцінка смуги пропускання на момент виникнення втрати.
- $\text{RTT}_{\min}$ — мінімальний круговий час затримки за весь сеанс (час проходження сигналу без урахування затримок у чергах).
- $\text{MSS}$ — максимальний розмір корисного сегмента.
Добуток $\text{BWE} \times \text{RTT}_{\min}$ точно відповідає місткості BDP фізичного каналу. Призначення ssthresh цього значення гарантує, що лінія залишатиметься повністю наповненою. Якщо скидання пакета було спричинене випадковими радіозавадами, зв'язок продовжить передачу на повній швидкості лінії без відчутних втрат продуктивності.
Усунення ефекту накладання спектрів: Еволюція від Westwood до Westwood+
Попри значні успіхи першої версії TCP Westwood, реальні умови експлуатації виявили вразливість до ефекту стиснення підтверджень (ACK compression).
Інтервали ACK на боці відправника:
[Надсилання даних] -------> [Накопичення в черзі] -------> [Щільний потік пачки ACK]
(Мікроскопічний delta_t дає хибний пік BWE)
Рішення Westwood+ (Інтегральний фільтр на масштабі RTT):
[Підсумовування даних за повний оберт RTT] -> Фільтр ковзного середнього -> Стабільна BWE
Патологія стиснення ACK-пакетів у чергах із пульсуючим трафіком
На завантажених каналах підтвердження ACK нерідко затримуються позаду масивних сплесків зворотного трафіку. Після очищення черги маршрутизатор відправляє накопичені пакети ACK майже одночасно — надщільною серією.
За початкової формули Westwood:
- Проміжки часу між сусідніми підтвердженнями прямували до нуля ($\Delta t_k \to 0$).
- Співвідношення $b_k = d_k / \Delta t_k$ породжувало штучні гігантські сплески розрахункової швидкості.
- Ефект накладання спектрів спотворював фільтр, переоцінюючи місткість лінії та спричиняючи переповнення буферів.
Дискретна низькочастотна фільтрація на інтервалі RTT: Збереження точності вимірювань
Для надійного усунення патології стиснення підтверджень було розроблено версію TCP Westwood+. Вона відмовилася від розрахунків на рівні окремих пакетів і перейшла до обліку даних за повний круговий інтервал часу ($R \approx \text{RTT}$):
$$B_k = \frac{D_k}{R_k}$$
Де $D_k$ позначає загальний обсяг даних, підтверджених за інтервал $R_k$. Згладжена оцінка оновлюється методом експоненційного ковзного середнього:
$$\text{BWE}k = \alpha \cdot \text{BWE}{k-1} + (1 - \alpha) \cdot B_k$$
Дискретна інтегральна фільтрація на масштабі RTT наділила Westwood+ цілковитим імунітетом до злипання ACK-пакетів. Алгоритм забезпечує високу точність вимірювань як у мережах 5G, так і на каналах супутникового зв'язку зі значною дисперсією затримок.
Динаміка передачі в шифрованих оверлеях: Ефективність WireGuard та IPsec
Шифровані тунелі вносять власні особливості в динаміку передачі, роблячи контроль перевантажень на основі оцінки смуги пропускання критично важливим.
Подолання скидань під час перемикання веж 5G і джитера супутникових каналів
Користувачі мобільних пристроїв постійно переходять між мережами різного типу: від домашнього Wi-Fi 6 до стільникового 5G або супутникових терміналів Starlink.
Під час процедури хендоверу:
- Радіомодем втрачає кілька пакетів під час узгодження нових частотних каналів.
- Алгоритми Reno або CUBIC миттєво зменшують вікно
cwndдо мінімального рівня. - У Westwood+ відправник фіксує, що
BWEзберігається на рівні 80 Мбіт/с, а $\text{RTT}_{\min}$ становить 35 мс. - Значення
ssthreshвиставляється під повну ємність каналу 80 Мбіт/с, відновлюючи швидкість за один RTT без затримок повільного старту.
Це запобігає виникненню надлишкової буферизації, детально проаналізованої у дослідженні про /news/tcp-hystart-plus-rfc-9406-bufferbloat-slow-start-vpn.
Зниження блокувань початку черги в інкапсульованих потоках UDP
Захищені мережі інкапсулюють мережеві пакети в датаграми UDP. Якщо в зовнішньому каналі трапляються випадкові втрати, внутрішні сесії TCP стикаються з блокуванням початку черги (Head-of-Line blocking).
Працюючи у зв'язці з механізмом вибіркового підтвердження (SACK), розглянутим у матеріалі про /news/tcp-sack-rfc-6675-loss-recovery-pipe-algorithm-vpn, Westwood+ утримує лінію наповненою навіть під час повторної передачі окремих сегментів. Нові порції даних продовжують надходити відповідно до ємності лінії, не чекаючи на вичерпання таймерів повторного відправлення.
Архітектурна оптимізація: Стійкий до втрат конвеєр RiceGuard
VPNRice інтегрує принципи наскрізної оцінки ємності безпосередньо у власну інфраструктуру тунелів за допомогою модуля RiceGuard:
- Адаптивне зондування BWE: Безперервне відстеження темпу підтверджень у тунелі без блокування сокетів ядра.
- Евристика ідентифікації причин втрат: Зіставлення часу прибуття кадрів із варіацією кругової затримки для розмежування радіозавад і реального переповнення буферів.
- Корекція вікна без деградації: Фіксація розміру вікна передачі за показниками BDP без невиправданого зниження швидкості.
- Взаємодія з телеметрією мобільних модемів: Коригування темпу передачі даних під час перемикання між стільниковими вежами.
Завдяки цим рішенням сервіс VPNRice гарантує стабільну якість відеодзвінків, онлайн-ігор та швидкісного завантаження файлів навіть у перевантажених публічних мережах Wi-Fi та в зонах слабкого мобільного сигналу.
Практична діагностика в Linux: Налаштування та тестування Westwood+
Системні інженери можуть активувати та перевірити роботу алгоритму TCP Westwood+ на шлюзах Linux за допомогою стандартних параметрів ядра та мережевих інструментів.
Активація модуля tcp_westwood у мережевому тракті ядра Linux
Перевірка доступності модуля та ввімкнення Westwood+ для всієї системи:
# Перевірка списку доступних алгоритмів керування перевантаженнями
sysctl net.ipv4.tcp_available_congestion_control
# Завантаження модуля ядра westwood, якщо він відсутній
sudo modprobe tcp_westwood
# Встановлення westwood за замовчуванням для всієї системи
sudo sysctl -w "net.ipv4.tcp_congestion_control = westwood"
# Збереження налаштувань для автоматичного застосування під час завантаження
echo "net.ipv4.tcp_congestion_control = westwood" | sudo tee -a /etc/sysctl.d/99-tcp-westwood.conf
Аналіз телеметрії та метрик сокетів за допомогою утиліти ss
Утиліта ss надає можливість переглядати внутрішні змінні оцінки смуги пропускання активних сокетів:
# Перегляд детальних параметрів з'єднань із алгоритмом westwood
ss -tin '( dport = :443 or sport = :443 )'
# Зразок параметрів виведених даних:
# cubic / westwood wscale:7,7 rto:240 rtt:32.4/4.1 ato:40
# ssthresh:142 cwnd:160 bwe:78.4Mbps minrtt:28.1
Відстежуючи параметри bwe, minrtt та cwnd у реальному часі, інженери можуть переконатися, що у разі збоїв зв'язку параметри відновлюються за реальною місткістю каналу, підтримуючи високу мультигігабітну швидкість у захищених корпоративних мережах.



