Проект OpenNet: MAN ping (1) Команды и прикладные программы пользовательского уровня (FreeBSD и Linux)


See attributes(5) for descriptions of the following attributes:




The original

utility was written by
An Mike Muuss

while at the US Army Ballistics
Research Laboratory.



utility uses the

ICMPprotocol Ap
s mandatory

Duplicate and damaged packets


utility will report duplicate and damaged packets.
Duplicate packets should never occur when pinging a unicast address,
and seem to be caused by
inappropriate link-level retransmissions.
Duplicates may occur in many situations and are rarely
(if ever)
a good sign, although the presence of low levels of duplicates may not
always be cause for alarm.
Duplicates are expected when pinging a broadcast or multicast address,
since they are not really duplicates but replies from different hosts
to the same request.

Damaged packets are obviously serious cause for alarm and often
indicate broken hardware somewhere in the

packet’s path
(in the network or in the hosts).


Example 1 Using ping With IPv6

Exit status


utility returns 0 on success (the host is alive),
2 if the transmission was successful but no responses were received,
any other non-zero value if the arguments are incorrect or
another error has occured.




utility appeared in
BSD 4.3


utility with IPv6 support first appeared in the WIDE Hydrangea IPv6
protocol stack kit.

Icmp packet details

An IP header without options is 20 bytes.






The network host


The following options are supported:

-A addr_family

Specify the address family of the target host. addr_family can be either inet or inet6. Address family determines which protocol to
use. For an argument of inet, IPv4 is used. For inet6, IPv6 is used.

By default, if the name of a host is provided, not the literal IP address, and a valid IPv6 address exists in the name service database, ping will use this address. Otherwise, if the name service database contains an IPv4 address, it will try the IPv4 address.

Specify the address family inet or inet6 to override the default behavior. If the argument specified is inet, ping will use the IPv4 address associated with the host name. If none exists, ping will state
that the host is unknown and exit. It does not try to determine if an IPv6 address exists in the name service database.

If the specified argument is inet6, ping uses the IPv6 address that is associated with the host name. If none exists, ping states that the host is unknown and exits.

-F flow_label

Specify the flow label of probe packets. The value must be an integer in the range from 0 to 1048575. This option is valid only on IPv6.


Turn on the statistics mode and specify the interval between successive transmissions. The default is one second. See the discussion of the -s option.

Turn off loopback of multicast packets. Normally, members are in the host group on the outgoing interface, a copy of the multicast packets will be delivered to the local machine.


Specify a next-hop router so that the probe packet goes through the specified router along its path to the target host. This option essentially bypasses the system routing table and leaves the probe
packet header unmodified. Only one next-hop router can be specified.

-P tos

Set the type of service (tos) in probe packets to the specified value. The default is zero. The value must be an integer in the range from 0 to 255. Gateways also in the path can
route the probe packet differently, depending upon the value of tos that is set in the probe packet. This option is valid only on IPv4.

See also










A. Conta
S. Deering
“Internet Control Message Protocol (ICMPv6) for the Internet Protocol Version 6 (IPv6) Specification”
December 1998
Matt Crawford
“IPv6 Node Information Queries”
May 2002
work in progress material



] [-
c count

] [-
G sweepmaxsize

] [-
g sweepminsize

] [-
h sweepincrsize

] [-
i wait

] [-
l preload

] [-
M mask | time

] [-
m ttl

] [-
P policy

] [-
p pattern

] [-
S src_addr

] [-
s packetsize

] [-
t timeout

] [-
W waittime

] [-
z toshostAaDdfLnoQqRrv

] [-
c count

] [-
I iface

] [-
i wait

] [-
l preload

] [-
M mask | time

] [-
m ttl

] [-
P policy

] [-
p pattern

] [-
S src_addr

] [-
s packetsize

] [-
T ttl

] [-
t timeout

] [-
W waittime

] [-
z tosmcast-group

Trying different data patterns

layer should never treat packets differently depending on the data
contained in the data portion.
Unfortunately, data-dependent problems have been known to sneak into
networks and remain undetected for long periods of time.
In many cases the particular pattern that will have problems is something
that does not have sufficient

such as all ones or all zeros, or a pattern right at the edge, such as
almost all zeros.
It is not
necessarily enough to specify a data pattern of all zeros (for example)
on the command line because the pattern that is of interest is
at the data link level, and the relationship between what you type and
what the controllers transmit can be complicated.

This means that if you have a data-dependent problem you will probably
have to do a lot of testing to find it.
If you are lucky, you may manage to find a file that either
be sent across your network or that takes much longer to transfer than
other similar length files.

Ttl details



value of an IP packet represents the maximum number of IP routers
that the packet can go through before being thrown away.
In current practice you can expect each router in the Internet to decrement


field by exactly one.


specification recommends setting the

field for

packets to 64, but many systems use smaller values
( BSD 4.3

uses 30,
BSD 4.2
used 15).


Для ping требуется функция CAP_NET_RAW. На программу может быть установлен бит set−uid root.

Время актуальности (ttl)

Значение TTL для пакетов IP задаёт максимальное количество IP−маршрутизаторов, через которое пакет еще будет
доставляться, а не считаться утерянным. Сейчас каждый маршрутизатор в Интернете уменьшает поле TTL при обработке пакета на единицу.

Согласно спецификации TCP/IP значение поля TTL для пакетов TCP должно быть равно 60, но многие системы используют
меньшие значения (4.3 BSD использует 30, 4.2 использует 15).


Команда ping впервые появилась в 4.3BSD.

Настоящим документом описывается адаптированная для Linux версия программы.

Недоработки (bugs)

Многие узлы и шлюзы игнорируют параметр RECORD_ROUTE.

Максимальная длина заголовка IP слишком мала для полноценной работы таких параметров, как RECORD_ROUTE. Однако, мало что можно сделать по этому поводу.

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



Сопровождать работу программы звуком.


Адаптивный ping. Адаптировать интервал между отправками пакетов к длительности их доставки и возврата. Таким образом, если только не выполняется
преднагрузка, в любой момент времени может быть не больше одного пакета, на который не получен ответ. Минимальный интервал для не администратора − 200 мс. В
сетях с низким rtt данный режим эквивалентен лавинообразному.


Разрешить использование широковещательного адреса в качестве целевого.


Запретить изменение исходного адреса для пакетов во время работы программы. Исходный адрес определяется в начале работы ping.



Перевод на русский язык выполнил Николай Шафоростов <shafff@ukr.net>.

Пинг конкретного порта

telnet Так это не работает.

Для такой задачи идеально подойдет – telnet. Он по умолчанию устанавливается в операционную систему Linux.

telnet хост порт

Повторяющиеся и поврежденные пакеты

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

Поврежденные пакеты являются прямым свидетельством неполадок в аппаратной части на одном из участков сети, через
который проходили пакеты (в сети или на ее узлах).


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


ping [−aAbBdDfhLnOqrRUvV] [−cколичество] [−Fметка_потока] [−iинтервал] [−Iинтерфейс] [−lпреднагрузка] [−mметка] [−Mопция_pmtudisc] [−Nопция_nodeinfo] [−wограничение_срока] [−Wвремя_ожидания_ответа] [−pшаблон] [−Qtos] [−sразмер_пакета] [−Sбуфер_отправки] [−tвремя_жизни] [−Tопция_отметки_времени] [скачки …] получатель

Смотри также

netstat(1), ifconfig(8).

Тестирование на различных данных

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

В любом случае, такие проблемы означают, что вам предстоит очень много работ по тестированию и выявлению вышедшего
из строя элемента. Если вам повезет, то вы найдёте файл, который вообще не будет передаваться по сети, или будет передаваться очень долго (по сравнению с
файлами такого же размера), и затем сможете исследовать его на предмет возможных проблемных шаблонов, проверить которые можно с помощью ключа −p
программы ping.

:/>  Как открыть автозагрузку в Windows 7?

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