SOFTELメモ Developer's blog

会社概要 ブログ 調査依頼 採用情報 ...
技術者募集中

pingでネットワークの速度を測る

pingコマンドで、指定したサイズと返ってきた時間でネットワークの速度の目安が測れる。

帯域 [bytes/s] ≒ (データ・サイズ×2)÷所要時間

一度に送信してよいpingのサイズは65535バイトまで。

ほどほどに大きい方が計測は正確になるので、60000バイトくらいを送ってみる。
(場合によっては(セキュリティのために)フラグメント化したIPパケットの通信が禁止されている場合があるので、その場合はフラグメントを起こさない最大サイズに近い1400bytes程度にするのがよい。とのこと)

例1) 近くのサーバー
60000 * 2 / 0.012 = 10000000 → 10MB/s

C:\>ping -l 60000 192.168.0.211

192.168.0.211 に ping を送信しています 60000 バイトのデータ:
192.168.0.211 からの応答: バイト数 =60000 時間 =12ms TTL=64
192.168.0.211 からの応答: バイト数 =60000 時間 =12ms TTL=64
192.168.0.211 からの応答: バイト数 =60000 時間 =12ms TTL=64
192.168.0.211 からの応答: バイト数 =60000 時間 =12ms TTL=64

192.168.0.211 の ping 統計:
    パケット数: 送信 = 4、受信 = 4、損失 = 0 (0% の損失)、
ラウンド トリップの概算時間 (ミリ秒):
    最小 = 12ms、最大 = 12ms、平均 = 12ms

例2) インターネット越しの遠くのサーバー
1400 * 2 / 0.018 = 155556 → 156KB/s

C:\>ping -l 1400 example.net

example.net [115.146.19.215]に ping を送信しています 1400 バイトのデータ:
115.146.19.215 からの応答: バイト数 =1400 時間 =18ms TTL=44
115.146.19.215 からの応答: バイト数 =1400 時間 =18ms TTL=44
115.146.19.215 からの応答: バイト数 =1400 時間 =19ms TTL=44
115.146.19.215 からの応答: バイト数 =1400 時間 =18ms TTL=44

115.146.19.215 の ping 統計:
    パケット数: 送信 = 4、受信 = 4、損失 = 0 (0% の損失)、
ラウンド トリップの概算時間 (ミリ秒):
    最小 = 18ms、最大 = 19ms、平均 = 18ms

例3) ローカルは速過ぎるの巻
計算できません!

C:\>ping -l 60000 127.0.0.1

127.0.0.1 に ping を送信しています 60000 バイトのデータ:
127.0.0.1 からの応答: バイト数 =60000 時間 <1ms TTL=128
127.0.0.1 からの応答: バイト数 =60000 時間 <1ms TTL=128
127.0.0.1 からの応答: バイト数 =60000 時間 <1ms TTL=128
127.0.0.1 からの応答: バイト数 =60000 時間 <1ms TTL=128

127.0.0.1 の ping 統計:
    パケット数: 送信 = 4、受信 = 4、損失 = 0 (0% の損失)、
ラウンド トリップの概算時間 (ミリ秒):
    最小 = 0ms、最大 = 0ms、平均 = 0ms

正確な計測方法ではないので、「あのサーバーならこのくらいで正常」という目安を把握しておけば、たまには役に立つかもしれません。

関連するメモ

コメント