Любое действие, требующее использования сети, например, открытие веб-страницы, переход по ссылке или открытие приложения и игра в онлайн-игру, называется активностью.
Действие пользователя – это запрос, а время ответа веб-приложения – это время, которое требуется для ответа на этот запрос.
Эта временная задержка также включает время, которое требуется серверу для выполнения запроса.
В результате, оно определяется как “путешествие туда и обратно” – время, необходимое для того, чтобы запрос был записан, обработан, а затем получен пользователем, где он декодируется.
Термин “низкая латентность” относится к задержкам передачи данных, которые являются относительно короткими.
Другими словами, латентность сети – это задержка.
С другой стороны, длительные задержки или чрезмерные задержки нежелательны, поскольку они ухудшают впечатления пользователя о сервисе или системе.
Как устранить сетевую задержку?
В интернете есть много инструментов и программного обеспечения для анализа и устранения неполадок в сети.
Некоторые из них платные, но есть и бесплатные.
Однако существует инструмент под названием Wireshark, который является приложением с открытым исходным кодом и лицензией GPL, используемым для захвата сетевых пакетов в режиме реального времени.
Wireshark – самый популярный и часто используемый анализатор сетевых протоколов в мире.
Он поможет вам захватить сетевые пакеты и отобразить их в деталях.
Вы можете использовать эти пакеты для анализа в режиме реального времени или в автономном режиме, как только он поймает сетевые пакеты.
Это приложение позволяет изучать сетевой трафик под микроскопом, фильтруя и углубляясь в него, чтобы найти источник проблем, помогая в анализе сети и, в конечном счете, в обеспечении сетевой безопасности.
Что вызывает задержку сети?
Несколько основных причин медленного подключения к сети включают в себя :
- Высокая латентность
- Зависимость приложений
- Потеря пакетов
- Перехватывающие устройства
- Неэффективные размеры окон
И в этой статье мы рассмотрим каждую причину сетевой задержки и способы устранения проблем с помощью Wireshark.
Высокая летентность
Высокая латентность – это время, необходимое для передачи данных от одной конечной точки к другой.
Влияние высокой латентности на сетевые коммуникации огромно.
Время задержки в обе стороны часто может превышать одну секунду, что неприемлемо.
- Перейдите в раздел Wireshark Statistics.
- Выберите опцию TCP stream graph.
- Выберите график Round Trip time, чтобы узнать, сколько времени требуется для загрузки файла.
Во многих случаях операционная система может быть настроена для более эффективной работы на каналах с высокой задержкой, в частности, когда хосты используют Windows XP.
Зависимости приложений
Некоторые приложения зависят от других приложений, процессов или коммуникаций хоста.
Например, приложение базы данных зависит от подключения к другим серверам для получения своих элементов.
В этом случае медленная работа других серверов может ухудшить время загрузки локального приложения.
Возьмем, к примеру, просмотр веб-страниц, где целевой сервер ссылается на несколько других веб-сайтов.
С помощью wireshark вы помжете проверить, например, сколько хостов взаимодействует с сайтом, при его открытии.
Потеря пакетов
Одна из наиболее распространенных проблем, с которыми я сталкиваюсь в сетях, – потеря пакетов.
Потеря пакетов происходит в тех случаях, когда пакеты данных неправильно доставляются от отправителя к получателю по сети Интернет.
Когда пользователь посещает веб-сайт и начинает загружать элементы сайта, пропущенные пакеты вызывают повторные передачи, увеличивая время загрузки веб-файлов и замедляя общий процесс загрузки.
Более того, когда приложение использует TCP, пропущенные пакеты оказывают особенно негативное влияние.
Когда TCP-соединение обнаруживает потерянный пакет, пропускная способность автоматически замедляется, чтобы компенсировать проблемы сети.
Она постепенно повышается до более приемлемого темпа, пока не будет потерян следующий пакет, что приводит к значительному снижению пропускной способности данных.
Загрузка больших файлов, которые в других случаях должны легко проходить по сети, значительно страдают от потери пакетов.
На что похоже ситуация, когда пакет потерян?
Это спорный вопрос.
отеря пакетов может принимать две формы, если программа работает через TCP.
В одном примере приемник отслеживает пакеты на основе их порядковых номеров и обнаруживает пропущенный пакет.
Клиент делает три запроса на недостающий пакет (двойное подтверждение), что приводит к повторной отправке.
Когда отправитель замечает, что получатель не подтвердил получение пакета данных, отправитель делает тайм-аут и повторно передает пакет данных.
Wireshark указывает на перегрузку сети, а множественные подтверждения вызывают повторную передачу проблемного трафика, выделяя его цветом.
Большое количество дублирующих подтверждений указывает на потерю пакетов и значительную задержку в сети.
Для повышения скорости сети очень важно точно определить место потери пакетов.
Когда происходит потеря пакетов, мы перемещаем Wireshark вниз по маршруту до тех пор, пока потеря пакетов больше не будет заметна.
В это время мы находимся “выше по течению” от места потери пакетов, поэтому мы знаем, где сосредоточить наши усилия по отладке.
Перехватывающие устройства
Перехватчики сетевого трафика – это устройства, которые принимают решения о пересылке, такие как коммутаторы, маршрутизаторы и брандмауэры.
Когда происходит потеря пакетов, эти устройства должны быть исследованы как вероятная причина.
Задержка может быть обнаружена по пути этими связующими устройствами.
Например, если включена приоритезация трафика, мы можем наблюдать дополнительную задержку.
Неэффективные размеры окон
Помимо операционной системы Microsoft, существуют и другие “окна” в сети TCP/IP.
- Скользящее окно
- Окно приемника
- Окно перегрузки
Эти окна вместе составляют производительность сети при обмене данными на основе TCP.
Давайте начнем с определения каждого из этих окон и их влияния на пропускную способность сети.
Скользящее окно
По мере подтверждения данных скользящее окно используется для передачи следующих сегментов TCP по сети.
Отправитель получает подтверждения на переданные фрагменты данных, скользящее окно расширяется.
Пока в сети нет потерянных передач, можно передавать большие объемы данных.
Когда пакет теряется, скользящее окно сокращается, поскольку сеть не может справиться с возросшим объемом данных на линии.
Окно приемника
Окно приемника стека TCP представляет собой буферное пространство.
Когда данные получены, они хранятся в этом буферном пространстве до тех пор, пока приложение не заберет их.
Окно приемника заполняется, когда приложение не успевает за скоростью приема, что в конечном итоге приводит к сценарию “нулевого окна”.
Вся передача данных на хост должна прекратиться, когда приемник объявляет о состоянии “нулевого окна”.
Пропускная способность падает до нуля.
Метод, известный как Window Scaling (RFC 1323), позволяет хосту увеличить размер окна приемника и снизить вероятность возникновения сценария “нулевого окна”.
Окно перегрузки
Окно перегрузки определяет максимальный объем данных, который может обработать сеть.
Советы по управлению сетью
- Узнайте, как использовать Wireshark в качестве задачи инструмента реагирования для быстрого и эффективного обнаружения источника низкой производительности.
- Определите источник задержки сетевого пути и, если возможно, уменьшите ее до приемлемого уровня.
- Найдите и устраните источник потери пакетов.
- Изучить размер окна передачи данных и, если возможно, уменьшить его.
- Изучите работу перехватывающих устройств, чтобы выяснить, не увеличивают ли они задержку и не теряют ли пакеты.
- Оптимизируйте приложения, чтобы они могли передавать больший объем данных и, если возможно, получать данные из окна приемника.
Заключение
Мы рассмотрели основные причины проблем с производительностью сети, но один фактор, который нельзя упускать из виду, – это недостаточное понимание поведения сетевых коммуникаций.
Wireshark обеспечивает видимость сети так же, как рентген и компьютерная томография обеспечивают видимость человеческого тела для постановки точного и быстрого диагноза.
Этот инструмент стал жизненно важным средством для обнаружения и диагностики сетевых проблем.
Теперь вы должны исследовать и решить проблему производительности сети с помощью нескольких фильтров и инструментов, используя Wireshark.