Якщо ти будеш з ним сваритися щодня Затримки, заїкання та високий пінгВи не самотні. За цим невдалим досвідом гри онлайн, здійснення відеодзвінків або роботи віддалено стоїть очевидна причина: поєднання вашої домашньої мережі та налаштування протоколу TCP/IP на ваших пристроях і серверах.
Оптимізуйте TCP/IP для зменшити затримку Це не просто питання налаштування кількох «чарівних» параметрів. Вам потрібно зрозуміти, як працюють такі поняття, як... MTU, MSS, вікно TCP, затримка або надлишок буфераА потім застосуйте певні зміни до вашого ПК, маршрутизатора, мережі Wi-Fi і навіть хмарних серверів або віртуальних машин. Давайте розглянемо це крок за кроком, але з практичної точки зору: що це за річ і що ви можете зробити, щоб ваше з’єднання реагувало швидше.
Ключові концепції TCP/IP, що впливають на затримку
Щоб отримати максимальну користь від вашого зв'язку, корисно зрозуміти кілька речей. основні параметри TCP/IP які безпосередньо впливають на пінг, стабільність та продуктивність в іграх, відеодзвінках або віддаленому доступі.
MTU, фрагментація та LSO
La MTU (максимальна одиниця передачі) Це максимальний розмір пакета в байтах, який може залишити мережевий інтерфейс без фрагментації. У переважній більшості мереж Ethernet (і у віртуальних машинах в Azure або Google Cloud) значення за замовчуванням становить 1500 байт, що включає мережеві заголовки та дані.
Коли пакет перевищує MTU, IP-рівень розбиває його на кілька менших фрагментів. Фрагментація IP-адрес Це передбачає більше роботи процесора та пам'яті, як на машині, яка фрагментує дані, так і на тій, яка збирає фрагменти після їх надходження. Це призводить до додаткової затримки та втрати продуктивності, особливо за умов інтенсивного трафіку.
Крім того, є відомий уривок «Не фрагментуй» (DF) в IP-заголовку. Якщо ввімкнено, і проміжний маршрутизатор отримує пакет, розмір якого перевищує його MTU, замість того, щоб фрагментувати його, він відкидає його та надсилає назад повідомлення ICMP "Потрібна фрагментація". Це використовується в Виявлення маршруту MTU (PMTUD)Але якщо брандмауер блокує ці ICMP-пакети, відправник продовжуватиме намагатися надсилати надмірно великі пакети, що призведе до затримок та повторних передач.
У таких середовищах, як Azure або Google Cloud, фрагментовані пакети також, як правило, втрачають переваги прискорені мережіSR-IOV та SmartNIC. Вони обробляються через повільний маршрут гіпервізора, з більшою кількістю тремтінняменша затримка та менше пакетів за секунду. Тому загальна рекомендація така: Уникайте фрагментації, правильно налаштовуючи MTU та MSS і не завищувати MTU занадто сильно, якщо між ними є брандмауери або VPN.
З іншого боку, функція Розвантаження великого надсилання (LSO) Це дозволяє стеку TCP/IP операційної системи генерувати великі «суперпакети», які потім внутрішньо фрагментуються мережевою картою відповідно до MTU. Це значно зменшує навантаження на процесор, хоча в записах трафіку ви можете побачити величезні кадри, які не вказують на фрагментацію в мережі, а радше на те, що фрагментація відбувається всередині самого адаптера.
MSS, PMTUD та VPN
El TCP MSS (максимальний розмір сегмента) Це визначає, скільки байтів корисних даних поміщається в кожен сегмент TCP, за винятком заголовків IP та TCP. Зазвичай системи обчислюють MSS як:
MSS = MTU - (tamaño cabecera IP + tamaño cabecera TCP)
З MTU 1500 та заголовками IPv4+TCP розміром 20+20 байт, типова MSS становить 1460 байтЦе значення узгоджується під час тристороннього рукостискання TCP, і кожна сторона пропонує своє власне. З'єднання використовує менше з двох.
Однак на шляху можуть бути пристрої (брандмауери, маршрутизатори, VPN-шлюзитощо) з меншим MTU, що фактично призводить до зменшення MSS. Саме тут Виявлення MTU шляху (PMTUD)Коли маршрутизатор не може переслати пакет, оскільки він занадто великий і має встановлений біт DF, він відкидає його та надсилає ICMP-повідомлення "Потрібна фрагментація" із зазначенням максимального підтримуваного MTU, щоб джерело зменшило його розмір.
Якщо ці ICMP-пакети блокуються, з'єднання потрапляє в цикл пересилання та втрат, що призводить до Затримки, повторні передачі та нескінченний час завантаженняТому не завжди гарною ідеєю легковажно збільшувати MTU на комп'ютерах або віртуальних машинах, не перевіряючи весь шлях або політику брандмауера.
У соціальних мережах з IPsec VPN або інших тунелях, додаткові заголовки зменшують простір, доступний для даних, тому рекомендуються менші значення MTU та MSS (наприклад, MTU 1400 та MSS ~1350 у типових тунелях), щоб уникнути фрагментації тунелю та пов'язаних з нею затримок.
Вікно затримки, RTT та TCP
Знаменитий «пінг» – це не що інше, як затримка передачі даних (RTT) між двома точками. На фізичному рівні вона обмежена швидкістю поширення світла у волокні (близько 200 км за мілісекунду) та фактичним шляхом, яким рухаються дані. Вона рідко буває прямою лінією.
У TCP максимальна теоретична пропускна здатність одного з'єднання визначається цією базовою формулою:
rendimiento máximo ≈ tamaño de ventana TCP / RTT
La Вікно TCP Це обсяг даних, який відправник може мати «під час передачі», ще не отримавши підтвердження (ACK). З вікном розміром 65 535 байт і MSS 1460 можна надіслати лише близько 45 пакетів, перш ніж чекати на ACK. Якщо RTT високий (наприклад, 80-160 мс між континентами), немасштабоване вікно далеко не здатне використати переваги високопродуктивних з'єднань.
За замовчуванням поле вікна в заголовку TCP має 16 біт, що обмежує його максимальне значення 65 535 байтами. Для сучасних мереж це абсурдно, тому багато років тому було введено [відсутню інформацію - ймовірно, певну функцію або метод]. Масштабування вікна TCP, що застосовує до цього значення коефіцієнт множення 2^na та дозволяє використовувати вікна розміром сотні МБ або навіть ГБ.
У таких системах, як Windows або Linux, масштабування вікон керується автоматично за допомогою попередньо визначених параметрів (автоматична настройка), і його можна переглядати або змінювати за допомогою таких команд, як Get-NetTCPSetting o sysctlБільш агресивні рівні (наприклад, «експериментальний») дозволяють створювати гігантські вікна та можуть значно покращити продуктивність у мережах на великі відстані, за умови, що втрата пакетів не надто велика.
Прискорені мережі, RSS та GRO/TSO
На хмарних платформах (Azure, Google Cloud тощо) традиційні мережеві інтерфейси значною мірою залежать від процесора хоста для обробки кожного пакета, застосування правил, інкапсуляції та декапсуляції. Це призводить до... жорстоке навантаження на гіпервізор коли трафіку багато, і це генерує нестабільну затримку.
Ось чому так звана прискорені мережіВони базуються на таких технологіях, як SR-IOV та карти SmartNIC з FPGA. Ідея полягає в тому, що значна частина програмно-визначеного мережевого стеку працює на апаратному забезпеченні мережевої карти, а трафік даних може передаватися практично безпосередньо від віртуальної машини до карти, минаючи віртуальний комутатор хоста.
Це забезпечує кілька перевага:
- Менша затримка, більше PPS.
- Менше тремтіння
- Зниження споживання процесора на хості та у віртуальній машині.
Однак, є важливі деталі. Наприклад, багато прискорених мережевих систем не обробляють фрагментовані пакети швидким маршрутом; якщо присутня фрагментація IP-адрес, цей трафік маршрутизується повільним маршрутом, що негативно впливає на продуктивність.
На стороні гостьової операційної системи ключовим є увімкнення таких технологій, як . Масштабування сторони отримання (RSS)який розподіляє обробку вхідних пакетів між кількома ядрами процесора, а також сегментацію та агрегацію завантажень, таких як TSO (розвантаження сегментації передачі) та GRO/LRO (загальне розвантаження прийому)що зменшує кількість пакетів, які процесор має обробляти безпосередньо.
TIME_WAIT та повторне використання сокета
Ще одним менш відомим, але важливим фактором продуктивності TCP є стан. TIME_WAITКоли TCP-з'єднання закривається нормальним чином, кінцева точка, яка надсилає останнє підтвердження (ACK), переходить у стан TIME_WAIT на десятки або навіть сотні секунд. Протягом цього часу система резервує сокет, щоб запобігти повторній появі затриманих пакетів зі старого з'єднання, які будуть сплутані з новим сеансом.
На серверах або машинах, що часто використовуються, легко накопичуватися тисячі або десятки тисяч сокетів у TIME_WAITЦе може вичерпати діапазон тимчасових портів і спричинити помилки під час відкриття нових з’єднань. Тому багато систем дозволяють налаштовувати як тривалість TIME_WAIT, так і діапазон портів, а також певні політики повторного використання.
Більш агресивний метод, що підтримується деякими ядрами (наприклад, Windows Server на Azure), називається Вбивство TIME_WAITЯкщо новий SYN надходить із порядковим номером, значно вищим за номер старого з'єднання, система може примусово закрити сокет протягом TIME_WAIT та негайно прийняти нове з'єднання. Це підвищує масштабованість, але якщо неправильно налаштовано, це може призвести до... проблеми сумісності з деякими більш консервативними TCP-стеками.

Чому пінг так важливий у вашому повсякденному житті
Окрім теорії, затримка має прямий вплив майже на все, що ми робимо в Інтернеті сьогодні. Недостатньо просто «мати 600 Мбіт/с»; якщо відповідь повільна, страждає враження. Давайте розглянемо деякі випадки, коли "Пристойний" пінг має вирішальне значення.
Онлайн-ігри та «ігрові» рівні пінгу
У змагальних іграх кожна мілісекунда на рахунку. пінг нижче 20 мс Це практично ідеально: дії реєструються майже в режимі реального часу, і ви майже не помітите жодної затримки. Між 20 і 50 мс враження залишаються дуже хорошими. Коли ви досягнете 50-100 мс, ви можете помітити невелику десинхронізацію, особливо якщо ви граєте на віддалених серверах.
Від 100-300 мс Починаються серйозні проблеми: кадри, що надходять із затримкою, рухи, які ви бачите із затримкою, машини, що «підстрибують» у гоночній грі тощо. Понад 300 мс гра стає скоріше тортурою, ніж будь-чим іншим, особливо в шутерах, гоночних іграх чи спортивних іграх.
Тип гри також має великий вплив. У FPS та гоночні ігри Практично обов'язково мати менше 50 мс для змагань; в онлайн-спортивних іграх також бажано залишатися нижче 30-40 мс. Однак у MMO або покрокові стратегіїВи можете «вижити» з пінгами 150-200 мс, не перериваючи ігровий процес, хоча він ніколи не буде таким плавним. Якщо ви граєте на Windows, вам може бути цікаво дізнатися, як це зробити. Зменшення затримки введення у Windows 11 покращити реакцію в змагальних іграх.
Відеодзвінки, демонстрація екрана та VoIP-дзвінки
У відеодзвінках через Zoom, Teams, Skype або подібні платформи пінг також має вирішальне значення. В ідеалі він повинен коливатися навколо... 20-40 мсде розмова протікає природно, без перекриття. Більшість користувачів терплять до приблизно 100 мс, хоча невеликі затримки вже помітні під час розмови.
Коли пінг перевищує 100 мсВи починаєте ненавмисно перебивати співрозмовника. Відповіді надходять з тимчасовим «луною», і незручні паузи стають частими. Якщо, крім того, з’єднання має обмежену пропускну здатність або Wi-Fi поганий, до цього додаються пропуски відео та звуку.
з спільний доступ до екрана або дистанційне керування Ефект схожий. Кожен клік і кожен рух миші потребують часу для реєстрації на екрані віддаленого комп'ютера. При високих пінгах здається, що комп'ютер працює млявим. Це неймовірно дратує тих, хто намагається працювати продуктивно.
Інтернет речей, домашня автоматизація та дистанційна робота
В екосистемі с Інтернет речей та розумні пристрої (динаміки, лампочки, камери, розетки, роботи, годівниці для домашніх тварин тощо), затримка також відіграє ключову роль. Хоча ввімкнення світла із затримкою 500 мс не є разючим, коли ви виконуєте багато дій разом або взаємодієте за допомогою голосу (Alexa, Google Assistant), це стає дуже помітним.
Під час віддаленої роботи доступ до віддалених робочих столів, серверів або хмарних програм із постійним затримкою робить будь-яке завдання виснажливим. Багато людей думають, що це «брак швидкості», хоча насправді у них є… висока та/або дуже змінна затримка (джиттер) спричинено перевантаженням Wi-Fi, збоями маршрутизаторів або поганими маршрутами до сервера.
Затримка та безпека: непрямий вплив
Висока латентність сама по собі не означає прямий ризик для безпекиОднак це може мати побічні ефекти. Якщо системи моніторингу, системи виявлення вторгнень або брандмауери отримують інформацію занадто пізно, вони можуть зреагувати на атаку занадто пізно або навіть пропустити критичні події.
Також, коли користувачі відчайдушно стурбовані затримкою, вони схильні «обходити» засоби контролю безпеки: Вони вимикають брандмауер, видаляють антивірус або відкривають порти безсистемно. на маршрутизаторі, щоб спробувати зробити його «швидшим». Саме тут поганий досвід роботи з мережею може відкрити зайві двері для реальних загроз.
Основні причини високої затримки в домашніх мережах
Пінг, який ви бачите в грі або тесті швидкості, є сумою багатьох факторів: оператора, інтернет-маршруту, сервера призначення… але вдома існує чимало типових проблем, які ви можете контролювати самостійно.
Погане покриття Wi-Fi та перешкоди
Більшість із нас зараз підключається майже виключно через Wi-Fi, і саме тут починаються проблеми. Один слабкий або заповнений перешкодами сигнал Це не тільки знижує швидкість, але й збільшує затримку та джиттер, оскільки пристроям потрібно повторно передавати пакети, знижувати модуляцію, чекати, поки канал звільниться тощо.
Якщо ви знаходитесь далеко від маршрутизатора, за кількома стінами або оточені сусідніми мережами на тому ж каналі, ваш пінг постраждає. Крім того, чим більше клієнтів підключено до точки доступу, тим довший час очікування, поки кожен з них «зробить свою чергу» для зв’язку. А повільні клієнти негативно впливають на інших. Дізнайтеся, скільки пристроїв підключено до вашої мережі Wi-Fi виявити проблемних клієнтів.
Такі функції тут досить корисні Справедливість ефірного часуякі розподіляють ефірний час між пристроями, щоб повільніші не монополізували радіо. Навіть у такому разі, коли це можливо, для ігор та роботи зі стаціонарного телефону використовуйте [альтернативу]. кабель Ethernet і залиште Wi-Fi для всіх інших.
Застарілий або перевантажений маршрутизатор
Старий маршрутизатор із застарілою прошивкою або дуже простим обладнанням може стати суттєвим вузьким місцем. Коли процесор маршрутизатора перевантажений, керуючи NAT, брандмауером, QoS та P2P-трафіком, затримка черги та роздування буфераПакети накопичуються у гігантському буфері та надсилаються зі значною затримкою, що руйнує пінг.
Оновіть прошивку, вимкніть непотрібні функції та, за необхідності, попросіть свого оператора замінити пристрій або придбайте новий. найпотужніший нейтральний роутер Часто це знаменує собою поворотний момент. Також гарною ідеєю буде час від часу перезапускати його, щоб очистити стани пам'яті та потенційні витоки.
Завантаження та інші пристрої, що споживають пропускну здатність
Якщо у вашій мережі є кілька пристроїв, які здійснюють інтенсивне завантаження (P2P, оновлення, потокове передавання 4K, резервне копіювання в хмарі), це нормально. ваші пінг-пікиПроблема не стільки в тому, що «закінчуються мегабайти», скільки в тому, як маршрутизатор керує вихідними чергами.
Рішення включає два шляхи:
- З одного боку, краще контролювати те, що завантажується у фоновому режимі (ПК, мобільні телефони, консолі, NAS…).
- З іншого боку, активуйте та належним чином налаштуйте QoS та захист від роздуття буфера від маршрутизатора, щоб інтерактивний трафік (ігри, VoIP, відеодзвінки) мав пріоритет над масовими завантаженнями.
VPN, проксі, брандмауер та фонові програми
The VPN Вони дуже корисні для шифрування трафіку або обходу геообмежень, але майже завжди додають затримку, оскільки ваше з’єднання проходить через посередницький сервер. Якщо VPN безкоштовний або низької якості, це може бути відверто фатальним для пінгу. Те саме стосується певних проксі.
Брандмауери, як на ПК, так і на маршрутизаторі, також додають певну затримку, перевіряючи кожен пакет, і якщо вони неправильно налаштовані, вони можуть надмірно уповільнити з'єднання. Додайте до цього... фонові процеси (оновлення Windows, хмарні клієнти, завантаження патчів для ігор тощо), які споживають багато пропускної здатності, навіть не помічаючи цього.
Шкідливе програмне забезпечення та скомпрометовані пристрої
Комп’ютер, заражений шкідливим програмним забезпеченням, може генерувати прихований трафік (спам, DDoS-атаки, майнінг, завантаження даних) або споживати багато ресурсів процесора та диска, що впливає на якість з’єднання. Якщо ви помітили, що Все працює повільно, а пінг різко підвищується без видимої причини.Бажано виконати ретельне сканування всіх пристроїв за допомогою надійної антивірусної програми. Крім того, рекомендується дотримуватися рекомендацій щодо підтримувати справну мережеву інфраструктуру та уникайте пошкодженого обладнання.

Інструменти для вимірювання затримки та виявлення проблем
Перш ніж щось змінювати, важливо провести точні вимірювання. Не покладайтеся виключно на тест швидкості вашого браузера: існують спеціальні інструменти, які допоможуть вам визначити, де стрімко зростає ваш пінг, і чи проблема полягає у вашій локальній мережі, вашому інтернет-провайдері чи сервері призначення.
Базовий ping та traceroute
Утиліта пінгПрисутня у всіх операційних системах, це відправна точка. За допомогою простого ping 8.8.8.8 (Наприклад) ви можете побачити середню, мінімальну та максимальну затримку до певного пункту призначення, а також чи є втрата пакетів. Якщо ви пропінгуєте шлюз вашого маршрутизатора, ви отримаєте затримку вашої локальної мережі.
Якщо ви додасте -t на Windows (ping 8.8.8.8 -tВи можете дозволити йому працювати, щоб перевірити, чи є якісь піки, провали або тремтіння. А з трасування/трасування Ви перевіряєте, через які стрибки проходять ваші пакети, і в який момент затримка починає підозріло зростати.
Розширені інструменти: WinMTR, PingPlotter та інші
Такі програми, як WinMTR Вони поєднують трасування трасування та безперервний пінг, показуючи відсоток втрати сигналу та мінімальний, середній та максимальний час відгуку для кожного стрибка. Вони дуже корисні для визначення того, чи проблема полягає в першому стрибку вашого інтернет-провайдера, проміжній магістралі чи самому ігровому сервері.
Інші утиліти, такі як NetworkLatencyView (NirSoft) вимірює фактичну затримку TCP-з’єднань, що відкриваються вашим ПК. Також є такі пакети, як Інструменти NetScan Включає графічний пінг, сканер портів, трасування та DNS. Все в одному.
Вимірювання пінгу на мобільному пристрої: додатки для Android та iOS
На смартфонах і планшетах ви також можете вимірювати затримку за допомогою таких програм, як Fing, мережеві інструменти He.net, NetX або спеціальні інструменти ping на iOS. Вони ідеально підходять для перевірки, чи проблема пов’язана з Wi-Fi в певній кімнаті, мобільною мережею чи самим стаціонарним телефоном, що забезпечує низьку якість.
Розширена оптимізація TCP/IP на серверах та в хмарі
Якщо ви керуєте серверами, хмарними віртуальними машинами або вимогливими веб-проектами, ви можете налаштувати набагато більше параметрів TCP/IP та ядра. зменшити затримку та підвищити продуктивність. Особливо у високошвидкісних мережах.
Налаштування ядра та TCP-стеку в Linux
У Linux, використовуючи sysctl і такі інструменти, як tc o ethtool Ви можете застосовувати розширені оптимізації, такі як:
- Знизити мінімальний RTO (
net.ipv4.tcp_rto_min_us) до безпечних значень, таких як 5000 мкс (5 мс) у внутрішніх мережах з низькою затримкою. Для швидшого відновлення після втрати пакетів. - активувати Чесна черга (FQ) з
tc qdisc replace dev <iface> root fq.Щоб краще розподілити пропускну здатність між потоками та уникнути надмірних сплесків від одного з'єднання. - Вимкнути повільний старт після бездіяльності (
net.ipv4.tcp_slow_start_after_idle=0) на серверах, що використовують постійні з’єднання. Щоб вони не запускалися заново з надзвичайно низькою пропускною здатністю щоразу, коли прокидаються з режиму сну. - Вимкніть проблемну частину ГіСтарт (Виявлення поїзда ACK) у Cubic TCP. Щоб запобігти уповільненню зростання вікна через хибні спрацьовування перевантаження.
- Збільште TCP-буфери (
tcp_rmem, tcp_wmem, rmem_max, wmem_max). щоб мати змогу підтримувати високу пропускну здатність на з'єднаннях з високим RTT, запобігаючи нестачі пам'яті в сокетах. - Обмеження
tcp_notsent_lowatЦе запобігає накопиченню надмірної кількості невідправлених даних у ядрі, тим самим захищаючи систему від надмірного споживання пам'яті. - Увімкнути апаратне забезпечення GRO/LRO на сумісних мережевих картах (
ethtool -K <iface> rx-gro-hw on) . Для групування пакетів та зменшення навантаження на процесор на кожне переривання.
великі MTU та високопродуктивні мережі
У внутрішніх хмарних мережах (наприклад, Google Cloud VPC), де надається підтримка jumbo MTU до ~8900 байтНаполегливо рекомендується збільшити MTU (наприклад, до приблизно 4082 байт, сумісних зі сторінками пам'яті по 4 КБ), щоб зменшити кількість пакетів, що обробляються за секунду, та підвищити ефективність процесора.
Однак, слід бути обережним з трафіком, що виходить в Інтернет або проходить через VPN: у такому випадку найкраще або підтримувати стандартний MTU 1500, або налаштовувати його для кожного маршруту (ip route change з mtu y advmss), щоб зовнішні комунікації не зазнавали фрагментації або втрат через надмірно великі пакети.
Веб-сервери, HTTP/2/3 та кешування
На веб-серверах (Nginx, Apache тощо), окрім налаштування TCP, ви можете значно зменшити сприйняту затримку, увімкнувши HTTP/2 та HTTP/3 (QUIC)які дозволяють мультиплексувати кілька запитів через одне з'єднання та зменшують вартість встановлення зв'язку.
Увімкнення Стиснення GZIP або Brotli, використовувати кеш-пам'ять (Redis, Memcached), мініфікувати CSS/JS та обслуговувати статичний контент через CDN з точками присутності поблизу для користувача. Кожна мілісекунда, яку ви зекономите в TTFB (час до першого байта) та мережевому RTT, перетворюється на сайт, який реагує "швидше" в очах відвідувача.
Безперервний моніторинг та показники затримки
Зрештою, якщо ви серйозно ставитеся до продуктивності, вам потрібно постійно її вимірювати. Такі інструменти, як ApacheBench, робота, JMeter або пакети спостережуваності (Prometheus + Grafana, New Relic, Datadog…) дозволяють вам моніторити RTT, TTFB, процентилі затримки, пропускна здатність та коефіцієнт помилок під навантаженням.
Налаштування сповіщень, коли TTFB перевищує певні пороги, коли внутрішній пінґ між службами зростає або коли збільшується втрата пакетів, допомагає проактивно виявляти проблеми з мережею, насичення процесора, зміни маршрутів або вузькі місця, перш ніж затримка досягне кінцевого користувача.
З огляду на всі ці концепції та налаштування, від MTU та MSS до QoS маршрутизатора, прискорених хмарних мереж та конфігурації веб-сервера, очевидно, що затримка не є результатом одного магічного фактора. Це сума багатьох мережевих компонентів та самого TCP/IP, які, за умови правильного налаштування, дозволяють іграм, відеодзвінкам, віддаленій роботі та веб-сайтам реагувати з такою швидкістю. відчуття безпосередності чого ми всі прагнемо, і цього часто досягають радше шляхом налаштування та розуміння мережі, ніж простим скороченням «більшої кількості мегабайтів».