Диагностика сетевого подключения | база знаний Serverspace

Steam community :: guide :: что такое ping? как правильно пинговать? | what is ping? how to ping?

Основное понятия пинга и с чем его едят!

The basic concepts of ping and what it eats!

§

Ping — сетевая диагностика на ip-уровне

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

Для обмена служебной и диагностической информацией в сети используется специальный протокол управляющих сообщений ICMP (Internet Control Message Protocol). Команда ping позволяет выполнить отправку управляющего сообщения типа Echo Request (тип равен 8 и указывается в заголовке ICMP-сообщения) адресуемому узлу и интерпретировать полученный от него ответ в удобном для анализа виде. В поле данных отправляемого icmp-пакета обычно содержатся символы английского алфавита. В ответ на такой запрос, опрашиваемый узел дожжен отправить icmp-пакет с теми же данными, которые были приняты, и типом сообщения Echo Reply (код типа в ICMP-заголовке равен 0) . Если при обмене icmp-сообщениями возникает какая-либо проблема, то утилита ping выведет информацию для ее диагностики.

Формат командной строки:

ping [-t] [-a] [-n число] [-l размер] [-f] [-i TTL] [-v TOS] [-r число] [-s число] [[-j списокУзлов] | [-k списокУзлов]] [-w таймаут] конечноеИмя

Параметры:

-t – Непрерывная отправка пакетов.
Для завершения и вывода статистики используются комбинации клавиш
Ctrl Break (вывод статистики и продолжение), и Ctrl C (вывод статистики и завершение).
-a – Определение адресов по именам узлов.
-n число – Число отправляемых эхо-запросов.
-l размер – Размер поля данных в байтах отправляемого запроса.
-f – Установка флага, запрещающего фрагментацию пакета.
-i TTL – Задание срока жизни пакета (поле “Time To Live”).
-v TOS – Задание типа службы (поле “Type Of Service”).
-r число – Запись маршрута для указанного числа переходов.
-s число – Штамп времени для указанного числа переходов.
-j списокУзлов – Свободный выбор маршрута по списку узлов.
-k списокУзлов – Жесткий выбор маршрута по списку узлов.
-w таймаут – Максимальное время ожидания каждого ответа в миллисекундах.

Примеры использования:

ping google.com – эхо-запрос к узлу с именем google.com с параметрами по умолчанию – количество пакетов равно 4, длина массива данных = 32 байта.

ping -6 ya.ru – пинг узла ya.ru с использованием протокола Ipv6

ping -a 192.168.1.50 – выполнить пинг с определением имени конесного узла по его адресу.

ping -s 192.168.0.1 computer – пинг узла computer от источника 192.168.0.1. Используется когда на компьютере имеется несколько сетевых интерфейсов.

ping w 5000 ya.ru – пинг с таймаутом ожидания равным 5 секунд ( по умолчанию — 4 сек).

ping -n 5000 -l 1000 msconfig.ru – опрос узла msconfig.ru 5000 раз, пакетами с данными длиной в 1000байт. Допустимая максимальная длина данных — 65500.

ping -n 1 -l 3000 -f ya.ru – пинг с запретом фрагментации пакета.

ping -n 1-r 3 ya.ru – отправить 1 эхо-запрос на узел ya.ru с отображением первых 3-х переходов по маршруту.

ping -i 5 ya.ru – пинг с указанием времени жизни TTL=5. Если для достижения конечного узла потребуется большее количество переходов по маршруту, то маршрутизатор, прервавший доставку ответит сообщением ”Превышен срок жизни (TTL) при передаче пакета.”

  • Применение PING для пошаговой диагностики проблем доступа в Интернет:
  • Обобщенная схема соединения компьютера (планшета, ноутбука домашней сети) с удаленным конечным узлом можно представить следующим образом:

    Схема подключения к целевому узлу через интернет

    В качестве домашней сети используется наиболее распространенная сеть с IP-адресами 192.168.1.0 /255.255.255.0 . Речь идет об IPv4 – IP протоколе версии 4, где для адресации используется 4 байта. IP- адреса принято представлять в виде десятичных значений байтов, разделяемых точками. Каждое устройство в сети должно иметь свой уникальный адрес. Кроме адреса, в сетевых настройках используется маска сети ( маска подсети). Маска имеет такой же формат представления, как и адрес. Комбинация адреса и маски определяет диапазон адресов, которые принадлежат локальной сети – 192.168.1.0-192.168.1.255. Первый и последний адреса диапазона не назначаются отдельным сетевым устройствам, поскольку используются в качестве адреса сети и широковещательного адреса. Обычно адрес роутера делают равным 192.168.1.1 или 192.168.1.254. Это не является обязательным стандартом, но на практике используется довольно часто. Единичные биты маски определяют постоянную часть IP-адреса сети, а нулевые — выделяемые отдельным узлам. Значение 255 – это байт с установленными в единицу битами. Маска сети служит средством определения диапазона IP-адресов, принадлежащих локальной сети. Устройства с такими адресами достижимы локально, без использования маршрутизации. Маршрутизация — это способ обмена данными с сетевыми устройствами не принадлежащими к данной локальной сети через специальное устройство – маршрутизатор ( router, роутер ). Маршрутизаторы представляют собой специализированные компьютеры с несколькими сетевыми интерфейсами и специализированным программным обеспечением обеспечивающим пересылку IP-пакетов между отправителем и получателем, находящимися в разных сетях. В такой пересылке могут участвовать несколько маршрутизаторов, в зависимости от сложности маршрута. Домашний роутер — простейшая разновидность маршрутизатора, который обеспечивает пересылку пакетов, адресованных во внешние сети следующему по маршруту маршрутизатору в сети провайдера. Следующий маршрутизатор проверяет достижимость адреса конечного узла локально, и либо пересылает ему данные, либо передает их следующему маршрутизатору в соответствии с таблицей маршрутов. Так происходит до тех пор, пока данные не достигнут получателя или закончится время жизни пакета.

    :/>  Как открыть «Управление печатью» в Windows 10

    Команда PING можно использовать для диагностики отдельных узлов:

    ping 127.0.0.1 – это пинг петлевого интерфейса. Должен выполняться без ошибок, если установлены и находятся в работоспособном состоянии сетевые программные компоненты.

    ping свой IP или имя – пинг на собственный адрес или имя. Должен завершаться без ошибок, если установлены все программные средства протокола IP и исправен сетевой адаптер.

    ping IP-адрес роутера – должен выполняться, если исправна сетевая карта компьютера, исправен кабель или беспроводное соединение, используемые для подключения к роутеру и исправен сам роутер. Кроме того, настройки IP должны быть такими, чтобы адрес компьютера и роутера принадлежали одной подсети. Обычно это так, когда сетевые настройки выполняются автоматически средствами DHCP-сервера маршрутизатора.

    ping yandex.ru – выполнить опрос узла с именем yandex.ru. Если опрос завершается с ошибкой, то причиной может быть не только отсутствие связи с маршрутизатором провайдера, но и невозможность определения адреса узла yandex.ru из-за проблем с программными средствами разрешения имен.

    ping 8.8.8.8 – выполнить опрос узла с IP-адресом 8.8.8.8 . Если опрос по адресу выполняется без ошибок, а опрос по имени завершается сообщением о неизвестном узле, то проблема в разрешении имен. Причиной может быть неработоспособность DNS-сервера провайдера. В этом случае, можно попробовать сменить его в настройках сетевого соединения на публичные DNS сервера Google с адресами 8.8.4.4 и 8.8.8.8. Также, проблема может быть вызвана плохим качеством связи с провайдером, что сопровождается слишком большим временем отклика и пропаданием пакетов.

    ping -t yandex.ru – выполнять ping до нажатия комбинации CTRL C, При нажатии CTRL Break – выдается статистика и
    опрос узла продолжается.

    ping -n 1000 -l 500 192.168.1.1 – выполнить ping 1000 раз с использованием сообщений, длиной 500 байт. Пинг пакетами стандартной длины в 32 байта может выполняться без ошибок, а на длинных — с ошибками, что характерно для беспроводных соединения при низком уровне сигнала в условиях интенсивных помех.

    ping -n 1 -r 9 -w 1000 yandex.ru – выполнить ping 1 раз (ключ -n 1), выдавать маршрут для первых 9 переходов (-r 9), ожидать ответ 1 секунду (1000мсек)

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


    Обмен пакетами с yandex.ru [87.250.251.11] с 32 байтами данных:
    Ответ от 87.250.251.11: число байт=32 время=36мс TTL=54
    Маршрут: 81.56.118.62 ->
    81.56.112.1 ->
    10.109.11.9 ->
    10.109.11.10 ->
    195.34.59.105 ->
    195.34.52.213 ->
    195.34.49.121 ->
    195.34.52.213 ->
    87.250.239.23

    Статистика Ping для 87.250.251.11:

    Пакетов: отправлено = 1, получено = 1, потеряно = 0
    (0% потерь)
    Приблизительное время приема-передачи в мс:
    Минимальное = 36мсек, Максимальное = 36 мсек, Среднее = 36 мсек

    В данном примере, между отправителе и получателем пакетов выстраивается цепочка из 9 маршрутизаторов. Нужно учитывать тот факт, что в версии утилиты ping.exe для Windows, число переходов может принимать значение от 1 до 9. В случаях, когда этого значения недостаточно, используется команда tracert

    Отсутствие эхо-ответа не всегда является признаком неисправности, поскольку иногда по соображениям безопасности, некоторые узлы настраиваются на игнорирование эхо-запросов, посылаемых PING. Примером может служить узел microsoft.com и некоторые маршрутизаторы в сетях небольших провайдеров.

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

    ping -n 11 127.0.0.1 – задержка в 10 секунд.

    Команда PING используется в командных файлах для определения доступности IP-адресов. Поскольку, результат опроса никак не отражается в переменной ERRORLEVEL , то вместо ее анализа
    используется поиск определенных признаков в данных стандартного вывода PING. Если внимательно посмотреть на сообщения программы ping.exe при опросе доступного и недоступного узла, то можно заметить, что они значительно отличаются

    ping 456.0.0.1 – ping на несуществующий адрес

    Ответ на такую команду может отличаться от конкретной версии утилиты, и
    может быть приблизительно таким

    :/>  Как сделать трассировку маршрута в Windows 7 | Компьютер для чайников


    При проверке связи не удалось обнаружить узел 456.0.0.1. Проверьте имя узла и повторите попытку.

    ping yandex.ru– ping на адрес узла yandex.ru

    Ответ на ping доступного узла:


    Обмен пакетами с yandex.ru [87.250.250.11] по 32 байт:
    Ответ от 87.250.250.11: число байт=32 время=10мс TTL=55

    Таким образом, для решения задачи определения доступности узла в командном файле, достаточно проанализировать характерные слова в выводе ping.exe при успешном ответе. Наиболее характерно в данном случае наличие слова TTL. Оно никогда не встречается при возникновении ошибки и состоит всего лишь из символов английского алфавита.
    Для поиска “TTL” в результатах ping.exe удобнее всего объединить ее выполнение в цепочку с командой поиска строки символов FIND.EXE (конвейер ping и find). Если текст найден командой FIND, то значение переменной ERRORLEVEL будет равно


    ping -n 1 COMPUTER | find /I “TTL” > nul
    if %ERRORLEVEL%==0 goto LIVE
    ECHO computer недоступен
    подпрограмма обработки недоступного состояния

    Exit
    :LIVE – начало подпрограмм
    ы обработки состояния доступности узла

    В более простом варианте можно использовать команды:

    PING yandex.ru |find “TTL=” && ECHO Yandex pingable – команда ECHO выполняется, если значение ERRORLEVEL, установленное FIND равно 0, т.е узел yandex.ru отвечает на ping.

    PING Server64 |find “TTL=” || ECHO Server64 not pingable – команда ECHO выполняется, если значение ERRORLEVEL, установленное FIND не равно 0, т.е. узел Server64 не ответил на ping.

    Весь список команд CMD Windows     |     На главную страницу.

    Telnet и nslookup

    Также желательно выполнить следующие команды для диагностики – это telnet и nslookup.

    Скорее всего, если попробовать выполнить команду telnet, то возникнет следующее сообщение:

    "telnet" не является внутренней или внешней
    командой, исполняемой программой или пакетным файлом.

    Давайте установим его. Откроем Пуск -> Панель управления:

    Выбираем пункт Программы:

    Нажимаем Включение или отключение компонентов Windows:

    Ставим галочку напротив Клиент Telnet и нажимаем OK:

    Ожидаем загрузки:

    Возвращаемся к командной строке и вводим команду:

    и нажимаем Enter:

    Видим пустую консоль – это означает, что подключение к сайту идет успешно, нажимаем Ctrl C

    Диагностика разрешения имен (nslookup, dig)

    Разобравшись с сетевой связностью и маршрутизацией приходим к следующему этапу — разрешение доменных имен. В большинстве случаев в работе с удаленными сервисами мы не используем IP-адреса, а указываем доменные имена удаленных ресурсов. За перевод символических имен в IP-адреса отвечает служба DNS — это сеть серверов, которые содержат актуальную информацию о соответствии имен и IP в пределах доверенных им доменных зон.

    Способы выяснения какой DNS-сервер использует наш сервер различаются в зависимости от используемой версии и дистрибутива ОС Linux. Например, если ОС используется Network Manager для управления сетевыми интерфейсами (CentOS, RedHat и др.), может помочь вывод команды nmcli:

    Команда nmcli
    Скриншот №7. Команда nmcli

    В настройках сетевого интерфейса, в разделе DNS configuration, мы увидим IP-адрес сервера. В Ubuntu 18.04 и выше, использующих Netplan, используем команду systemd-resolve –status:

    Команда systemd-resolve --status
    Скриншот №8. Команда systemd-resolve –status

    Проверить работу сервиса разрешения имен нам помогут утилиты nslookup или dig. Функционально они почти идентичны: G-вывод утилиты dig содержит больше диагностической информации и гибко регулируется, но это далеко не всегда нужно. Поэтому используйте ту утилиту, которая удобна в конкретной ситуации. Если эти команды недоступны, потребуется доставить пакеты на CentOS/RedHat:

    yum install bind-utils

    для Debian/Ubuntu:

    sudo apt install dnsutils

    Тестовые запросы
    Скриншот №9. Тестовые запросы

    Аналогичный запрос утилитой nslookup выдает более компактный вывод, но вся нужная сейчас информация в нем присутствует.

    Что же делать, если в ответе отсутствует IP-адрес? Возможно, DNS-сервер недоступен. Для проверки можно отправить тестовый запрос на другой DNS-сервер. Обе утилиты позволяют эти сделать. Направим тестовый запрос на DNS-сервер Google:

    Зачем нужен пинг и трассировка

    Сказать честно, про существования команды “ping” я знал ещё с тех пор, как у меня появился Интернет, но никакой особой пользы я в ней не видел. Впервые же на практике ощутить важность пинга мне пришлось, когда я захотел поиграть онлайн в Counter Strike 1.6 🙂

    Вот тут-то и оказалось, что на серверах с пингом выше 100 мс играть было почти нереально из-за вечных подвисаний и лагов. Поэтому одним из первых практических применений предмета нашей статьи для меня стала сортировка доступных игровых серверов по столбцу “Пинг” (или “Latency” – англ. “задержка”) примерно в следующей последовательности (см. шаг “5”):

    Фактически, так я понял, что пинг это не просто абстрактные цифры, а вполне реальные значения, которые отражают величину задержки при обмене данными между Вашим компьютером и удалённым сервером. При этом, что интересно, на него не особо влияет выделенная скорость Вашего Интернет-подключения.

    Кстати, кроме величины задержек в передаче данных, пинг позволяет также получить IP-адрес запрошенного сайта и оценить стабильность подключения по количеству потерянных пакетов (если таковые имеются). Также данная команда может выявить ошибки в работе DNS. Например, если сайт по IP-адресу пингуется, а по имени нет.

    :/>  Команда tracert в Windows. Зачем нужна и как пользоваться сетевой утилитой tracert и как сделать трассировку маршрута?? | IT-блог о веб-технологиях, серверах, протоколах, базах данных, СУБД, SQL, компьютерных сетях, языках программирования и создание сайтов.

    С командой “ping” довольно тесно связана и ещё одна команда – “tracert” (“traceroute” в Linux). Если пинг показывает лишь время задержки передачи пакетов между Вашим и удалённым ПК, то трассировка позволяет увидеть полный маршрут этих пакетов с определением узлов, на которых происходят максимальные потери и перенаправления.

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

    Думаю, теории хватит – перейдём к практике.

    Команда ping

    Для выполнения всех команд из сегодняшней статьи нам потребуется только Командная строка (хотя, есть и иные способы, о которых речь пойдёт чуть ниже). Вызвать командную строку можно различными способами, однако самым универсальным, на мой взгляд, является вызов через строку “Выполнить”.

    Команда tracert

    Второй по значимости командой для диагностики сетевого соединения является команда “tracert”, которая в базовой своей форме практически не отличается от пинга, но даёт несколько более расширенный результат с упором на перечисление всех промежуточных узлов соединения:

    Как и в случае с пингом, tracert выдаёт нам IP-адрес конечного запрошенного веб-сайта (по адресу же можно проводить и трассировку). Однако, далее следует перечисление всех серверов, через которые проходит сигнал (по умолчанию их максимальное количество – 30).

    Строка с данными о сервере называется “прыжком” или “хопом” (от англ. “hop” – “прыжок”). Она содержит в себе три замера (в миллисекундах), отображающих время ожидания ответа (по умолчанию до 5 секунд), название узла и его IP-адрес.

    Как и ping, tracert имеет ряд дополнительных параметров, получить список которых можно командой: “tracert /?” (без кавычек):

    Пинг онлайн

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

    Из всех протестированных мной сервисов подобного рода больше всего мне понравился англоязычный Ping.eu, который физически находится в Германии:

    Фактически, если отбросить тот факт, что настроить пинг онлайн не позволяет ни один из тестированных мною сервисов, у Ping.eu всё реализовано наиболее приближённо к оригиналу. Как и в Windows, здесь отправляется 4 запроса к заданному Вами серверу и выдача результатов визуально соответствует тому, что мы обычно видим в Командной строке.

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

    В принципе, если Вы решили использовать пинг онлайн, то фактически единственной реальной задачей, которую можно решить таким способом, является проверка доступности сайта. Поэтому некоторые сервисы пошли другим путём: вместо полноценной реализации пинга с выдачей средних задержек и т.п. данных, они отображают, доступен ли сайт в той или иной точке планеты. Одним из лучших подобных сервисов можно назвать Ping от Whoer.net:

    Настроек здесь, как и в предыдущем случае нет. Вы вводите в поле имя или адрес нужного сервера, жмёте кнопку “Проверить пинг” и получаете результаты. Последние включают в себя расшифровку IP-адреса запрошенного веб-ресурса, а также минимальные, максимальные и средние показатели задержки в ряде стран.

    Выводы

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

    Надеюсь, после прочтения данной статьи и Вы станете одним из знающих. И, когда настанет час, сможете применить свои знания в деле. Низкого Вам пинга и высоких скоростей!

    P.S. Разрешается свободно копировать и цитировать данную статью при условии указания открытой активной ссылки на источник и сохранения авторства Руслана Тертышного.

    Оставьте комментарий

    Adblock
    detector