Пинг — это время, за которое данные доходят от клиента (устройства) до сервера и обратно. Его измеряют в миллисекундах и он показывает задержку передачи данных. Пинг важен для оценки качества соединения, особенно в онлайн-играх и видеозвонках.
Для измерения пинга используют утилиту ping — она отправляет небольшие пакеты данных на сервер и замеряет время, за которое они возвращаются.
Сегодня разберём, что такое пинг, попингуем серверы с помощью команды ping и узнаем, какие факторы влияют на время отклика.
Что такое пинг
Пинг — это способ проверить, как быстро данные проходят через сеть от компьютера до удалённого сервера и обратно. Название придумал разработчик Майк Мюсс в 1983 году, когда создавал утилиту для диагностики сетей. Слово «пинг» похоже на звук эхолота, который прощупывает морское дно, отправляя звуковую волну, а затем «слушает» возвращённое эхо и по разнице во времени определяет расстояние до дна в каждой точке.
Почти в каждой операционной системе, поддерживающей сетевые функции, есть утилита ping
. С её помощью отправляют запросы на нужный сервер.
Когда мы выполняем команду ping
, компьютер отправляет небольшой пакет данных с запросом к удалённому серверу. Тот должен «откликнуться» и отправить пакет обратно. В процессе пинга измеряется показатель RTT — Round Trip Time. Это время в миллисекундах, которое требуется, чтобы пакет данных прошёл туда и обратно. Чем меньше RTT, тем быстрее данные доходят до сервера и возвращаются к пользователю.
Зачем нужен пинг
Пинг позволяет понять, насколько быстро устройства реагируют на внешние запросы. Чем меньше пинг, тем быстрее связь, и это особенно важно во время видеозвонков, работы с удалёнными серверами, в онлайн-играх и видеостриминге.
Допустим, вы подключаетесь к удалённому рабочему столу — тогда пинг определяет, насколько быстро ваши действия будут отображаться на экране. Если пинг низкий, всё будет отлично: двигаете мышкой, открываете программы — и всё это видно без задержек, как на своём компьютере. Но если пинг высокий, то каждое действие выполняется с задержкой: вы двигаете мышкой, а курсор начнёт движение спустя какое-то время. Какое — зависит от пинга.
Если интернет начинает зависать или работать медленно, проверка пинга через встроенную в ОС команду ping поможет выяснить, есть ли проблемы с соединением и маршрутизацией данных.
Пинг также используют для мониторинга сети и проверки доступности подключённых устройств. Если администратор сети хочет узнать, какие устройства сейчас активны, то пингует сеть и смотрит, что за устройства отвечают. Регулярные проверки с помощью пинга позволяют убедиться, что все устройства в сети остаются на связи и правильно работают.
От чего зависит пинг
Пинг может меняться по разным причинам, и его значение зависит от разных факторов: физического расстояния, загруженности сети и так далее.
Физическое расстояние. Чем дальше сервер, к которому мы подключаемся, тем дольше данные идут до него и обратно. Это связано с тем, что пакеты данных проходят через множество промежуточных точек и маршрутизаторов, что добавляет время к задержке.
Пропускная способность соединения. Высокая скорость передачи данных не всегда означает низкий пинг. Она помогает передавать большие объёмы данных за короткое время, но пинг зависит больше от задержки между устройствами. Например, даже если у нас быстрое соединение, но сервер находится далеко или сеть перегружена маршрутизаторами, пинг может оставаться высоким.
Потери пакетов. Если в сети возникают проблемы — перегрузка или ошибки в маршрутизации, то пакеты могут теряться. В таких случаях система вынуждена повторно отправлять данные, что увеличивает время отклика и, соответственно, пинг.
Загруженность сети. Когда в сети активно работают несколько устройств или процессов, это создаёт дополнительную нагрузку, что увеличивает время обработки и передачи данных. Пинг становится выше, потому что пакеты конкурируют за пропускную способность сети.
Тип соединения. Оптоволоконное соединение обычно даёт низкий пинг, так как поддерживает высокую скорость и стабильность. Мобильное или спутниковое соединение имеет более высокие задержки из-за особенностей передачи сигнала и расстояния, которое сигналу нужно преодолеть.
Как проверить значение пинга
Чтобы проверить, может ли операционная система связаться с выбранным сервером или сайтом в интернете, используем команду ping
. Для этого понадобится командная строка или терминал. В Windows используем сочетание клавиш Win + R, в появившемся окошке пишем cmd
и нажимаем Enter. В macOS нажимаем ⌘ + пробел
, пишем terminal
и тоже нажимаем Enter.
После этого в терминале или командной строке пишем команду ping
и адрес, который хотим пропинговать. Дальше произойдёт следующее:
- Компьютер отправит запрос на выбранный сервер и засечёт время.
- Как только придёт ответ от сервера — выводится время, за которое запрос дошёл до места и вернулся обратно.
- Если ответа нет — будет сообщение, что превышено время ожидания.
- Запросы будут отправляться до тех пор, пока мы не нажмём Ctrl + С (или если мы заранее не указали, сколько сделать попыток).
Если мы всё время получаем сообщение, что превышено время, то, скорее всего, проблема у провайдера: запросы отправляются, но по каким-то причинам не возвращаются.
Попробуем пропинговать сайт «Кода» из двух городов: один во Вьетнаме, другой в России (Москва) и посмотрим, как меняется пинг. Мы можем явно указать количество пакетов через параметр -n
(для Windows) или -с
(для Linux или Mac). Для примера отправим 4 пакета:
ping -c 4 thecode.media
Вот Москва:
А вот пинг из Вьетнама:
В результате мы получили 4 сообщения, где указано отправленное число байт, номер пакета и время, за которое пакет вернулся обратно. Параметр ttl
расшифровывается как «время жизни пакета» (time to live). Он указывает на количество маршрутизаторов, через которые прошёл пакет, в нашем случае — 57 и 41. Поскольку все 4 пакета успешно вернулись, это говорит о стабильном соединении.
Теперь про среднее время отклика (RTT), он же пинг. В первом случае он равен примерно 364 миллисекундам, и это может быть связано с расстоянием до сервера или загруженностью сети. А при пинге того же сервера из города, который расположен недалеко от дата-центра с сервером «Кода», пинг уже 17 миллисекунд — ответы прилетают намного быстрее.
Онлайн-сервисы для проверки пинга
Проверить пинг можно не только через командную строку, но и с помощью сторонних онлайн-сервисов. Один из популярных — Speedtest.net. Он не только показывает пинг в миллисекундах, но и измеряет скорость загрузки и выгрузки данных. Это удобно, если хотите сразу получить полную картину вашего интернет-соединения.Другие сайты — Pingtest и Fast.com. Они также без дополнительных настроек измеряют скорость интернета. Latency внизу — это как раз про пинг:
Если нужно что-то посерьёзнее, чтобы сделать полный мониторинг сети, то подойдут такие сервисы:
- PingPlotter — анализирует пинг и визуализирует маршрут данных через узлы и маршрутизаторы, показывает, где возникает задержка. Есть бесплатная версия с базовыми функциями, продвинутые возможности доступны по подписке.
- Ping Test Live — позволяет проверить пинг до серверов по всему миру, что помогает оценить глобальную производительность соединения.
- SmokePing — опенсорсный инструмент, мониторит пинг в реальном времени, делает графики для долгосрочного анализа стабильности соединения.
Технические аспекты пинга
В предыдущем разделе мы пропинговали сайт, а теперь подробнее разберёмся, что же там происходит под капотом.
Когда мы запускаем команду ping
для проверки задержки до удалённого сервера, начинается процесс, основанный на использовании протокола ICMP (Internet Control Message Protocol). Протокол ICMP предназначен для отправки диагностических сообщений и проверки состояния соединения между устройствами в сети. При помощи ICMP отправляются ICMP-пакеты данных (эхо-запросы и эхо-ответы) для проверки пинга.
ICMP-пакет содержит несколько полей.
- Тип сообщения: указывает, какой тип ICMP-запроса отправлен. Например, тип Echo Request — для запроса или Echo Reply — для ответа.
- Код сообщения: уточняет тип сообщения и даёт дополнительную информацию (успешность или ошибку). Для эхо-запроса и эхо-ответа значение этого кода будет равно 0.
- Контрольная сумма: используется для проверки того, что данные в пакете не были повреждены по пути.
- Переменные поля: содержат дополнительные данные, которые зависят от типа ICMP-пакета. В эхо-запросах и ответах здесь может быть ID пакета, последовательный номер и дополнительные данные.
- Поле данных: основное содержимое пакета. Может содержать произвольные данные, которые добавляются для диагностики.
1 байт Тип сообщения | 1 байт Код сообщения | 2 байта Контрольная сумма |
4 байта Переменные поля: зависят от типа ICMP-пакета | ||
Поле данных |
Такая структура минимальна и делает ICMP-пакеты очень маленькими. Они не нагружают сеть, поскольку их основная задача — диагностика и проверка связи между устройствами.
Во время отправки команды ping
устройство создаёт запрос на отклик. В пакет добавляется информация — IP-адрес источника и назначения, а также уникальный номер для отслеживания. Пакет отправляется по сети к целевому устройству и проходит через маршрутизаторы и промежуточные узлы, пока не достигнет своей цели. Сервер или устройство, которое получило запрос, генерирует ответ и отправляет его обратно на исходное устройство. Устройство, с которого был отправлен запрос, принимает ответ и рассчитывает время в мс, за которое пакет прошёл туда и обратно.
Какой пинг считается нормальным
Нормальным считается пинг, который обеспечивает комфортное использование интернета и не вызывает заметных задержек. Степень нормальности будет зависеть от того, для чего используется интернет, но обычно всё делится примерно так:
- Отличный пинг (меньше 30 мс) — почти незаметен. Идеальный вариант для онлайн-игр, где важна мгновенная реакция и минимальная задержка.
- Средний пинг (30–50 мс) — всё ещё достаточно быстрый. Подходит для игр и повседневного использования интернета.
- Немного медленный пинг (50–100 мс) — почти не ощущается при обычном просмотре сайтов, но в играх может быть заметно небольшое отставание.
- Медленный пинг (100–500 мс) — для просмотра сайтов не критично, но в играх и видеозвонках задержки будут ощутимыми.
- Очень медленный пинг (больше 500 мс) — вызывает заметные задержки почти во всём, от открытия сайтов до работы с приложениями в реальном времени.
В среднем для игр и видеозвонков лучше стремиться к значению ниже 50 мс, а для нетребовательных целей — до 100 мс.
Пинг в онлайн-играх
В онлайн-играх от пинга может зависеть результат игры. Чем ниже пинг, тем быстрее действия игрока доходят до сервера и отображаются в реальном времени. Особенно это важно в соревновательных играх, где каждая миллисекунда может стать решающей. В зависимости от типа игры значение хорошего пинга будет различаться.
В шутерах от первого лица или гонках нормальным считается пинг менее 50 мс, то есть тот, который практически не ощущается. Когда пинг высокий, данные между устройством игрока и сервером передаются медленно. Тогда движения персонажей или другие действия в игре происходят с задержкой. Персонаж может выстрелить, но из-за высокого пинга выстрел будет «отставать» от фактического времени действия. А если пинг очень высокий, сервер даже может не обработать действия.
В массовых многопользовательских онлайн-играх пинг в пределах 250 мс вполне допустим, поскольку там скорость реакции не так критична. Но если вы участвуете в PvP-сражениях в реальном времени, то важно, чтобы пинг был не выше 150 мс, иначе шансы на победу могут снизиться. Хотя есть и такие геймеры, которые отказываются играть с пингом выше 30 мс.
Разработчики игр знают, что пинг может испортить геймерский опыт, поэтому внедряют специальные технологии, чтобы снизить его влияние. Обычно это механизмы лаг-компенсации и предиктивные алгоритмы. Когда в игре используется механизм лаг-компенсации, сервер пытается скорректировать действия игроков с высоким пингом, чтобы уменьшить влияние задержки и выровнять игровой процесс для всех участников.
Технически это работает так. Когда игрок с высоким пингом что-то делает — стреляет или движется — его команда приходит на сервер с задержкой. Сервер фиксирует это действие, сравнивая его с состоянием игры на момент отправки команды, а не когда она фактически дошла. Сервер пересчитывает событие так, как если бы оно произошло в момент отправки, а не получения.
Такая корректировка снижает задержку и делает действия игрока более синхронизированными с игровым процессом. Но это может добавить игроку с более высоким пингом преимущества: его действия корректируются постфактум, что может привести к «фантомным» выстрелам или попаданиям по противнику, которые игрок с низким пингом воспринимает как ошибку.
Как уменьшить пинг
Пинг зависит от времени суток, сервера, к которому мы подключаемся, и локальной загруженности сети. Если используете старое устройство (модем или роутер) от интернет-провайдера, то улучшить пинг можно, обновив оборудование (но это помогает не всегда). Чтобы понять, есть ли потенциал для улучшения, нужно проверить пинг до местного сервера. Если он составляет 5–20 мс, значит, всё хорошо, менять оборудование не нужно.
А вот что ещё можно сделать, чтобы улучшить пинг:
- Использовать проводное подключение. Обычно проводное подключение через Ethernet намного стабильнее и быстрее, чем Wi-Fi.
- Подключиться к ближайшему серверу. Если есть возможность выбирать сервер (например, в онлайн-играх), то выбирайте тот, который находится ближе к вам. Чем меньше расстояние, тем быстрее данные доходят до сервера и обратно.
- Закрыть фоновые программы. Отключите или закройте приложения, которые используют интернет-соединение в фоновом режиме (обновления, стриминговые сервисы). Это освободит пропускную способность и снизит нагрузку на сеть.
- Перезагрузить роутер :-) Иногда это помогает устранить временные сбои в соединении и улучшить стабильность интернета.