Как исправить потерю пакетов
Потеря пакета происходит, когда ваше сетевое соединение теряет информацию во время передачи. Это может заставить ваше сетевое соединение казаться медленнее, чем должно быть, и снижает надежность сетевого взаимодействия как с локальными, так и с удаленными устройствами. Остановка потери пакетов должна быть на вершине списка для всех, кто хочет улучшить проблемную сеть.
Что такое потеря пакетов?
Хотя проточная вода часто используется в качестве аналогии для сетевого трафика, информация не передается по сети в виде непрерывного потока. Скорее, он отправляется в виде серии отдельных блоков, называемых пакетами . Эти блоки похожи на отдельные страницы в книге. Вместе они имеют некоторый смысл, но только когда они связаны с другими страницами в правильном порядке, они создают единое целое. Когда ваше сетевое соединение теряет пакеты, полная книга не может быть построена. Пакеты также могут доставляться неполными, поврежденными или иными дефектами, что делает их бесполезными. Решением этой проблемы обычно является повторная отправка потерянного пакета.
В большинстве сетей время от времени наблюдается очень низкий уровень потери пакетов. Превращения сетевых соединений таковы, что время от времени пакет отбрасывается, что неизбежно. Тем не менее, в правильно функционирующей сети потеря пакетов происходит достаточно редко, что не влияет на эффективность сетевого подключения.
Если вы видите более высокие уровни потери пакетов в вашей сети, вам нужно предпринять шаги, чтобы это исправить. Возвращаясь к нашей аналогии с водой, значительная потеря пакетов напоминает плохо протекающую трубу. Это должно быть исправлено, прежде чем любые другие улучшения могут быть сделаны.
Что вызывает потерю пакетов в вашей сети
Потеря пакета происходит не только по одной причине. Диагностика причины потери пакетов в вашей сети покажет вам, что вам нужно исправить.
- Пропускная способность сети и перегрузка . Основной причиной потери пакетов является недостаточная пропускная способность сети для требуемого соединения. Это происходит, когда слишком много устройств пытаются установить связь в одной сети.
- Недостаточно мощное оборудование. Любое оборудование в сети, которое маршрутизирует пакеты, может привести к потере пакетов. Маршрутизаторы, коммутаторы, брандмауэры и другие аппаратные устройства являются наиболее уязвимыми. Если они не могут «идти в ногу» с трафиком, который вы передаете через них, они будут отбрасывать пакеты. Думайте об этом как официанте с полными руками: если вы попросите их взять другую тарелку, они, вероятно, уронят одну или несколько других тарелок.
- Поврежденные кабели. Потеря пакетов может произойти на уровне 1, физическом сетевом уровне. Если ваши кабели Ethernet повреждены, неправильно подключены или слишком медленны для обработки сетевого трафика, они будут «пропускать» пакеты.
- Программные ошибки: ни одно программное обеспечение не является безупречным. Микропрограмма вашего сетевого оборудования или программного обеспечения вашего компьютера может содержать ошибки, которые могут привести к потере пакетов. В этом случае потребитель мало что может сделать. Вы можете попытаться решить проблему самостоятельно, но часто единственным способом решения проблемы является исправление микропрограммы от поставщика, поставляющего оборудование. Обязательно сообщайте о предполагаемых ошибках, чтобы найти поставщиков, которые помогут решить проблему.
Обнаружение потери пакета
Существует ряд программных приложений, которые могут обнаружить потерю пакетов в сети. Они каким-то образом «вынюхивают» пакеты, анализируя время их поездки или просматривая пакеты. Самый простой способ выяснить, существует ли потеря пакетов, — это пропинговать устройства в вашей сети.
-
В Windows откройте окно командной строки и используйте команду ping для настройки вашего маршрутизатора. Например, если локальный IP-адрес вашего маршрутизатора 127.0.0.1, следующая команда будет проверять связь с маршрутизатором:
В macOS или Linux откройте окно терминала и используйте следующую команду:
В Windows вы можете использовать tcpdump через оболочку Bash в Windows 10 или запустить Wireshark.
Процесс обнаружения пакетов довольно низок. После того, как вы установили способ проверки связи по сети, вам необходимо следовать практике изоляции и устранения, чтобы определить источник и причину потери пакета. Для этого в большинстве случаев потребуется пинговать большинство устройств в сети или запускать сценарии, которые выполняют то же самое. Знание топологии сети будет очень полезно здесь.
Определение причины потери пакета
Чтобы определить основную причину потери пакетов, вы должны начать с самой простой проблемы, чтобы обнаружить и вернуться обратно.
Сначала проверьте соединение Ethernet между устройствами. Проверьте наличие явных признаков физического повреждения и неправильного подключения. Эти кабели работают правильно? Решает ли переключение кабелей проблему? Проверьте маршрутизаторы и коммутаторы аналогичным образом.
Во-вторых, определите, достаточно ли пропускной способности для обработки необходимых устройств в вашей сети. Является ли какой-либо один аппаратный элемент обработкой значительно большего количества соединений, чем следует? Это часто процесс поиска и замены, пока проблема не решится. Вы также можете использовать «заведомо исправный» коммутатор и маршрутизатор, поменяв его местами с потенциально проблемными устройствами в сети, чтобы увидеть, исчезает ли потеря пакетов при удалении определенного устройства.
Как исправить потерю пакетов в вашей сети
Как только вы определили причину потери пакета, есть два исправления, которые могут быть применены.
Первый включает в себя замену проблемного оборудования. Если ваше расследование привело к неправильной работе устройства, замените его.
Если потеря пакета вызвана программными ошибками, вам нужно попытаться исправить ошибку самостоятельно, попытаться обойти ее или сообщить об ошибке поставщику и надеяться, что он исправит ее. Для внутреннего программного обеспечения может быть легче найти исправление. Для стороннего программного обеспечения это зависит. Если вы являетесь крупным клиентом, вы можете найти выход из положения. Если нет, возможно, вы застряли в ожидании, пока пытаетесь использовать обходной путь.
Потеря пакетов часто представляет собой медленную работу в сети. Конечно, что-то столь расплывчатое может быть вызвано множеством коренных причин. Если вы диагностируете неэффективную сеть, потеря пакетов должна быть в верхней части вашего списка. После того как потеря пакетов исключена, вы можете перейти к более сложным проблемам.
Лаги, джиттер и потеря пакетов: откуда берутся проблемы с неткодом и как их решать
Если вы когда-либо играли в онлайн-игры, то наверняка знаете о лагах не понаслышке. Пропущенный выстрел, который должен был попасть в цель; мяч, резко меняющий направление прямо в воздухе; вы вдруг снова оказываетесь на несколько шагов назад в том месте, где находились секундой ранее. В этом нет ничего сверхъестественного: это обычные артефакты систем, обеспечивающих совместную игру с людьми из других стран почти так же эффективно, как и с соседом по комнате. По крайней мере, большую часть времени.
В этой статье речь пойдет о самых базовых вещах, почему вообще возникает сетевая задержка, с какими еще проблемами неткода можно столкнуться, а также с тем, что можно сделать со своей стороны, чтобы улучшить ситуацию. Также разберем остальную часть конвейера между ПК и игровым сервером, который может повлиять на получение лучшего игрового опыта без задержек и прочих неприятностей.
Итак, почему вообще возникают лаги? Почему в 2021 году это все еще является проблемой — с мощностью современных компьютеров, повсеместным использованием широкополосного Интернета и спустя десятилетия попыток разработчиков решить эту проблему?
С точки зрения разработчиков, реализация даже базового мультиплеерного режима — задача непростая. Необходимо получать данные от множества игроков одновременно, неоднократно — тысячи раз в секунду — передавать эту информацию на некий центральный сервер, а затем возвращать обработанный результат на ПК каждого игрока.
Состояние игры должно быть идеально синхронизировано с минимальной задержкой независимо от того, имеете ли вы дело с игроками в одной локальной сети или с разных континентов. Поэтому вам придется придумать способ компенсации задержки игроков. При этом лучше избегать необходимости ожидания игроками, пока сервер сообщит им результаты их же собственных действий, ведь динамике это на пользу не пойдет. Для этого вам, вероятно, потребуется показать эффекты ввода каждого игрока сразу же, а затем уже сглаживать любые различия между ПК игрока и сервером таким образом, чтобы это было внешне неочевидно.
Мы не можем знать, что делают другие игроки, пока сервер не сообщит нам об этом. Поэтому мы вынуждены отображать действия других игроков в матче такими, какими они были в прошлом. Также достаточно большую проблему может составить читерство, поэтому необходимо убедиться, что игроки имеют ограниченный доступ к данным с сервера, не позволяющий компьютеру игрока принимать решения о том, что на самом деле произошло в игре — например, насколько успешен был выстрел или какое количество здоровья осталось у игрока.
С двумя-то игроками это реализовать достаточно сложно, а теперь представьте, каково организовать подобное для игры с 10, 20 или даже сотнями игроков на одном сервере. При разработке игры жанра battle royale со всеми ее особенностями реализация хорошего мультиплеера является одной из самых сложных частей разработки даже для опытной команды, поэтому неудивительно, что временами в игре могут возникать сетевые проблемы. Конечно, это не делает такие сбои менее раздражающими, и чем быстрее скорость и выше конкуренция в игре, тем больше такой опыт может помешать вам получить от нее удовольствие.
Помимо лагов и сбоев, могут возникнуть и другие проблемы с сетью: rubber banding, когда игровой мир возвращает вас туда, где вы были несколько секунд назад; получение урона сразу после того, как вы оказались за укрытием; промахи ваших собственных выстрелов, а то и вовсе потеря связи с игрой.
Так что же вызывает все эти проблемы?
Обычно в играх можно столкнуться с тремя сетевыми явлениями, каждое из которых по-разному влияет на пакеты данных с вашими вводами и игровые состояния, которые передаются между вашим компьютером и сервером.
Первое из них — задержка. Она возникает тогда, когда пакеты с данными слишком долго передаются серверу и затем возвращаются к игроку. Проще говоря, задержка — это скорость реакции вашего интернет-соединения, то есть время, необходимое для передачи данных с вашего устройства на сервер. Важно отметить, что задержка зависит от качества вашего интернет-соединения, а не от скорости.
Часто задержку путают с лагами, и хотя они не означают одно и то же, но имеют причинно-следственную связь. Лаг — это задержка прибытия пакета от источника к месту назначения или, с точки зрения геймплея, задержка между нажатием кнопки и ответом игры, выведенным на экран. То есть, по сути совокупность вообще всех явлений, которые происходят между этими двумя событиями.
Джиттер — это колебания задержки, означающие, что пакеты отправляются и принимаются с разной скоростью. Это похоже на плохой frame pacing: то ваш пинг меняется с 20 миллисекунд до секунды, то с секунды до 90 миллисекунд, а затем возвращается к 30 миллисекундам, которые были когда-то уже давно.
Потеря пакетов — это когда пакеты вообще не достигают места назначения. Она вызывает необходимость повторной отправки одних и тех же данных и и потенциально — странное поведение игры.
Конечно, наличие даже одной из этих проблем может довольно сильно раздражать. С точки зрения игрока, если вы не чувствуете, что контролируете игру, если ваша производительность страдает от проблем с сетью, велика вероятность, что вы просто закроете игру и больше в нее не зайдете. Для разработчиков и издателей это будет означать, что аудитория станет меньше, а если у вас free-to-play тайтл, это поставит под угрозу само его существование. Особенно важно это для соревновательных игр, поскольку любые повторяющиеся проблемы могут заставить игроков и организаторов турниров отказаться от их проведения до тех пор, пока проблемы не разрешатся.
Так почему же возникают подобные сбои?
Существуют три основных типа проблем с соединением:
проблемы «первой мили», вызванные домашней сетью вашего ПК и подключением к Интернету;
проблемы «средней мили», обусловленные перемещением данных по маршруту между вашим интернет-провайдером и игровым сервером;
проблемы «последней мили», связанные непосредственно с игровым сервером.
Обычно первая и последняя миля вызывают наименьшую задержку — в нашем примере это около одной миллисекунды. Средняя же миля имеет наибольшую задержку, ведь именно на ней пакеты преодолевают все географическое расстояние между вашим компьютером и сервером.
Начнем с того, что может улучшить со своей стороны сам игрок, — с проблем, связанных с ПК и домашней сетью.
Точно так же, как производительность игры ограничивается компонентами ПК, такими как центральный процессор или видеокарта, сетевое соединение тоже зависит от многих элементов. На то, как будут отправляться и приниматься пакеты данных, могут влиять настройки игры, сетевое оборудование вашего ПК и его драйверы, ваша операционная система и ее настройки. Но есть и физические аспекты — например, то, как ваш компьютер подключен к роутеру, какой у вас роутер и как он настроен — и, конечно же, подключение к Интернету, предоставляемое провайдером.
Пожалуй, наиболее важным для игр является переключение с беспроводного на проводной Интернет, что может значительно снизить задержки, джиттер и потерю пакетов. Помимо этого, возможно, стоит изучить роутеры с более гибко настраиваемой прошивкой — например, отдать предпочтение роутерам OpenWRT или pfSense — или просто повысить скорость вашего интернет-соединения — особенно в домашних условиях, где оно используется несколькими людьми, которые могут смотреть потоковые видео, загружать файлы из Интернета и выполнять другие задачи с высокой пропускной способностью одновременно. В идеале роутер должен иметь возможность отдавать приоритет критическим с точки зрения задачам, таким как онлайн-игры и видеоконференции, по сравнению с такими вещами, как воспроизведение видео с YouTube.
Наконец, полезно будет убедиться, что драйвера обновлены, вы отключили все приложения, которые используют значительный объем ЦП или пропускной способности сети в фоновом режиме, а также что сетевые настройки игры установлены правильно.
Теперь поговорим о средней миле, где у вас нет особого контроля над тем, что происходит, ведь пакет данных, отправляемый вашим компьютером, выходит в более широкий Интернет.
В первую очередь ваш пакет должен обработать местный интернет-провайдер. Но совсем скоро он перейдет к оптоволоконным магистралям, которые соединяют города и страны друг с другом. Здесь маршрут, по которому идет пакет, не обязательно окажется самым быстрым, и нет никакой гарантии, что пакет вообще доберется до конечного пункта назначения. Помните, что предшественник Интернета был разработан министерством обороны США для работы в условиях ядерной войны. Таким образом, доставляемость для него важнее скорости.
Сами маршруты со временем могут перенасыщаться и повреждаться, а потому изменяться. Так, вы можете обнаружить, что ваше соединение с определенным сервером может оказаться быстрым и надежным в один день, но на следующий уже совсем никуда не годится.
Так что же могут сделать разработчики игр для оптимизации на этом участке? Географическое расстояние критически влияет на пинг, поэтому можно открывать новые игровые серверы, которые находились бы в недостаточно обслуживаемых регионах базы игроков. Это уменьшит задержку для этих игроков и вероятность того, что какое-то соединение между игроком и сервером замедлится или полностью выйдет из строя. Но, конечно, запускать серверы повсеместно может оказаться непросто, особенно для небольшой компании с ограниченными ресурсами — да и это не решит всех проблем.
Другая идея состоит в том, чтобы вообще не полагаться на общедоступный Интернет для передачи пакетов от игрока к серверу — вместо этого пакеты могут передаваться через частные оптоволоконные маршруты, которые арендуют разработчики или их партнеры. Это дорого, но при использовании таких выделенных полос вы будете меньше зависеть от периодов занятости в вечернее время, когда возможны более высокие пинги и, как следствие, снижение надежности сетевого соединения.
Такой контроль над маршрутизацией также открывает некоторые интересные возможности для киберспорта, где отборочные и другие важные матчи проводятся онлайн. Можно настроить маршрутизацию и выбрать расположение сервера так, чтобы у обеих команд был одинаковый пинг, даже если одна из них находится географически ближе к серверу, и тем самым обеспечить участникам более справедливую игру.
Наконец, перейдем к последней миле в цепочке — игровым серверам.
До сих пор мы предполагали, что имеем дело с игроками, подключенными к одному выделенному серверу для проведения матча, поскольку часто это обеспечивает наилучший опыт. Так разработчики игр или их партнеры могут гарантировать, что на каждом сервере достаточно оборудования и обеспечивается самое быстрое подключение к Интернету, но есть и другие варианты.
Client hosting — это когда ПК одного из игроков сам по себе выступает в качестве сервера. Это хороший способ для разработчиков игр минимизировать затраты, но опыт каждого участника матча будет зависеть от качества соединения игрока-хоста. Таким образом, если такие игроки подключаются к сети через Wi-Fi или вовсе испытывают проблемы с подключением, другие игроки тоже столкнутся с лагами, джиттером и потерей пакетов.
Назначенный хост также имеет нулевую задержку для сервера, что дает ему огромное конкурентное преимущество перед остальными и, конечно, не является идеалом для соревновательных игр. При этом, если он покидает игру, необходимо найти другого хоста, что прерывает игру для всех участников на несколько секунд, пока не поизойдет так называемая миграция хоста.
Другой вариант — одноранговая (peer-to-peer) сеть, где игроки напрямую подключается друг к другу. Как правило, в таком случае тоже существует некий хост, который номинально отвечает за обработку новых соединений, поэтому проблема с миграцией хоста в данном случае сохраняется.
При таком способе подключения два игрока в одном регионе быстро увидят действия своих оппонентов, в то время как те, кто находятся далеко друг от друга, столкнутся со значительными задержками между действиями и выводом их результатов на экран — или, возможно, будут лучше стрелять, если это вы играете с высоким пингом. В любом случае, вам придется подстраиваться под каждого оппонента индивидуально, что может быть довольно сложно. Поэтому не так уж часто можно увидеть подобную серверную архитектуру вне файтингов «один на один» — хотя исключения, подобные Brawlhalla, конечно, существуют.
Помимо различных архитектур серверов, разработчикам игр необходимо оптимизировать пакеты, которые отправляются каждому игроку и обратно, и выбирать, как часто будет обновляться игровой мир. Чем чаще это происходит, чем выше частота тиков, тем быстрее должна выполняться обработка состояния игры на ПК игрока и на сервере, но в целом игра при этом становится более отзывчивой.
Некоторые игры работают с переменным весом тиков — например, королевские битвы, в которых скорость тиков повышается по мере выбывания игроков, или Counter-Strike, где сторонние и киберспортивные матчи проводятся со скоростью 128 тиков в секунду по сравнению со встроенным в игру матчмейкингом, работающим на 64 тиках.
Матчмейкинг — наиболее важная часть мультиплеера. Чтобы свести игроков в одном матче, вам, как разработчику игры, понадобится учитывать такие факторы, как пинг, уровень навыков, количество игроков в группе и выбранные каждым игроком карты и режимы. Каждый новый фактор существенно уменьшает размер пула для подбора игроков — что, в свою очередь, увеличивает время ожидания игры в среднем.
Даже небольшие инженерные улучшения или улучшенная маршрутизация в состоянии помочь с матчмейкингом, если это увеличит пул игроков — и, следовательно, позволит улучшить игровой опыт, не увеличивая время ожидания.
Наконец, последнее — методы борьбы с лагами, которые разработчики могут реализовать со своей стороны в коде.
Так называемое предсказание на стороне клиента часто используют в шутерах от первого лица. Его можно разделить на предсказание ввода и расчет траектории (dead reckoning): первое будет скрывать задержку действий самого игрока, в то время как второй — других игроков.
Предсказание ввода подчиняется следующей последовательности: клиент генерирует команду игрока, которая передается на сервер, где происходит вычисление следующего состояния игры, после чего оно отправляется обратно всем клиентам, и каждый из них отображает сцену на своем устройстве. Но все это время игроку тоже нужно что-то показывать, поэтому суть метода состоит в выполнении перемещения клиента локально, просто предполагая, что сервер примет команду. Недостатком его является то, что, если ответ сервера не будет соответствовать прогнозу клиента, возникнет резкое заметное изменение положения аватара игрока на экране.
Dead reckoning — это, по сути, алгоритм оценки положения объекта в виртуальном мире на основе его предыдущего положения, направления движения, скорости, ускорения и других параметров. Получив первый блок данных протокола состояния (protocol data unit, PDU) для объекта (например, персонажа другого игрока), каждый клиент начинает перемещение этого объекта, применяя согласованный алгоритм dead reckoning. Его движение обновляется при получении последующих PDU. Если для пакетов, несущих PDU, возникнет увеличенная задержка или вовсе их потеря, каждая копия виртуального мира продолжит показывать движение объектов в соответствии с алгоритмом до тех пор, пока не получит следующее обновление. Кроме того, при несоответствиях между статусом сервера и предсказанным клиентом некоторые игры могут сделать переход к новому статусу менее резким, используя алгоритмы сглаживания.
В дополнение к предсказанию клиента сервер может прибегать к методу компенсации сетевой задержки, чтобы правильно объединить виртуальные реальности, которые из-за проблем с неткодом испытывают рассинхронизацию. В таком случае сервер хранит историю последних позиций игроков (так, серверы, на которых работает движок Valve Source, сохраняют позиции игроков в течение 1 секунды), и когда ему нужно вычислить новое состояние, он сначала оценивает момент, когда действие было выполнено в клиентской версии состояния игрового мира. Другими словами, сервер «перематывает время» в соответствии с задержкой конкретного клиента, вычисляя выполнение введенной им команды (например, удалось ли выстрелу игрока поразить цель). Для этого используется следующая формула:
Время выполнения команды = Текущее время сервера — Задержка пакета — Интерполяция представления клиента
Иллюстрация выше представляет собой пример скриншота, сделанного на сервере сразу после того, как он подтвердил обращение. Красный хитбокс показывает позицию цели на клиенте, как это было некоторое время назад. Пока команда игрока (то есть, выстрел по цели) добиралась до сервера, цель продолжала двигаться влево. После того, как команда прибыла на сервер, для расчета факта попадания сервер восстанавливает позицию цели (синий хитбокс) на основе предполагаемого времени выполнения команды. Так сервер отслеживает траекторию выстрела и подтверждает или не подтверждает попадание.
Впрочем, иногда такой алгоритм приводит к ошибкам попадания, когда цель уже скрылась за укрытием. Эту проблему можно было бы решить, если бы клиент мог послать сообщение «попадание» вместо сообщения «выстрел». Однако серверы не могут разрешить клиентам сообщать о попаданиях по соображениям безопасности: некоторые клиенты могут этим воспользоваться в собственных целях и прибегнуть к читерству.
Мы рассмотрели основные причины различных задержек и других нежелательных аспектов производительности сети. Как у игрока, у вас есть немало опций, которые могут значительно улучшить качество вашего игрового опыта. Надежное сетевое соединение может сделать игру намного стабильнее и интереснее. Также мы рассмотрели варианты, что со своей стороны могут сделать разработчики и как они могут повлиять на игровой процесс.
Для получения дополнительной информации о лагах и о том, что вы можете с ними сделать, можно ознакомиться с каналом Battle(non)sense: там разбираются тесты сетевых проблем в разных играх и то, как разные технологии на них влияют. Прилагаем также и другие ссылки на видео и статьи о сетевом коде ниже:
Что такое потеря пакетов и как ее исправить?
Нет ничего более раздражающего, чем смотреть потоковую передачу вашего любимого шоу или фильма, и видео продолжает останавливаться, или ваша онлайн-игра продолжает заикаться, гарантируя, что вы никогда не одержите эту королевскую победу. Вы можете поблагодарить потерю пакетов за это неудобство.
Что такое потеря пакетов и как ее исправить? Прочтите, чтобы разобраться в проблеме, узнать, как проверить потерю пакетов и решить проблему с помощью различных методов.
Что такое пакет?
Одно электронное письмо можно представить как колонну автобусов, следующих классом 2021 года в Диснейуорлд. В каждом автобусе есть часть общего количества студентов — ваша электронная почта — вместе с информацией о том, куда он едет, откуда и кто сидит на сиденьях.
Сети по сути разбивают вашу электронную почту — и все другие данные — на эти шины или пакеты. В свою очередь, электронное письмо, которое вы отправляете маме, — это не просто один большой файл, забитый через Интернет. Вместо этого это конвой маленьких битов данных, поэтому все остальные могут одновременно отправлять электронные письма маме.
Как только все автобусы достигают заданного пункта назначения, их полезная нагрузка выгружается, чтобы воссоздать ваше сообщение в почтовом клиенте мамы.
Один пакет содержит три основных компонента:
Заголовок
- Исходный IP-адрес
- IP-адрес получателя
- Тип пакета
- Номер пакета
Полезная нагрузка
- Часть ваших общих данных
Трейлер
- Исправление ошибки
- Информация о конце пакета
Типичный размер пакета составляет около 1500 байт, хотя фактический размер может быть косвенным.
Что такое потеря пакетов?
Это когда один из наших метафорических автобусов не доходит до Диснейленда.
Имейте в виду, что колонна автобусов не делает прямой выстрел от вашего компьютера к месту назначения по единственной автостраде. Вместо этого конвой выбирает лучший маршрут через несколько небольших городов. Например, соединение вашего браузера может пройти 20 «остановок», прежде чем достигнет ближайшего хост-сервера Digital Trends. Это число может быть больше или меньше, в зависимости от вашего геологического положения.
Точно так же, как дороги реального мира могут помешать движению автобусов, иногда пакеты сталкиваются с похожими препятствиями и объездами. В цифровом мире эти пробки и изменение маршрута могут полностью блокировать движение некоторых автобусов до Диснейленда. Для предотвращения полного сбоя пакеты передаются повторно, но в результате возникает задержка при игре в онлайн-игры, прерывистые видеопотоки и прерывистый звук. Даже просмотр веб-страниц может показаться медленным.
Перегрузка сети — не единственный фактор
Потеря пакетов в первую очередь не связана с перегрузкой сети. Другие факторы также могут вызывать проблемы, например:
Неисправное оборудование: Поврежденные кабели, устаревшие модемы и маршрутизаторы, а также поврежденные драйверы сетевой карты могут иметь огромное влияние на производительность сети. Для крупных компаний проблемные сетевые коммутаторы и брандмауэры также вызовут проблемы.
Перегруженные устройства: В этом случае сетевое оборудование работает тяжелее, чем обычно, для обработки всего трафика. Эти устройства будут временно удерживать пакеты, пока не успеют их обработать и отправить. К тому времени, когда пакет достигает места назначения, он приходит слишком поздно. В некоторых случаях от него отказываются.
Неисправное программное обеспечение: Программное обеспечение, работающее на сетевом устройстве, может иметь недостатки — либо изначально, либо как побочный эффект недавнего обновления — требующие перезагрузки, исправления или полной переустановки.
Неправильные конфигурации: Сетевые устройства на одном канале, настроенные на два разных дуплексных режима (также называемые несоответствием дуплексного режима), будут принимать «коллизию» и отбрасывать или задерживать пакеты.
Беспроводная связь менее надежна: Из-за природы беспроводной связи у пакетов больше шансов исчезнуть в цифровой пустоте из-за радиочастотных помех, мощности сигнала и расстояния.
Угрозы безопасности: Хакеры могут контролировать сетевое устройство и использовать его для лавинной рассылки трафика, блокируя пункт назначения. Другой способ взлома может заставить сетевые устройства намеренно отбрасывать пакеты.
Как вы видите потерю пакетов?
Если вы подозреваете, что испытываете потерю пакетов, вы можете подтвердить это с помощью PowerShell (или командной строки) в Windows. Вот как:
Шаг 1: Щелкните правой кнопкой мыши кнопку «Пуск» и выберите Windows PowerShell (администратор) в меню питания.
Шаг 2: Тип пинг за которым следует адрес вашего маршрутизатора (вот как его найти). Например, вы можете ввести:
В результатах вы увидите процент рядом с Потерянный. Как показано ниже, вы хотите, чтобы это число было равно нулю, что означает, что все пакеты достигают места назначения.
Однако это чисто местное. Если вы хотите увидеть потерю пакетов между вашим компьютером и веб-сайтом, вам нужно будет пропинговать веб-адрес.
Например, введите следующее:
В нашем тесте результаты (в настоящее время) показывают нулевую потерю пакетов, что превосходно, учитывая, что между этим устройством записи и хост-сервером сайта около 11 переходов. Мы провели этот тест с помощью ПК с проводным подключением.
Однако, используя команду ping, вы отправляете и получаете только четыре пакета. Если вам нужен более длительный тест, введите вместо этого следующее:
пинг [insert address] -t
Этот тест будет продолжаться бесконечно, пока вы не введете Ctrl + C комбинация клавиш.
Если вам интересно узнать, сколько пролетов между вами и пунктом назначения, введите следующее:
Tracert [insert address]
Обычно результаты показывают ваш текущий IP-адрес вместе с адресами всех переходов, но мы удалили их со снимка экрана по соображениям безопасности.
В MacOS и Linux вы можете использовать Терминал для запуска команды Ping. В MacOS Терминал либо прикреплен к док-станции, либо обычно находится в Другой папка на панели запуска.
Если у вас установлен Linux на Chromebook, терминал, скорее всего, находится в папке приложений Linux на панели запуска.
Однако, как и Пинг -t в Windows, тест выполняется бесконечно, и вам потребуется ввести Ctrl + C или Command + C комбинация клавиш.
В этом случае мы заметили потерю пакетов при пинге Digital Trends с MacBook Air по беспроводному соединению 5GHs. Второй тестовый опрос локального маршрутизатора не показал никаких потерь с нашей стороны. Однако третий тестовый повторный пинг Digital Trends показал, что потеря пакетов сведена к нулю.
Тем не менее, случайные выпадения воля случается — ты просто не хочешь непрерывный потеря.
Как исправить потерю пакетов?
Многие проблемы, вызывающие потерю пакетов, могут быть даже не на вашем конце соединения, но это не значит, что вы не можете что-то сделать, чтобы попытаться улучшить его.
Перезагрузите компьютер
Программное обеспечение, работающее на вашем ПК — будь то драйвер, служба или приложение — может временно конфликтовать.
Например, вкладки в Google Chrome могут занимать 75% вашей системной памяти, что приводит к сбоям в работе других служб. В некоторых случаях перезагрузка может решить проблемы с программным обеспечением, которые могут повлиять на сетевой трафик.
Проверьте свои связи
VisualField / Getty Images
Это может показаться простым, но неправильно подключенные кабели могут вызвать всевозможные проблемы, поэтому всегда стоит проверять. Если вы используете проводное соединение с вашим ПК или ноутбуком, отключите кабель и снова подключите его. Сделайте то же самое с подключением вашего маршрутизатора к телефонной линии, чтобы быть уверенным вдвойне.
Обновление программного обеспечения
Конечно, обновления могут раздражать, поскольку они могут привести к временной остановке. Но они также необходимы, особенно если старая прошивка содержит недостатки, из-за которых базовое устройство теряет ваши пакеты.
Убедитесь, что на вашем ПК установлены текущие сетевые драйверы и операционная система, а также все программное обеспечение для доступа к сети, которое вы используете, например Google Chrome и Mozilla Firefox.
Вы используете роутер? Убедитесь, что прошивка актуальна.
Перейти к проводным соединениям
Крейг Ллойд / Цифровые тенденции
Беспроводная связь отлично подходит для перемещения по дому, слушая Маленькая акула на вашем телефоне, но соединение может стать жертвой радиочастотных помех, мощности сигнала и расстояния. Если вы не видите реальных проблем с подключением, продолжайте как обычно.
Но если вы испытываете заметную задержку на настольном компьютере, ноутбуке, телевизионном приставке, игровой консоли или аналогичном устройстве, переход на проводное соединение может иметь большое значение. Вы не только получаете более высокую пропускную способность, но и большинство кабелей Ethernet также экранированы, что снижает помехи.
Отключите возможные помехи
Для беспроводных устройств могут быть проблемой радиочастотные помехи. Это означает, что вам следует отключить другие беспроводные устройства, которые не используются, например беспроводные наушники, динамики и даже Bluetooth-соединения на смартфонах и планшетах. Вы также можете рассмотреть возможность использования настроек вашего маршрутизатора для изменения беспроводного канала, чтобы снизить конкуренцию с Wi-Fi вашего соседа.
Если ваши устройства подключены, убедитесь, что кабели не задрапированы рядом с чем-либо, что может вызвать электрические и магнитные помехи, особенно если кабели неэкранированы. Если вы используете соединение Powerline, электрическая схема вашего дома или офиса может вызвать проблемы в дополнение к «шуму», создаваемому крупными приборами.
Пересмотрите настройки качества обслуживания
Если другие пользователи в вашем доме конкурируют с вашим подключением, и ваша работа должна иметь приоритет, вы можете назначить полосу пропускания, покопавшись в своем маршрутизаторе и настроив параметры качества обслуживания для определения приоритета трафика. Это означает выделение вашим устройствам большей пропускной способности по сравнению с другими.
Как добраться до этих настроек зависит от маршрутизатора. Найдя их, вы можете создать «правила», которые распределяют определенный трафик, услуги или устройства с уровнем пропускной способности, например «наивысшим» или «максимальным». Как правило, вы должны установить общую пропускную способность вашей сети для загрузки и выгрузки меньше, чем разрешено вашей подпиской, чтобы компонент QoS имел место для внесения изменений.
Перезапустить все
123RF
Где-то между вами и Всемирной паутиной какой-то цифровой гремлин съел ваши пакеты. Хотя проблема может быть не на вашем конце подключения к интернет-провайдеру, перезапуск всего — отличный способ устранить неполадки, не вдаваясь в детали. Отключите модем и / или маршрутизатор и удерживайте кнопку питания в течение 30 секунд, затем снова подключите его.
Для всех других подключенных устройств перезагрузка также является хорошей идеей — это никогда не повредит. Локальная сеть назначает вашему устройству адрес, который может измениться при перезагрузке сети (если он не статический). Вы можете попробовать отключить Wi-Fi или на время отсоединить кабель Ethernet, но проблемы с подключением могут возникать до тех пор, пока вы не перезагрузитесь.
Замените или обновите свое оборудование
Иногда причиной потери пакетов может быть устаревшее или неисправное оборудование. Обновление маршрутизатора и / или модема — последнее средство, но если вы пробовали все остальное, лучше всего заплатить за что-то новое. В конце концов, оно того стоит. У нас есть большой выбор в нашем руководстве по лучшие роутеры можно купить в 2020 году.
Если вы подозреваете, что в большей степени виновато сетевое соединение вашего настольного компьютера, вы также можете попробовать добавить дополнительную сетевую карту и подключиться к ней. Однако это не то, что вы можете сделать с ноутбуками или планшетами.
Если ваша технология не работает, это может быть неприятное и стрессовое время. Независимо от того, отстают ли ваши онлайн-игры или вы не можете транслировать шоу Netflix, которым вы одержимы, есть решение. Ключевой вывод в отношении устранения потери пакетов — это выяснение правильной причины. Другими словами, вы должны правильно диагностировать его, чтобы правильно решить проблему.
Потеря пакетов: проблемы, причины и решения в 2022 году
В этой статье мы рассмотрим очень важную проблему коммуникационных сетей: потерю пакетов. Поэтому давайте начнем с самого начала. Что такое потеря пакетов?
Прежде чем приступить к описанию, важно знать, что информация, передаваемая по сетям, циркулирует в виде фрагментов информации (пакетов). Эти пакеты содержат необходимую информацию, так что когда они доходят до получателя, он/она должен иметь возможность сортировать информацию и использовать ее.
Зная это, мы можем понять, что когда мы говорим о потере пакетов, мы имеем в виду, что один или несколько фрагментов информации не достигли места назначения, как ожидалось.
Проблемы, возникающие при потере пакетов
Существует множество проблем, возникающих из-за потери пакетов. Все они могут быть очень раздражающими, и приведенные здесь — одни из самых частых.
- Устаревшая информация. Особенно это заметно в видеоиграх, мы можем принимать решения на основе устаревшей информации, с задержкой в несколько секунд, что может привести к бессвязным действиям или даже причинить вред.
- Медленная загрузка. Если мы пользуемся Интернетом, мы можем заметить чрезмерное время загрузки при доступе к веб-страницам или, особенно, при просмотре мультимедийного онлайн-контента (социальные сети, YouTube, прямые трансляции…).
- Прерывание загрузки. Возможно, что из-за низкой скорости передачи пакетов загрузка может быть полностью прервана. Может случиться так, что веб-сайт не завершает загрузку и останавливает работу, или загрузка файла не завершается. Еще один очень заметный эффект проблем с передачей информации — иногда мы не можем отправить электронне письмо, особенно если оно содержит вложения или много весит.
- Закрытие соединений. Удаленные серверы, к которым мы пытаемся получить доступ, например, веб-страницы, скачивание файлов, онлайн-видео и т.д., закрывают наши соединения, когда канал остается открытым слишком долго без чистой связи. По соображениям безопасности на многих сайтах соединение будет закрыто, если по истечении определенного времени оно не будет успешно завершено.
- Неполная информация. На открываемых веб-страницах могут отображаться не все элементы, неполные изображения или даже формат веб-сайта может быть совершенно неправильным.
Удаленные сети, единый мониторинг, интеллектуальные пороговые значения… откройте для себя мониторинг сети в версии Pandora FMS Enterprise.
Причины потери пакетов
Ниже перечислены некоторые распространенные причины потери пакетов.
- Поврежденное оборудование. Если оборудование, которое обрабатывает этот сетевой трафик, выходит из строя, очень вероятно, что произойдет потеря пакетов. Потери могут происходить из-за повреждения сетевой карты, портов или проводных соединений, неисправностей маршрутизатора или просто плохой проводки в вашем районе или здании.
- Мощность оборудования (узкие места). Очень часто бывает, что мы имеем достаточную скорость просмотра веб-страниц и что объем передаваемых нами данных является управляемым, но нас ограничивают возможности оборудования. Представьте, что вы заключили контракт на увеличение скорости, перейдя с 1 ГБ на 10 ГБ. Однако отчеты о мониторинге сообщают нам, что одно из устройств работает на 100% мощности в течение длительных периодов времени. Если одна из точек, через которую проходит трафик, например, коммутатор, не имеет возможности обрабатывать и правильно управлять объемом трафика, который она получает, в этой точке будет происходить накопление, что приведет к так называемым «узким местам».
- Перегрузка сети. Информация проходит через множество устройств и ссылок. Если один из этих пунктов не полностью загружен, создается очередь, в которой информация будет проходить медленнее и даже может быть отброшена через некоторое время. Эта не то же самое, что появление узкого места, в этом случае не предполагается только одна точкой перегрузки, это может случится одновременно во всех точках.
- WiFi. В сетях Wi-Fi время от времени происходит потеря пакетов, что является абсолютно нормальным явлением. На этот тип беспроводной связи влияют зачастую неконтролируемые элементы, такие как помехи или «шум» в беспроводной сети, близость к другим беспроводным устройствам, расстояние, физические элементы (стены) и т.д.
- Ошибки в программном обеспечении сетевых устройств. Программное обеспечение, обеспечивающее нормальную работу сетевых устройств, может иметь определенные ошибки или баги. Как и при разработке любого программного обеспечения, обычно появляются обновления для решения возможных проблем, поэтому рекомендуется поддерживать программное обеспечение наших устройств в актуальном состоянии, чтобы избежать возможных ошибок, которые могут привести к неправильной работе функций наших устройств.
Мониторинг потери пакетов
Если мы сталкиваемся с какой-либо из этих проблем, мы должны определить ее причину. В этом нам поможет мониторинг потери пакетов. С помощью Pandora FMS и плагина packet_loss.sh мы можем получить всю необходимую информацию и иметь возможность отслеживать потерю пакетов.
Он отправляет сетевую проверку (ping) на удаленный компьютер, который может быть IP-адресом, именем хоста или веб-сайтом, и так же проверяет, произошла ли потеря пакетов в отправленной информации.
При развертывании мониторинга потери пакетов в консоли Pandora FMS мы увидим один модуль с информацией, которую собирал плагин, чтобы посмотреть, есть ли моменты в течение дня, в которые эти потери пакетов происходят неоднократно.
На следующем графике мы анализируем потерю пакетов в точке доступа Wi-Fi в нашем офисе. Как видно, обычно потери пакетов практически отсутствуют, и нет никакого повторяющегося паттерна. Однако можно отметить период в несколько часов, в течение которого наблюдалась полная потеря пакетов. На основании этой информации можно попытаться выяснить причину:
Теперь мы проанализируем график потери пакетов на выходе из Интернета. Интерпретируя данные, мы видим, что потеря пакетов происходит постоянно, но значения низкие, без больших пиков, которые могли бы указывать на другие проблемы:
Как только мы узнаем об этой потере, мы можем начать более внимательно изучать причину проблемы и находить решения.
Хорошим способом перепроверки информации является параллельный мониторинг времени потери пакетов и задержки. С помощью этих двух данных мы можем установить корреляцию, поскольку более высокое время задержки обычно совпадает с интервалами потери пакетов.
На следующих графиках показана корреляция между секундами задержки (график 1) и потерей пакетов (график 2):
Если вам интересно узнать больше о проверке отклика и задержки, вы можете взглянуть на это видео:
Вся эта информация может быть собрана в отчетах, которые сочетают в себе графическое отображение и фактические данные, полученные в ходе мониторинга:
Решение проблемы потери пакетов
Универсального решения этой проблемы не существует, поскольку, как уже говорилось выше, она может быть вызвана целым рядом факторов. Но здесь мы предлагаем несколько основных проверок, которые следует провести, чтобы исключить причины и потенциально устранить проблемы.
- Обзор соединений. Проверьте, нет ли плохих или неправильно подключенных кабелей или портов.
- Перезапуск маршрутизатора и оборудования. Базовый инструмент, который можно использовать для решения множества проблем, связанных с компьютером.
- Использование кабельного соединения. Если возможно, проводное соединение почти всегда обеспечивает более высокое качество связи и, соответственно, снижение потерь пакетов.
- Обновление программного обеспечения на сетевых устройствах. Если в программном обеспечении как нашей операционной системы, так и наших сетевых устройств есть ошибки, которые приводят к сбою в работе какой-либо функции, всегда рекомендуется обновить его до последних версий. Важно отметить, что если мы установили, что потеря пакетов происходит с разных компьютеров, мы ничего не решим, обновив их операционные системы, так как проблема почти наверняка не в самих компьютерах.
- Замена неисправного или неэффективного оборудования. Если мы определили, что проблема в одном из наших сетевых устройств, у нас может не быть выбора, кроме как заменить его на более производительное.
Наконец, помните, что Pandora FMS — это гибкое программное обеспечение для мониторинга, способное контролировать устройства, инфраструктуры, приложения, сервисы и бизнес-процессы.
Вы можете взглянуть на мониторинг сети в Pandora FMS, посмотрев это видео:
Вы хотите узнать больше о том, что может предложить вам Pandora FMS? Узнайте об этом, нажав здесь.
Если вам необходимо контролировать более 100 устройств, вы также можете воспользоваться БЕСПЛАТНОЙ 30-дневной демо-версией Pandora FMS Enterprise. Получите ее здесь.
Присылайте нам свои запросы. Команда Pandora FMS будет рада помочь вам!
El equipo de redacción de Pandora FMS está formado por un conjunto de escritores y profesionales de las TI con una cosa en común: su pasión por la monitorización de sistemas informáticos.
Pandora FMS’s editorial team is made up of a group of writers and IT professionals with one thing in common: their passion for computer system monitoring.