Усунення затримки мережі за допомогою Wireshark

Затримка мережі – це затримка в передачі запитів або даних від джерела до пункту призначення в мережевій екосистемі. Давайте подивимося, як можна усунути затримку мережі.

Будь-яка дія, яка вимагає використання мережі, як-от відкриття веб-сторінки, клацання посилання або відкриття програми та гра в онлайн-гру, називається діяльністю. Діяльність користувача — це запит, а час відповіді веб-додатка — це час, необхідний для відповіді на цей запит.

Ця затримка також включає час, потрібний серверу для виконання запиту. У результаті його визначають як туди й назад – час, необхідний для запису запиту, обробки, а потім отримання користувачем, де він декодується.

Термін «низька затримка» стосується відносно коротких затримок передавання даних. З іншого боку, тривалі затримки або надмірна затримка є небажаними, оскільки вони погіршують взаємодію з користувачем.

Як виправити затримку мережі?

В Інтернеті є багато інструментів і програмного забезпечення для аналізу та усунення несправностей мережі. Деякі платні, а деякі безкоштовні. Однак є інструмент під назвою Wireshark, яка є програмою з відкритим кодом і ліцензією GPL, яка використовується для захоплення пакетів даних у режимі реального часу. Wireshark є найпопулярнішим і найпоширенішим аналізатором мережевих протоколів у світі.

Це допоможе вам перехопити мережеві пакети та відобразити їх у деталях. Ви можете використовувати ці пакети для аналізу в режимі реального часу або в автономному режимі, коли він перехопить мережеві пакети. Ця програма дозволяє досліджувати ваш мережевий трафік під мікроскопом, фільтруючи та детально аналізуючи його, щоб знайти джерело проблем, допомагаючи в аналізі мережі та, зрештою, у безпеці мережі.

Що викликає затримку мережі?

Кілька основних причин повільного підключення до мережі, зокрема:

  • Висока затримка
  • Залежності програми
  • Втрата пакетів
  • Перехоплюючі пристрої
  • Неефективні розміри вікон

У цій статті ми розглядаємо кожну причину затримки мережі та способи вирішення проблем із Wireshark.

Обстеження за допомогою Wireshark

Висока затримка

Висока затримка означає час, потрібний для передачі даних від однієї кінцевої точки до іншої. Вплив високої затримки на мережевий зв’язок величезний. На наведеній нижче діаграмі як приклад ми розглядаємо час зворотного проходження завантаження файлу на шляху з високою затримкою. Час затримки в обидві сторони часто може перевищувати одну секунду, що є неприйнятним.

  Наскільки швидкий хостинг Kinsta WordPress (результати тесту)?

  • Перейдіть до статистики Wireshark.
  • Виберіть опцію TCP stream graph.
  • Щоб дізнатися, скільки часу потрібно для завантаження файлу, виберіть часовий графік “Подорож туди й назад”.

Wireshark використовується для обчислення часу проходження шляху туди й назад, щоб перевірити, чи є це причиною неправильної роботи мережі зв’язку протоколу керування передачею (TCP). TCP використовується в різних програмах, включаючи онлайн-серфінг, передачу даних, протокол передачі файлів і багато інших. У багатьох випадках операційну систему можна налаштувати для ефективнішої роботи на каналах із високою затримкою, особливо коли хости використовують Windows XP.

Залежності програми

Деякі програми залежать від інших програм, процесів або комунікацій хоста. Припустімо, що ваша програма бази даних, наприклад, покладається на підключення до інших серверів для отримання елементів бази даних. У такому випадку низька продуктивність на цих інших серверах може погіршити час завантаження локальної програми.

Візьмемо, наприклад, веб-перегляд, де цільовий сервер посилається на кілька інших веб-сайтів. Наприклад, щоб завантажити головну сторінку сайту, www.espn.com, ви повинні спочатку відвідати 16 хостів, які надають рекламу та вміст для головної сторінки www.espn.com.

На наведеному вище малюнку вікно «Розподіл навантаження HTTP» у Wireshark відображає список усіх серверів, які використовує домашня сторінка www.espn.com.

Втрата пакетів

Однією з найпоширеніших проблем, які я бачу в мережах, є втрата пакетів. Втрата пакетів відбувається, коли пакети даних неправильно доставляються від відправника до одержувача через Інтернет. Коли користувач відвідує веб-сайт і починає завантажувати елементи сайту, пропущені пакети викликають повторну передачу, збільшуючи перевірку завантаження веб-файлів і сповільнюючи загальний процес завантаження.

Крім того, коли програма використовує TCP, відсутні пакети мають особливо негативний вплив. Коли з’єднання TCP виявляє скинутий пакет, пропускна здатність автоматично сповільнюється, щоб компенсувати проблеми з мережею.

Він поступово покращується до більш прийнятного темпу, доки не буде відкинуто наступний пакет, що призведе до значного зниження пропускної здатності даних. Завантаження великих файлів, які в іншому випадку мали б легко проходити через мережу, значно страждають від втрати пакетів.

  Як об’єднати всі ваші чати з Ферді

Як виглядає втрата пакета? Це спірно. Втрата пакетів може мати дві форми, якщо програма працює через TCP. В одному прикладі приймач відстежує пакети на основі їх порядкових номерів і виявляє відсутній пакет. Клієнт робить три запити на відсутній пакет (подвійні підтвердження), що призводить до повторного надсилання. Коли відправник помічає, що одержувач не підтвердив отримання пакета даних, відправник закінчує час очікування та повторно передає пакет даних.

Wireshark вказує на те, що сталася перевантаженість мережі, а багаторазові підтвердження призводять до повторної передачі проблемного трафіку, позначаючи його кольором. Велика кількість дублікатів підтвердження вказує на втрату пакетів і значну затримку в мережі.

Щоб підвищити швидкість мережі, дуже важливо визначити точне місце втрати пакетів. Коли відбувається втрата пакетів, ми переміщуємо Wireshark по шляху, доки втрачені пакети більше не будуть видимі. На даний момент ми знаходимося «вгорі» від точки надходження пакетів, тому ми знаємо, на чому зосередити наші зусилля з налагодження.

Пристрої перехоплення

Мережеві транспортні поліцейські — це з’єднувальні пристрої, які вибирають переадресацію, наприклад комутатори, маршрутизатори та брандмауери. Якщо відбувається втрата пакетів, слід дослідити ці пристрої як ймовірну причину.

Затримка може бути додана до шляху цими сполучними пристроями. Наприклад, якщо ввімкнено пріоритезацію трафіку, ми можемо спостерігати додаткову затримку, введену в потік із низьким рівнем пріоритету.

Неефективні розміри вікон

Окрім операційної системи Microsoft, у мережі TCP/IP є й інші «вікна».

  • Розсувне вікно
  • Вікно приймача
  • Вікно контролю заторів

Ці вікна разом складають ефективність зв’язку мережі на основі TCP. Давайте почнемо з визначення кожного з цих вікон і їх впливу на пропускну здатність мережі.

Розсувне вікно

Коли дані підтверджуються, ковзне вікно використовується для трансляції наступних сегментів TCP через мережу. Відправник отримує підтвердження про передані фрагменти даних, ковзаюче вікно розгортається. Поки в мережі немає втрачених передач, можна передавати більші обсяги даних. Коли пакет втрачається, ковзне вікно зменшується, оскільки мережа не може керувати збільшенням обсягу даних у лінії.

  Чому не варто використовувати картки MicroSD у DSLR або бездзеркальних фотоапаратах

Вікно приймача

Вікно приймача стеку TCP є буферним простором. Коли дані отримані, вони зберігаються в цьому буфері, доки їх не підбере програма. Вікно приймача заповнюється, коли програма не встигає за швидкістю отримання, що зрештою призводить до сценарію «нульового вікна». Уся передача даних до хосту повинна бути припинена, коли приймач оголошує умову нульового вікна. Швидкість пропускної здатності падає до нуля. Метод, відомий як масштабування вікна (RFC 1323), дозволяє хосту збільшити розмір вікна приймача та знизити ймовірність сценарію нульового вікна.

На зображенні вище показано 32-секундну затримку мережевого зв’язку через сценарій нульового вікна.

Вікно заторів

Вікно перевантаження визначає максимальний обсяг даних, який може обробляти мережа. Швидкість передачі пакетів відправника, швидкість втрат пакетів у мережі та розмір вікна одержувача сприяють цьому показнику. Вікно перевантаження постійно збільшується під час справного мережевого зв’язку, доки передача не завершиться або не досягне «стелі», встановленої справністю мережі. Можливості передачі відправника або розмір вікна одержувача. Кожне нове підключення запускає процедуру узгодження розміру вікна заново.

Поради для здорової мережі

  • Дізнайтеся, як використовувати Wireshark як завдання першого реагування, щоб швидко й ефективно виявити джерело низької продуктивності.
  • Визначте джерело затримки мережевого шляху та, якщо можливо, зменшіть її до прийнятного рівня.
  • Знайдіть і усуньте джерело втрати пакетів.
  • Перевірте розмір вікна передачі даних і, якщо можливо, зменшіть його.
  • Перевірте продуктивність пристроїв-перехоплювачів, щоб побачити, чи додають вони затримку чи пропускають пакети.
  • Оптимізуйте програми, щоб вони могли передавати більші обсяги даних і, якщо можливо, отримувати дані з вікна приймача.

Підсумок 👨‍🏫

Ми розглянули основні причини проблем з продуктивністю мережі, але один фактор, який не слід упускати, це відсутність розуміння поведінки мережевого зв’язку. Wireshark забезпечує видимість мережі так само, як рентгенівські промені, а сканування CAT забезпечує видимість людського тіла для точної та швидкої діагностики. Цей інструмент став життєво важливим інструментом для пошуку та діагностики мережевих проблем.

Тепер ви повинні перевірити та визначити продуктивність мережі за допомогою кількох фільтрів та інструментів за допомогою Wireshark. 👍