Windows TIPS
[Network]
  Windows TIPS TOPへ
Windows TIPS全リストへ
内容別分類一覧へ

pingでネットワークの速度を調査する

解説をスキップして操作方法を読む

デジタルアドバンテージ 打越 浩幸
2005/11/26
 
対象OS
Windows 2000
Windows XP
Windows Server 2003
ネットワークの速度を大ざっぱに測定するには、pingコマンドを利用するとよい。
pingはTCP/IPの基本ツールであり、どこでも利用できる可能性が高い。
ただし誤差を少なくするためには、データ・サイズを大きくして測定するなどの注意が必要である。
 
解説

 ネットワークの速度(ここでは単に、単位時間当たりの最大転送量の意味とする)を測定するにはさまざまな方法があり、本TIPSでも、「ftpでネットワークの速度を測定する」や「ttcpでネットワーク・パフォーマンスを測定する」などの方法を紹介してきた。これ以外にも、ファイルをコピーしてその所要時間から速度を割り出したり、ルータなどのネットワーク機器が備えるパフォーマンス・カウンタ値をモニタするなどの方法もあるだろう。

 だがこれらの方法は、あらかじめ相手側のサーバ上で何らかサービスを動かしておいたり、ツールを準備しておくなどの必要があり、いつでもどこでも利用できるという方法ではない。厳密なパフォーマンスを測定するのならば、そのような方法でもよいだろうが、単にネットワーク回線がつながっているかどうかを調べたい場合や、その回線が混雑しているかどうかを大まかに知りたいだけならば、準備も不要で、もっと簡単な方法がある。pingコマンドを利用する方法である。

TIPS「pingでネットワーク・トラブルの原因を調査する」
TIPS「pingを繰り返し実行させる」

 pingコマンドは、ICMPのEchoプロトコルを使った、IPパケットの到達可能性を調査するコマンドであり、TCP/IPにおける最も基本的なツールの1つである(pingの基本的な使い方については関連記事参照)。これを使うことにより、大ざっぱではあるが、ネットワークの速度(帯域)を調べることも可能である。本TIPSでは、その方法について解説する。


操作方法

 pingコマンドを実行すると、ICMPのEcho要求パケットが指定されたIPアドレスに送信され、通常はそのICMPパケットがそのまま相手から返送されてくる。ICMPやEchoパケットの詳細については、関連記事を参照していただきたい。

TCP/IP連載第12回「TCP/IPプロトコルを支えるICMPメッセージ」

 Windows OSのデフォルトでは、送信されるデータ・サイズ(ICMP Echoのデータ部として渡される部分のデータ・サイズ)は32bytesである。実際に送信されるパケットでは、このデータ部分に加えて、ICMP Echoヘッダが8bytes、IPヘッダが20bytes追加される。さらに下位のデータリンク層/物理層のヘッダも加算されるので(例:イーサネットならヘッダが14bytes、PPPoEなら数十bytes)、もっと長くなる。

 つまりpingを1回実行すると、これだけのサイズのパケットが往復することになるので、そこからおおよそのネットワークの速度を計算することができる。ヘッダやIPフラグメント化のオーバーヘッドなどをすべて無視すると、次のようになる。

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

 ただし実際には、途中のルータでのオーバーヘッドがあるし(受信したパケットを待ち時間0ですぐに次へフォワードしているわけではない)、pingに応答するコンピュータもがすぐにパケットを送り返してくるわけではないので(待ち時間0で応答するわけではない)、この値には誤差が含まれる。またパケット・サイズが小さいと、ほかの通信トラフィックなどの影響を大きく受けるので、正確な値にはならない。だがそのことを理解して利用すれば、十分意味のあるデータを収集することができる(ただし当該ホストがpingに応答するように設定されていなければならない)。場合によっては(ほかの方法と比べると)1〜2割程度の誤差でネットワーク帯域を調査することができる。

 pingは最も基本的なツールであり、ほぼいつでもどこでも利用することができるため、ほかの方法を試す前に、まずこの方法で概要を調査するとよいだろう。ただし誤差の入り込む余地が多いため、精度を上げるにはなるべくデータ・サイズ(pingの-lオプションで指定する値)を大きくするといった注意が必要である。

 Windows OSのpingコマンドでは、応答時間は1ms単位でしか表示されないし、1ms以下だと「time<1ms」としか表示されない。これでは正確な値は計算できない。経験的には、最低でも10ms、可能ならば数十ms以上になるように、データ・サイズを大きくするのが望ましい。

 また、デフォルトのデータ・サイズでは、データ部分のサイズに対してヘッダ部分のサイズが大きく、誤差が入りやすい(ヘッダ部分はネットワークの媒体に依存して変わるため)。ヘッダ部分の相対的なサイズを下げるため、例えば5Kbytesとか10Kbytes、可能ならば(pingコマンドで指定できる最大サイズに近い)60Kbytesなどに設定するとよいだろう。ただし場合によっては(セキュリティのために)フラグメント化したIPパケットの通信が禁止されている場合があるので、その場合はフラグメントを起こさない最大サイズに近い1400bytes程度にするのがよい。

 以下は、インターネット上のあるサイトに向けてpingを実行した場合の例である。

C:\>ping -l 60000 www.XXX.XXX.co.jp

Pinging www.XXX.XXX.co.jp [XX.XX.XX.XX] with 60000 bytes of data:

Reply from XX.XX.XX.XX: bytes=60000 time=56ms TTL=46
Reply from XX.XX.XX.XX: bytes=60000 time=54ms TTL=46
Reply from XX.XX.XX.XX: bytes=60000 time=51ms TTL=46
Reply from XX.XX.XX.XX: bytes=60000 time=53ms TTL=46

Ping statistics for XX.XX.XX.XX:
    Packets: Sent = 4, Received = 4, Lost = 0 (0% loss),
Approximate round trip times in milli-seconds:
    Minimum = 51ms, Maximum = 56ms, Average = 53ms

 サイズ60000bytesのパケットを送信し、平均応答時間は53msであった。これから計算されるネットワークの帯域はだいたい次のようになる(ヘッダ部分などは無視している)。

 帯域≒(60000×2)÷0.053≒2.2[Mbytes/s]
 (:このテストで使用した回線上でより正確なテストをしたところ、約3Mbytes/s程度の速度が出ていた。ルータなどでのオーバーヘッドのほかに、高度なフロー制御を持つTCPと、何も制御されていないIPやICMPプロトコルの差なども影響していると考えられる)

 同様のテストを、ローカルのLAN上のコンピュータに対しても行ってみると、次のようになった。

C:\>ping -l 60000 192.168.2.51

Pinging 192.168.2.51 with 60000 bytes of data:

Reply from 192.168.2.51: bytes=60000 time=11ms TTL=128
Reply from 192.168.2.51: bytes=60000 time=11ms TTL=128
Reply from 192.168.2.51: bytes=60000 time=11ms TTL=128
Reply from 192.168.2.51: bytes=60000 time=11ms TTL=128

Ping statistics for 192.168.2.51:
    Packets: Sent = 4, Received = 4, Lost = 0 (0% loss),
Approximate round trip times in milli-seconds:
    Minimum = 11ms, Maximum = 11ms, Average = 11ms

 この場合は次のようになる。

 帯域≒(60000×2)÷0.011≒10.4[Mbytes/s]
 (:FTPで測定した結果は11.2[Mbytes/s]程度だった)

 このような値を日常的に収集しておき、ネットワークにトラブルが発生した場合や、混雑していると思われるときに収集したデータと比較することにより、トラブルシューティングの助けとすることができる。ただし、回線が(あまりにも)高速だと、別の要因(テストに使用する機器のパフォーマンス不足や、TCPのような高度なフロー制御機能の不足など)により、大きく値がずれることがあるので、注意していただきたい。どちらかというと、LAN回線ではなく、WAN回線やインターネット接続回線における速度測定に向く方法だといえる。End of Article

関連記事(Windows Server Insider)
  Windows TIPS:ftpでネットワークの速度を測定する
  Windows TIPS:ttcpでネットワーク・パフォーマンスを測定する
  Windows TIPS:pingでネットワーク・トラブルの原因を調査する
  Windows TIPS:pingを繰り返し実行させる
  TCP/IP連載第12回「TCP/IPプロトコルを支えるICMPメッセージ」
     
この記事と関連性の高い別のWindows TIPS
pingでネットワーク・トラブルの原因を調査する
pingを繰り返し実行させる
pingのタイムスタンプ・オプションで進行状況を確認する
pingでMTUサイズを調査する
Windows XPのファイアウォール機能を活用する
このリストは、(株)デジタルアドバンテージが開発した
自動関連記事探索システム Jigsaw(ジグソー) により自動抽出したものです。
generated by

「Windows TIPS」

TechTargetジャパン

Windows Server Insider フォーラム 新着記事
  • 第411話 連鎖反応 (2014/4/22)
     今日の授業は連鎖反応について。ある反応が次の反応を引き起こして、反応が次々と進むことです。おいっ、聞いてるかそこっ!
  • まだ知らない人のためのOneDrive入門 (2014/4/21)
     マイクロソフト提供の個人向けオンラインストレージ「OneDrive(旧SkyDrive)」。仕事で活用するうえでのメリット/デメリットは? 最新情報で全面更新
  • Win 7をUEFIインストールするためのUSBメモリの作成 (2014/4/18)
     Windows 7をUEFIモードでインストールするためのブータブルUSBメモリを作るには、不足しているファイルを手動で追加コピーする
  • Googleドライブで特定のフォルダーを同期させない (2014/4/17)
     Googleドライブが自動的にオンラインストレージと同期するファイル群に「都合の良くないモノ」があるなら、それを含むフォルダーだけ同期から除外できる

@ITメールマガジン 新着情報やスタッフのコラムがメールで届きます(無料)

キャリアアップ

- PR -

イベントカレンダー

PickUpイベント

- PR -

アクセスランキング

もっと見る
- PR -

ホワイトペーパーTechTargetジャパン

ソリューションFLASH

「ITmedia マーケティング」新着記事

ITシステムやソリューションなどのBtoB購買者は何を求めているのか
ClickZ.comに掲載された記事では、Explore(探索)、Evaluate(評価)、Purchase(購買)...

富士通、オムロン草津工場にて「ものづくりビッグデータ分析」の実証実験を開始
富士通は4月22日、オムロンの草津工場において、プリント基板表面実装ラインの品質向上/...

第2回 ビジネスを継続していくために――BtoB企業に不可欠な「分析の知」
ビジネスを続けていくには、継続してお客さまを見つけることが必要。安定的な取引がある...