Рассчитайте скорость загрузки / выгрузки с помощью ping - PullRequest
22 голосов
/ 01 января 2011

Как рассчитать скорость подключения к Интернету по некоторым средним показателям пинга. Какие вычисления в нем задействованы. Можно рассчитать ограничение загрузки / выгрузки по скорости пинга

EDIT Если пинг не является решением, что еще есть?

Ответы [ 8 ]

24 голосов
/ 24 октября 2012

Я использовал ping для расчета пропускной способности в локальной сети. Я думаю, что это так же точно, как и другие средства измерения пропускной способности (например, загрузка большого файла). Вы также можете использовать его для подключения к Интернету, если у вас есть симметричная ссылка на Интернет (т.е. не adsl).

Вот как я это делаю: У меня есть гигабитная локальная сеть Ethernet, и я хочу измерить скорость между моим компьютером и хостом в серверной комнате. Мой MTU 1500, поэтому я использую размер пакета 1472. Просто случайно я использую 83,333 пакета в этом тесте (около 1 гигабита). Тогда:

sudo ping -f -c 83333 -s 1472 192.168.3.103

в конце результата я получаю: туда и обратно мин / ср / макс / стандартное отклонение = 0,174 / 0,219 / 2,078 / 0,020 мс

так что в среднем для отправки 1500 байтов и получения 1500 байтов требуется 0,219 мс, то есть 24 кб. 24 кбит / с 0,219 мс = 110 Мбит / с

Если вы хотите использовать это для сервера в интернете, вам нужно уменьшить размер пакета до 1464 (для MTU 1492), удалить опцию -f и уменьшить количество, чтобы оно не было слишком долго, чтобы закончить.

p.s. Я думаю, что это должно идти к суперпользователю, а не stackoverflow.

11 голосов
/ 01 января 2011

Задержка отличается от пропускной способности.Представьте себе грузовик с DVD, который везут по всей стране.Пропускная способность высокая, но задержка огромная .

6 голосов
/ 02 января 2011

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

Для передачи 1500-байтового пакета по каналу GigE всегда требуется 12,3 мкс.Другими словами, если вы сможете отправлять два 1500-байтовых пакета с одной машины на другую по не перегруженному каналу GigE так быстро, как позволит протокол, они будут проходить с интервалом около 12,3 мкс.Наблюдение за этим подтверждает, что ваша ссылка GigE на самом деле не перегружена.

Теперь приведем простой пример измерения в глобальной сети (снова предположим, что он не перегружен):

HostA -------- RouterA -------- RouterB -------- HostB
        GigE             OC-3             GigE

Хост A отправляет два1500-байтовые пакеты в быстрой последовательности.Когда маршрутизатор A получает первый пакет, он начинает пересылку по каналу WAN OC-3 (155 Мбит / с).Для пересылки 1500-байтового пакета на OC3 требуется 81,5 мкс, поэтому маршрутизатор A будет в середине пересылки первого пакета, когда он получит второй пакет от хоста A. Он должен поставить в очередь этот второй пакет, пока не завершит передачуfirst.

Когда маршрутизатор B заканчивает прием первого пакета, он пересылает его на хост B, что занимает всего 12,3 мкс;тем временем маршрутизатор B начинает получать второй пакет.Когда маршрутизатор B заканчивает прием второго пакета, он пересылает его на хост B.

Таким образом, хост B видит 12,3 мкс приема пакета, 69,2 мкс паузы, затем 12,3 мкс приема пакета - другими словами, 81,5 мкс.время прибытияИсходя из этого наблюдения, хост B может сделать вывод, что полоса пропускания пути была ограничена 155 Мбит / с.


Теперь это хорошо в теории, но на практике все становится сложнее.События перегрузки обычно бывают бурными, поэтому в один момент очереди маршрутизатора могут быть достаточно полными, а в следующий момент они пусты.Многие образцы необходимы, чтобы получить что-то значимое.Делать точные измерения тоже сложно.Сквозная задержка может составлять десятки или сотни миллисекунд, и вы смотрите на разницу в несколько микросекунд.Если есть несколько путей от А до Б, удачи.

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

2 голосов
/ 01 января 2011

Нет, это не так.

Пакет ping невелик и используется только для проверки скорости, которую требуется от точки A до точки B (или в более частом случае - если между ними вообще есть путь, IE, если компьютер вообще отвечает)

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

Это, конечно, предполагает, что B не настроен на отказ от пингов, или просто не достигает этого, или находится за VPN или другой мерой, которая замедляет ответ.

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

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

1 голос
/ 01 января 2011

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

1 голос
/ 01 января 2011

Пинг - это один пакет, отправленный по сети через ICMP. Обычно один пакет в секунду отправляется на эхо-запрос удаленной машины, и маршрут может отличаться от TCP и UDP, обычно используемых для передачи данных; удаленные машины могут отказаться отвечать на запросы ping. Таким образом, измерение пропускной способности сети с помощью запросов ping ненадежно и, вероятно, бесполезно.

0 голосов
/ 08 февраля 2019

Это возможно, хотя и непрактично и ненадежно.

Лучше всего будет работать в вашей локальной сети (LAN).

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

0 голосов
/ 02 января 2011

Как уже говорили другие, ping сообщит вам задержку, но не пропускную способность.
Попробуйте netperf.http://www.netperf.org/netperf/. Возможно, вам придется указать определенные параметры (например, TCP / UDP) и т. Д.

...