1

Таким образом, у меня есть 5 машин, подключенных к локальной сети, каждая из которых работает под управлением Ubuntu 14, и мне назначен уникальный статический IP-адрес. Я пытаюсь вычислить оценку времени, которое требуется для передачи и приема группы байтов на одну из этих машин. Вот некоторые результаты пинга, которые я получил, усредняя по 20 итераций пинга каждая:

ping -s [size] -c 20 [IP address]
  • 200 байтов - примерно 0,6 мс
  • 2500 байт - примерно 0,4 мс
  • 10000 байт - примерно 0,4 мс

Как это возможно для меньшего размера пакета в 200 байт, занимающего более 2500 или 10000 байт?

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

1 ответ1

2

ping сообщил о подобном результате для меня localhost:

...
208 bytes from 127.0.0.1: icmp_seq=99 ttl=64 time=0.163 ms

--- localhost ping statistics ---
100 packets transmitted, 100 packets received, 0.0% packet loss
round-trip min/avg/max/stddev = 0.078/0.172/0.269/0.044 ms
2008 bytes from 127.0.0.1: icmp_seq=99 ttl=64 time=0.188 ms

--- localhost ping statistics ---
100 packets transmitted, 100 packets received, 0.0% packet loss
round-trip min/avg/max/stddev = 0.065/0.170/0.262/0.042 ms

Тем не менее, ping не очень точен в отношении отчета о времени прохождения туда-обратно, скажем, по сравнению с tcpdump:

ping сообщает RTT 0,076 мс для 208-байтового пакета, в то время как tcpdump показывает, что пакет уходит и возвращается всего за 0,033 мс:

tcpdump -i lo0 -nK -t 5 -c 2 icmp

 00:00:00.000000 IP 127.0.0.1 > 127.0.0.1: ICMP echo request, id 37477, seq 0, length 208
 00:00:00.000033 IP 127.0.0.1 > 127.0.0.1: ICMP echo reply, id 37477, seq 0, length 208

Для пакета 2008 байтов ping сообщил RTT 0,087 мс, хотя tcpdump сообщил только 0,042 мс.

Короче говоря, ping - это программа с накладными расходами и системными зависимостями, которые делают ее непригодной для измерения крошечных различий: это не точный инструмент.

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .