Устранение неполадок с задержкой в ​​сети с помощью Wireshark

Опубликовано: 2021-10-07

Сетевая задержка - это задержка при передаче запросов или данных от источника к месту назначения в сетевой экосистеме. Давайте посмотрим, как можно устранить задержку в сети.

Любое действие, требующее использования сети, например открытие веб-страницы, щелчок по ссылке или открытие приложения и игра в онлайн-игру, называется действием. Действия пользователя - это запрос, а время ответа веб-приложения - это время, необходимое для ответа на этот запрос.

Эта временная задержка также включает время, необходимое серверу для выполнения запроса. В результате он определяется как цикл туда и обратно - время, необходимое для того, чтобы запрос был записан, обработан и затем получен пользователем, где он декодируется.

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

Как исправить задержку в сети?

В Интернете доступно множество инструментов и программного обеспечения для анализа и устранения неполадок в сети. Некоторые из них платные, а некоторые бесплатные. Однако существует инструмент под названием Wireshark, приложение с открытым исходным кодом и лицензией GPL, используемое для захвата пакетов данных в режиме реального времени. Wireshark - самый популярный и широко используемый в мире анализатор сетевых протоколов.

Это поможет вам в захвате сетевых пакетов и их подробном отображении. Вы можете использовать эти пакеты для анализа в реальном времени или в автономном режиме после того, как он перехватит сетевые пакеты. Это приложение позволяет вам исследовать сетевой трафик под микроскопом, фильтровать и детализировать его, чтобы найти источник проблем, помогая в анализе сети и, в конечном итоге, в обеспечении сетевой безопасности.

Что вызывает задержку в сети?

Несколько основных причин медленного сетевого подключения, в том числе:

  • Высокая задержка
  • Зависимости приложений
  • Потеря пакетов
  • Устройства перехвата
  • Неэффективные размеры окон

В этой статье мы рассмотрим каждую причину сетевой задержки и способы решения проблем с Wireshark.

Исследование с помощью Wireshark

Высокая задержка

Под высокой задержкой понимается время, необходимое для передачи данных от одной конечной точки к другой. Влияние высоких задержек на сетевые коммуникации огромно. На приведенной ниже диаграмме в качестве примера мы смотрим на время приема-передачи файла по пути с высокой задержкой. Время ожидания приема-передачи часто может превышать одну секунду, что недопустимо.

WireShark4

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

Wireshark используется для расчета времени приема-передачи на пути, чтобы выяснить, является ли это причиной плохой производительности сети связи по протоколу управления передачей (TCP). TCP используется в различных приложениях, включая онлайн-серфинг, передачу данных, протокол передачи файлов и многие другие. Во многих случаях операционная система может быть настроена для более эффективной работы на каналах с высокой задержкой, особенно когда хосты используют Windows XP.

Зависимости приложений

Некоторые приложения зависят от других приложений, процессов или связи с хостом. Предположим, ваше приложение базы данных, например, полагается на соединение с другими серверами для получения элементов базы данных. В этом случае низкая производительность на других серверах может снизить время загрузки локального приложения.

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

WireShark-3

На приведенном выше рисунке в окне «Распределение нагрузки HTTP» в Wireshark отображается список всех серверов, используемых домашней страницей www.espn.com.

Потеря пакетов

Одна из самых распространенных проблем, с которыми я сталкиваюсь в сетях, - это потеря пакетов. Потеря пакетов происходит, когда пакеты данных неправильно доставляются от отправителя к получателю через Интернет. Когда пользователь посещает веб-сайт и начинает загрузку элементов сайта, пропущенные пакеты вызывают повторную передачу, увеличивая уверенность в загрузке веб-файлов и замедляя общий процесс загрузки.

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

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

Как это выглядит при потере пакета? Это спорно. Потеря пакетов может принимать две формы, если программа работает через TCP. В одном примере получатель отслеживает пакеты на основе их порядковых номеров и обнаруживает пропущенный пакет. Клиент делает три запроса на недостающий пакет (двойные подтверждения), что приводит к повторной отправке. Когда отправитель замечает, что получатель не подтвердил получение пакета данных, отправитель истекает время ожидания и повторно передает пакет данных.

WireShark

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

Для повышения скорости сети критически важно точное определение места потери пакетов. Когда происходит потеря пакетов, мы перемещаем Wireshark по пути до тех пор, пока потеря пакетов не исчезнет. В настоящее время мы «наверху» от точки приема пакетов, поэтому мы знаем, на чем сосредоточить наши усилия по отладке.

Устройства перехвата

Сетевые полицейские - это соединяющие устройства, которые выбирают переадресацию, например коммутаторы, маршрутизаторы и межсетевые экраны. Когда происходит потеря пакетов, эти устройства следует исследовать как вероятную причину.

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

Неэффективные размеры окон

Помимо операционной системы Microsoft, в сетях TCP / IP есть и другие «окна».

  • Раздвижное окно
  • Окно приемника
  • Окно контроля перегрузки

Эти окна вместе составляют коммуникационную производительность сети на основе TCP. Начнем с определения каждого из этих окон и их влияния на пропускную способность сети.

Раздвижное окно

Когда данные подтверждены, скользящее окно используется для широковещательной рассылки следующих сегментов TCP по сети. Отправитель получает подтверждения на переданные фрагменты данных, скользящее окно расширяется. Пока в сети нет потерянных передач, можно передавать большие объемы данных. Когда пакет теряется, скользящее окно сжимается, потому что сеть не может управлять увеличившимся объемом данных на линии.

Окно приемника

Окно приемника стека TCP представляет собой буферное пространство. Когда данные получены, они хранятся в этом буферном пространстве до тех пор, пока приложение не получит их. Окно приемника заполняется, когда приложение не успевает за скоростью приема, что в конечном итоге приводит к сценарию «нулевого окна». Вся передача данных к хосту должна прекращаться, когда получатель объявляет о состоянии нулевого окна. Скорость прохождения падает до нуля. Метод, известный как масштабирование окна (RFC 1323), позволяет хосту увеличивать размер окна приемника и снижать вероятность сценария с нулевым окном.

WireShark2

На приведенном выше рисунке показана 32-секундная задержка сетевых подключений из-за сценария с нулевым окном.

Окно перегрузки

Окно перегрузки определяет максимальный объем данных, который может обработать сеть. На этот показатель влияют скорость передачи пакетов отправителя, скорость потери сетевых пакетов и размер окна получателя. Окно перегрузки постоянно увеличивается во время исправной сетевой связи, пока передача не будет завершена или не достигнет «потолка», установленного работоспособностью сети. Возможности передачи отправителя или размер окна получателя. Каждое новое соединение заново запускает процедуру согласования размера окна.

Советы для здоровой сети

  • Узнайте, как использовать Wireshark в качестве задачи быстрого реагирования, чтобы быстро и эффективно обнаружить источник низкой производительности.
  • Определите источник задержки сетевого пути и, если возможно, уменьшите ее до приемлемого уровня.
  • Найдите и устраните источник потери пакетов.
  • Изучите размер окна передачи данных и, если возможно, уменьшите его.
  • Изучите производительность перехватывающих устройств, чтобы узнать, увеличивают ли они задержку или отбрасывают пакеты.
  • Оптимизируйте приложения, чтобы они могли доставлять большие объемы данных и, если возможно, получать данные из окна получателя.

Заключение

Мы рассмотрели основные причины проблем с производительностью сети, но не следует упускать из виду один фактор - непонимание поведения сетевых коммуникаций. Wireshark обеспечивает видимость сети так же, как рентгеновские снимки, а компьютерная томография позволяет видеть человеческое тело для точной и быстрой диагностики. Этот инструмент стал жизненно важным инструментом для обнаружения и диагностики сетевых проблем.

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