Команда пинга
Содержание:
Зачем пинговать ИП-адрес?
Проверив ping ип адреса до сервера, позволяет проверить качество сетевого соединения.
Проверив пинг через наш онлайн-сервис, вы узнаете следующие данные:
- объем отправленных и принятых данных (в байтах);
- время задержки между запросом и ответом (в мс);
- частоту потери пакетов данных (в % от 0 до 100).
Проверки пинга по этим параметрам помогут довольно точно оценить скорость и стабильность сигнала по маршруту клиент-сервер, загруженность каналов передачи данных и промежуточных звеньев (физических сетевых устройств: маршрутизаторов, обычных и прокси-серверов и других узлов в сети оптоволоконных кабелей, которые и являются глобальной интернет-сетью).
Запросы отправляются по сетевому протоколу ICMP входит в стек (набор) протоколов TCP/IP. Если ответ отсутствует (100% packet loss или Host seems down), то какой-то из промежуточных узлов или конечный сервер игнорирует/блокирует пинги.
Очень важный момент – это пинг прокси. Так как прокси-сервер в большинстве случаев нужен для работы (парсинга ключей, работы с различными платформами и приложениями, для сбора данных из поисковых систем) или комфортной сетевой игры, то пользователь хочет получить хорошую скорость и стабильное соединение без «тормозов и зависаний». Измерение пинга позволяет поверить и контролировать скорость соединения через прокси.
Измерение ping ИП-адреса или хоста дает возможность узнать:
- скорость передачи данных по каналу связи (в том числе с промежуточным прокси-сервером);
- качество канала связи в сети TCP/IP (данные будут точны только в том случае, если протокол ICMP не блокируется и имеет достаточно высокий приоритет);
- IP-адрес и геолокацию физического сервера сайта по доменному имени (или домен по айпи, если по адресу находится один сайт);
- работоспособность удаленного узла (например, сервера, на котором расположен хостинг);
- доступность удаленного сервера (в том числе при смене и настройке DNS);
- наличие блокировки доменных имен (иногда фаервол может из-за ложной тревоги внести IP-адрес в черный список;
- также домен может блокироваться местным или региональным провайдером).
Проверка ping IP – удобный инструмент для оценки качества связи, а также основное диагностическое средство для интернета и локальных сетей. Ниже мы подробно расскажем, как проверить пинг. Вам останется лишь следовать простой инструкции.
Проверка пинга
Для проверки пинга используется одноименная команда ping, которую необходимо вводить в командной строке. Запустить командную строку можно следующими способами:
Windows:
1) Пуск -> Все программы -> Стандартные -> Командная строка
2) Пуск -> Выполнить -> cmd
Linux:
В данной ОС существует множество терминалов, поэтому для этих целей можно использовать любой из установленных на ПК. Обычно стандартный терминал можно запустить сочетанием клавиш CTRL+ALT+T.
Итак, чтобы пропинговать определенный сервер, необходимо выполнить команду:
ping <IP или домен>
Например, для пинга адреса 11.222.33.44 необходимо выполнить команду:
ping 11.222.33.44
Ниже приведён пример результатов выполнения пинга одного из IP адресов.
Как видно из результатов, было передано и получено 4 пакета размером 32 байта. Время обмена одним пакетом составило 47 милисекунд.
Стоит отметить, что в Windows по умолчанию выполняется отправка только 4 пакетов. В Linux обмен пакетами продолжается до тех пор, пока пользователь самостоятельно не остановит процесс сочетанием клавиш CTRL+C. Чтобы запустить ping аналогичным образом в Windows, необходимо использовать параметр -t. Например:
ping -t 11.222.33.44
Остановка обмена пакетами выполняется тем же сочетанием клавиш – CTRL+C.
Установка количества отправляемых пакетов
Чтобы задать максимальное количество отправляемых пакетов, необходимо использовать команду следующего вида:
Windows:
ping -n <число_пакетов> <IP или домен>
например:
ping -n 5 11.22.33.44
Linux:
ping -c <число_пакетов> <IP или домен>
например:
ping -c 5 11.22.33.44
Изменение размера отправляемых пакетов
Чтобы выполнить ping с использованием пакетов определенного размера (в байтах), необходимо использовать следующую команду:
Windows:
ping -l <размер_пакетов> <IP или домен>
например:
ping -l 64 11.22.33.44
Linux:
ping -s <размер_пакетов> <IP или домен>
например:
ping -s 64 11.22.33.44
В данном случае производилась отправка пакетов размером в 64 байта.
Функциональность
Функция PING предлагает две основные цели: проверить, доступен ли хост-узел, и измерить, сколько времени займет отклик. Команда PING является одним из наиболее часто используемых интерфейсов командной строки. PING состоит из одного пакета, который представляет собой эхо-запрос. Если хост доступен, он отвечает одним пакетом. Измерение времени для PING измеряется в миллисекундах, это относится ко времени, когда пакет достигает хоста и ответ возвращается к отправителю.
Кроме того, PING использует протокол управления сообщениями через Интернет (ICMP). ICMP компенсирует пробелы в IP-протоколе, сообщая об ошибке. Это необходимо для системы, так как IP-протокол не имеет способа сообщения об ошибках. Это сообщает об ошибках и ожидает, что более высокие уровни модели архитектуры OSI будут обрабатывать и исправлять ошибки. Эта программа PING работает подобно гидролокатору, который посылает небольшие пакеты информации, содержащие ICMP ECHO_REQUEST на указанный компьютер, а затем посылает ECHO_REPLY взамен.
Ниже приведены действия, которые обычно выполняются при опросе машины пользователем.
- Сообщение эхо-запроса ICMP будет отправлено получателю источником.
- Программа PING установит идентификатор последовательности, который будет увеличиваться с каждым из сообщений эхо-запроса.
- PING вставляет время отправки в раздел данных сообщения.
- Он посылает ICMP сообщение эхо-ответа обратно к источнику, если хост жив и отвечает.
- Время прихода ответного сообщения будет отмечено с помощью команды PING, в ней используется время отправки части сообщения и вычисляется время прохождения туда и обратно.
- Он увеличивает идентификатор последовательности и посылает новое сообщение эхо-запроса. Это продолжается для количества PING-запросов, установленных пользователем, или программа будет завершена.
Обход туда и обратно будет вычисляться с учетом местного времени часов исходного узла, когда IP датаграмма покинет исходный узел, и затем она будет вычитаться из времени, в которое приходит эхо-ответ. Инструмент PING будет отображать различные сообщения об ошибках, когда операция обхода туда и обратно не будет выполнена успешно, например, следующие:
Хозяин пункта назначения недоступен
Определяет, находится ли целевой узел в нерабочем состоянии или не работает в сети. Это может произойти из-за отсутствия локального или удаленного маршрута для конечного узла.
Срок действия TTL истек во время транзита
Это означает максимальное время, в течение которого IP-пакет может прожить по сети, прежде чем он будет отброшен, если не достигнет пункта назначения.
Запросить тайм-аут
Определяет, когда закончилась команда PING, потому что от хоста не поступило ответа. Это также определяет, что сообщения эхо-ответа не были получены из-за сетевого трафика, сбоя фильтрации пакетов запросов протокола разрешения адреса (ARP) или ошибки маршрутизатора.
История
Утилита ping была написана Майк Муусс в декабре 1983 г. во время работы в Лаборатория баллистических исследований, теперь Исследовательская лаборатория армии США. Замечание Дэвид Миллс Использование эхо-пакетов ICMP для диагностики и измерений IP-сети побудило Muuss создать утилиту для устранения сетевых проблем. Автор назвал его в честь звука, который сонар делает, так как его методология аналогична локации эхолокации сонара. В backronym Packet InterNet Groper для PING используется более 30 лет, и хотя Мусс говорит, что с его точки зрения PING не был сокращением, он признал расширение имени Миллса. Первая выпущенная версия была программное обеспечение общественного достояния; все последующие версии были лицензированы под Лицензия BSD. Пинг впервые был включен в 4.3BSD. В FreeDOS версия была разработана Эриком Энгельке и находится под лицензией GPL. Тим Кроуфорд разработал ReactOS версия. Он лицензирован под Лицензия MIT.
Проверка трассировки
Трассировка маршрута может показать скорость прохождения пакетов между маршрутизаторами, которые соединяют ПК, с которого идут запросы, и конечный сервер.
Для выполнения трассировки используется следующая команда:
Windows:
tracert <IP или домен>
например:
tracert wikipedia.org
Linux:
traceroute <IP или домен>
например:
traceroute wikipedia.org
Стоит отметить, что по умолчанию при трассировке также выполняется DNS-запрос на разрешение IP адреса в доменное имя для каждого проходящего маршрутизатора. Эту опцию можно отключить, таким образом, сократив время получения результатов трассировки.
Чтобы активировать эту опцию необходимо использовать следующий вид команды:
Windows:
tracert -d <IP или домен>
Linux:
traceroute -n <IP или домен>
Синтаксис
Параметры
Параметр | Описание |
---|---|
/t | Указывает, что команда ping Continue отправляет сообщения эхо-запросов в место назначения, пока не будет прервано. Чтобы прервать и отобразить статистику, нажмите клавиши CTRL + ВВОД. Чтобы прервать выполнение и выйти из этой команды, нажмите клавиши CTRL + C. |
/a | Указывает, что разрешение имен должно выполняться на целевом IP-адресе. В случае успешного выполнения команды Ping отображает соответствующее имя узла. |
параметра | Указывает число сообщений запроса эха, которые будут отправлены. Значение по умолчанию — 4. |
/l | Задает длину (в байтах) поля данных в сообщениях запроса эха. Значение по умолчанию — 32. Максимальный размер — 65 527. |
/f | Указывает, что сообщения эхо-запросов отправляются с флагом «не фрагментировать » в заголовке IP, установленном в значение 1 (доступно только в IPv4). Сообщения эхо-запроса не могут быть фрагментированы маршрутизаторами по пути к назначению. Этот параметр полезен для устранения неполадок с максимальным количеством блоков передачи (PMTU). |
/I | Задает значение поля срока жизни (TTL) в заголовке IP для отправленных сообщений эхо-запросов. По умолчанию используется значение TTL по умолчанию для узла. Максимальный срок жизни — 255. |
/v | Указывает значение поля типа службы (TOS) в IP-заголовке для отправленных сообщений запроса эха (доступно только в IPv4). Значение по умолчанию равно 0. TOS задаются в виде десятичного значения от 0 до 255. |
/r | Указывает параметр записи маршрута в заголовке IP-адреса, который используется для записи пути, полученного сообщением запроса эха, и соответствующего сообщения о эхо-ответе (доступно только в IPv4). Каждый прыжок в пути использует запись в параметре запись маршрута . Если это возможно, укажите значение счетчика , равное или больше, чем число прыжков между источником и назначением. Число должно быть не меньше 1 и не больше 9. |
ключ | Указывает, что параметр отметка времени Интернета в заголовке IP используется для записи времени прибытия сообщения эхо-запроса и соответствующего сообщения эхо-ответа для каждого прыжка. Число должно быть не меньше 1 и не больше 4. Это необходимо для адресов назначения, находящейся в локальной связи. |
/j | Указывает, что сообщения эхо-запроса используют параметр свободного исходного маршрута в заголовке IP с набором промежуточных назначений, указанных в hostlist (только в IPv4). При свободной маршрутизации последовательные промежуточные назначения могут быть разделены одним или несколькими маршрутизаторами. Максимальное число адресов или имен в списке узлов равно 9. Список узлов представляет собой набор IP-адресов (в точечно-десятичной нотации), разделенных пробелами. |
/k | Указывает, что сообщения эхо-запроса используют в заголовке IP параметр с максимальным исходным маршрутом с набором промежуточных назначений, указанных в hostlist (доступно только в IPv4). При использовании явной исходной маршрутизации следующее промежуточное назначение должно быть напрямую достижимо (оно должно быть соседом в интерфейсе маршрутизатора). Максимальное число адресов или имен в списке узлов равно 9. Список узлов представляет собой набор IP-адресов (в точечно-десятичной нотации), разделенных пробелами. |
/w | Указывает время ожидания сообщения эхо-ответа, соответствующего заданному сообщению запроса эха, в миллисекундах. Если ответное сообщение не получено в течение времени ожидания, отображается сообщение об ошибке «запрос был превышен). Время ожидания по умолчанию — 4000 (4 секунды). |
/R | Указывает путь к пути приема-передачи, который отслеживается (доступно только в IPv6). |
Ключ | Указывает используемый исходный адрес (доступен только в IPv6). |
/4 | Указывает IPv4, используемый для проверки связи. Этот параметр не требуется для определения целевого узла с IPv4-адресом. Необходимо только указать целевой узел по имени. |
/6 | Указывает IPv6, используемый для проверки связи. Этот параметр не требуется для определения целевого узла с IPv6-адресом. Необходимо только указать целевой узел по имени. |
Указывает имя узла или IP-адрес назначения. | |
/? | Отображение справки в командной строке. |
Примеры
Чтобы проверить связь с целевым 10.0.99.221 и разрешить 10.0.99.221 в его имя узла, введите:
Чтобы проверить связь с 10.0.99.221 назначения с 10 сообщениями эхо-запроса, каждый из которых имеет поле данных 1000 байт, введите:
Чтобы проверить связь с назначением 10.0.99.221 и записать маршрут для 4 прыжков, введите:
Чтобы проверить связь с целевым 10.0.99.221 и указать свободный исходный маршрут 10.12.0.1-10.29.3.1-10.1.44.1, введите:
Understanding the Ping Command
Ping is a digital tool that you can use to test the online connection between two computers. It will tell you whether you can send a message from your computer to another computer and how fast it takes for that computer to receive a message and send a response. Note that some machines may be configured not to respond to pings, and your firewall settings may restrict your ability to ping other computers.
Ping takes its name from sonar, the navigation system used by submarines and other ships that sends out pulses of sound and listens for an echo. You can use the «ping» command to test your network connection on Microsoft Windows and on most other modern operating systems.
You’ll generally need to use the command line interface on your computer to send a ping. You’ll also need to know the address of the other server that you want to send a ping message. This can be a human-readable domain name, like www.example.com, or an Internet protocol address, such as 127.0.0.1. You don’t ping a URL, only the server name or IP, so omit the opening «http» or other prefix in an address you’d use in your Web browser. Type only with the domain name or IP address.
Что такое команда Ping?
Чтобы успешно ответить на вопрос «как работает пинг?», Нужно знать, что такое пинг. Короче говоря, команда ping — это сетевой инструмент, используемый для определения доступности определенного IP-адреса или хоста.
Как только это станет известно, вы можете использовать результаты, чтобы сделать дальнейшие выводы.
Поэтому пинг обычно является первой линией защиты при устранении неполадок с интернет-соединениями. Он не только проверяет подключение, но также измеряет время и поддерживает учет всех пакетов ICMP.
Очень важно верно? Вы держите пари, и хорошая новость заключается в том, что он распространяется на все операционные системы. Вот почему любой, кто является специалистом в области технологий, должен знать, как использовать эту базовую команду
Проверка Ping через командную строку
После запуска командной строки можно приступать к проверке пинга. Проверка пинг работает абсолютно одинаково, как в Windows 7 и Windows 10, так и в остальных версиях этой операционной системы.
Для проверки нужно ввести в командную строку команду «ping» и через пробел указать IP-адрес или доменное имя, которое связано с данным IP-адресом. Например, если вы хотите проверить пинг до IP-адреса «8.8.8.8», то вам нужно выполнить следующую команду:
ping 8.8.8.8
Аналогичным способом выполняется проверка пинга с указанием домена. Просто вводите команду «ping» и через пробел указываете домен. Например, если вы хотите проверить пинг до сервера «google.com», то вам нужно выполнить следующую команду:
ping google.com
По умолчанию, операционные системы Windows 10 и Windows 7 отправляют только 4 пакета. Для того чтобы увеличить это значение нужно использовать параметр «-n». Например, если вы хотите 10 раз проверить пинг до IP-адреса «8.8.8.8», то нужно выполнить следующую команду:
ping 8.8.8.8 -n 10
Для непрекращающейся проверки пинга нужно использовать параметр «-t». Например, если вы хотите постоянно проверять пинг до IP-адреса «8.8.8.8», то нужно выполнить следующую команду:
ping 8.8.8.8 -t
Обратите внимание, при использовании параметра «-t» операционная система Windows будет посылать ping-запросы до тех пор, пока пользователь не нажмет комбинацию клавиш CTRL+C или не закроет командную строку
Кроме этого, у команды «ping» есть и другие параметры. Для того чтобы получить справку введите в командную строку «ping /?».
Но, большинство этих параметров вряд ли пригодятся обычному пользователю и ориентированы в первую очередь на системных администраторов.
Что такое ping (пинг)?
Ping (Пинг) – это время, за которое информация проходит от вашего компьютера до сервера и обратно. Измеряется в миллисекундах (мс). Чем оно меньше, тем лучше
Пинг критичен для тех программ и сайтов, где очень важно своевременное получение и отправка информации. Например, игры по сети (особенно стрелялки), VoIP, онлайн игрушки и т.п
Будет обидно, когда вы играете в стрелялку, заметили противника, нажали на кнопку выстрела, а через пару секунд вас убили. Дело в том, что информация о выстреле противника от его компьютера до сервера дошла быстрее, чем от вашего компьютера. Причина кроется в большом пинге.
Использование команды ping в Linux
Вы можете использовать команду ping с IP-адресом или именем хоста/URL.
Предположим, мы пингуем Google. Он отправит ICMP-пакеты размером 56 байтов на google.com.
Вы должны вручную остановить команду ping, иначе она продолжит выполняться. Вы можете использовать терминала ярлык, чтобы остановить команду ping в Linux, как мы сделали в приведенном выше примере.
Когда вы останавливаете , она представляет вам сводку передачи. Вы можете увидеть статистику, такую как количество переданных ICMP-пакетов, принятых пакетов, потерянных пакетов и т. д.
Теперь, когда вы знаете, как пинговать в Linux, давайте посмотрим на некоторые другие опции команды ping.
Отправить только N количество пакетов
Если вы не хотите, чтобы команда ping выполнялась вечно без остановки вручную, вы можете использовать .
При этом вы можете указать количество пакетов, которые команда ping должна отправить перед автоматической остановкой.
Отправить пинг только на ограниченное время
Помимо установки количества отправляемых пакетов, вы также можете указать, как долго будут отправляться пакеты.
Например, если вы хотите отправлять ping-пакеты всего за 5 секунд, вы можете использовать его следующим образом:
Изменить интервал времени между двумя пингами
По умолчанию ping отправляет пакеты с интервалом в одну секунду. Вы можете изменить этот интервал времени с помощью .
Для отправки ICMP-пакетов с интервалом в 3 секунды вы можете использовать команду Ping, например:
Вы также можете уменьшить временной интервал между пингами.
Однако, если вы попытаетесь уменьшить временной интервал ниже 0,2 секунды (200 мс), вы увидите ошибку:
Не беспокойтесь Вы все еще можете пропинговать с интервалом менее 200 мс. Но для этого нужно использовать пинг с правами root.
DoS-атака с пингом, который также называется Ping of Death.
Одна из самых простых атак DoS – Ping of Death. При такого рода атаках злоумышленник отправляет большое количество запросов ping за очень короткий промежуток времени. Если сервер не настроен должным образом, он потерпит крах при обработке запроса ping, и веб-сайт закроется.
Команда ping имеет встроенную функцию для этого. Это называется , и этого можно достичь с помощью . Вам понадобятся права sudo для запуска этой опции с нулевым интервалом.
Когда вы запустите эту команду, вы увидите, что некоторые точки появляются и исчезают в выходных данных. Каждый ‘.’ обозначает запрос, тогда как ответом является возврат (поэтому точки исчезают).
Этот параметр проверки связи полезен при тестировании нагрузочной способности сервера.
Бонусный совет: отправьте звуковые сигналы
Вы можете отправлять звуковые сигналы с . При этом вы услышите звуковой сигнал для каждого успешного пинга.
Обратите внимание, что не все дистрибутивы Linux настроены на создание звукового сигнала. Мы проверили это на Ubuntu 18.04, и могли слышать звуковой сигнал
Как использовать команду«пинг»
Есть пользователи, интересующиеся значением пинга и статическими данными, для этого существует возможность вручную сделать проверку значения пинга интернета. Делается это при возникновении следующих ситуаций:
- Низкой скорости соединения при загрузке сайтов.
- Частом исчезновении сети «Интернет».
- Зависании картинки при просмотре фильма или видео.
При сборе сведений о сети руководствуются этими данными:
Для выбора сервера в какой-то игре значение пинга важно, ведь хочется получить удовольствие от данного процесса. А если пользователь — администратор сервера — имеет с этого доход, пинг для него более важен.
Для размещения сайта в интернете пользуются услугами хостинга
Сервис предоставляет необходимое место на сервере. Иногда интересно узнать, как данные передаются на сервер и обратно.
При наличии у пользователя сайта ресурс иногда посещается людьми из разных стран. Владелец может заинтересоваться, какой пинг к саиту будет у жителей той или иной страны.
Вывод здесь только один: если значение большое, значит, все будет работать медленно.
Командная строка
Простой способ проверить пинг в интернете – использовать командную строку Windows, выполнив следующие действия по порядку:
- Открыть окошко «Выполнить» с помощью клавиш Win+R. В Windows 10 возможно сразу открыть командную строку, нажав правой кнопкой мышки по меню «Пуск» и выбрать соответствующий пункт.
- В открывшемся окне прописать команду cmd.
- В Windows уже есть все необходимые команды для проверки пинга. Надо ввести в строке следующую команду: ping yandex.ru.
Вместо сайта yandex.ru вводится любой другой ресурс. Если идет процесс игры, пинговать надо этот гейм-сервер. Например, выглядит это следующим образом:
ping 117.133.124.56. - Нажать Enter и подождать.
- Нужные сведения находятся на строчке «Среднее». В результатах имеется время — минимальное и максимальное — приема-передачи, а также количество отправленных и полученных пакетов (цифры в обоих случаях идентичны).
Специальные программы
Существуют специальные сервисы в интернете, измеряющие пинг и скорость соединения. Кстати, иногда значение зависит от скорости интернета.
Популярный сервис, доступный на десктопной версии, а также на мобильной – SpeedTest.
Перейдя на него, нужно нажать кнопку «Начать проверку» и ждать. На экране показываются значения скорости получения и передачи, а также ping. При проверке используются серверы, находящиеся в разных странах, то есть, существует возможность сравнивать результаты в зависимости от местоположения конечного клиента.
Аналогичный сервис — ping-admin.ru. По дизайну чуть хуже предыдущего, но хорошо показывает информацию. Здесь больше сведений об интернет-соединении.
Все, что нужно сделать, — ввести адрес сайта, куда будут отправляться пакеты, выставить галочками серверы, использующиеся при проверке. В результате покажутся следующие сведения:
- Точка мониторинга – серверы обращения.
- IP-адрес.
- Общее время отправки и получения.
- Скорость соединения и загрузки.
- Размер страницы.
- Следующий сервис — wservice.info предоставляет услуги бесплатно. Узнать пинг в пару кликов довольно легко.
- И, наконец, последний в списке сервис — pr-cy.ru. Также показывает много полезной информации для держателей сайтов.
Формат сообщения
Пакет ICMP
Биты 0–7 | Биты 8–15 | Биты 16–23 | Биты 24–31 | |
---|---|---|---|---|
Заголовок(20 байт) | Версия / МГП | Тип сервиса | Длина | |
Идентификация | флаги и компенсировать | |||
Время жить (TTL) | Протокол | Контрольная сумма заголовка | ||
Исходный IP-адрес | ||||
IP-адрес получателя | ||||
Заголовок ICMP(8 байт) | Тип сообщения | Код | Контрольная сумма | |
Данные заголовка | ||||
Полезная нагрузка ICMP(необязательный) | Данные полезной нагрузки |
Биты 0–3 | Биты 4–7 | Биты 8–11 | Биты 12–15 | Биты 16–23 | Биты 24–31 | |
---|---|---|---|---|---|---|
Заголовок(40 байт) | Версия | Класс трафика | Этикетка потока | |||
Длина полезной нагрузки | Следующий заголовок | Предел хопов | ||||
Адрес источника | ||||||
Адрес назначения | ||||||
Заголовок ICMP6(8 байт) | Тип сообщения | Код | Контрольная сумма | |||
Данные заголовка | ||||||
Полезная нагрузка ICMP6(необязательный) | Данные полезной нагрузки |
Общий состав ICMP-пакета:
- Заголовок IPv4 (синий): протокол установить в 1 (ICMP) и Тип сервиса установлен на 0.
- Заголовок IPv6 (синий): Следующий заголовок установлен на 58 (ICMP6)
- Заголовок ICMP (красный):
- Тип сообщения ICMP (8 бит)
- Код (8 бит)
- Контрольная сумма (16 бит), 16-битное дополнение суммы дополнений до единицы пакета. Для IPv4 это вычисляется из сообщения ICMP, начиная с поля Тип. (в Заголовок IP не входит). Для IPv6 это вычисляется из сообщения ICMP, к которому добавляется «псевдо-заголовок» IPv6.
- Поле данных заголовка (32 бита), которое в данном случае (эхо-запрос и ответы ICMP) будет состоять из идентификатора (16 бит) и порядкового номера (16 бит).
- Полезная нагрузка ICMP: полезная нагрузка за разные ответы; может иметь произвольную длину, оставленную для деталей реализации. Однако пакет, включающий заголовки IP и ICMP, должен быть меньше, чем максимальная единица передачи сети или риск быть фрагментированный.
Эхо-запрос
В эхо-запрос («пинг») — это ICMP/ICMP6 сообщение.
00 | 01 | 02 | 03 | 04 | 05 | 06 | 07 | 08 | 09 | 10 | 11 | 12 | 13 | 14 | 15 | 16 | 17 | 18 | 19 | 20 | 21 | 22 | 23 | 24 | 25 | 26 | 27 | 28 | 29 | 30 | 31 |
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
Тип = 8 (IPv4, ICMP) 128 (IPv6, ICMP6) | Код = 0 | Контрольная сумма | |||||||||||||||||||||||||||||
Идентификатор | Порядковый номер | ||||||||||||||||||||||||||||||
Полезная нагрузка |
Идентификатор и порядковый номер могут использоваться клиентом для сопоставления ответа с запросом, вызвавшим ответ. На практике большинство систем Linux используют уникальный идентификатор для каждого процесса проверки связи, а порядковый номер — это возрастающее число внутри этого процесса. Windows использует фиксированный идентификатор, который варьируется в зависимости от версии Windows, и порядковый номер, который сбрасывается только во время загрузки.
Эхо-ответ
В эхо-ответ сообщение ICMP, созданное в ответ на эхо-запрос; это обязательно для всех хостов и должно включать в себя точные данные, полученные в запросе.
00 | 01 | 02 | 03 | 04 | 05 | 06 | 07 | 08 | 09 | 10 | 11 | 12 | 13 | 14 | 15 | 16 | 17 | 18 | 19 | 20 | 21 | 22 | 23 | 24 | 25 | 26 | 27 | 28 | 29 | 30 | 31 |
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
Тип = 0 (IPv4, ICMP) 129 (IPv6, ICMP6) | Код = 0 | Контрольная сумма | |||||||||||||||||||||||||||||
Идентификатор | Порядковый номер | ||||||||||||||||||||||||||||||
Полезная нагрузка |
В идентификатор и порядковый номер может использоваться клиентом для связывания каждого эхо-запроса с его ответом.
Полезная нагрузка
Полезная нагрузка пакета обычно заполняется ASCII символов, как результат tcpdump утилита отображается в последних 32 байтах следующего примера (после восьмибайтового заголовка ICMP, начинающегося с 0x0800):