【3/18〜】Amazon、VMwareが語る『クラウドの未来』 スラッシュドット    はてなブックマーク  Yahoo!ブックマークに登録  印刷
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でMTUサイズを調査する
Windows XPのファイアウォール機能を活用する
ttcpでネットワーク・パフォーマンスを測定する
このリストは、(株)デジタルアドバンテージが開発した
自動関連記事探索システム Jigsaw(ジグソー) により自動抽出したものです。
generated by

「Windows TIPS」

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

Windows Server Insider フォーラム 新着記事

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

RSSフィード

スキルアップ/キャリアアップ(JOB@IT)

- PR -
- PR -

お勧め求人情報

キャリアアップ 〜JOB@IT
@IT Special -PR-
  TomcatやJBossなどAPサーバ環境に関する
情報を集約! “業務”用APサーバ大百科

New!
  一気に解説! 最新のクラスタストレージ
「RAIDを超えたストレージ基準」……など

New!
  クラウド的ユーザー体験の変化は脅威か?
仮想化技術を使いこなす運用管理術を紹介

New!

  上司や部下、部署内メンバーとの情報共有
を“ガラッ”と変えるコラボツールとは?

New!
  おばかアプリ選手権、第4弾開催中!!
ムダにカッコよくてくだらない作品求ム!

  社内ファイルサーバを“クラウド”に統合
VPN直結「クラウド型ストレージ」を紹介

  Twitterのアカウントはなぜ突破された?
メールによる新手の攻撃手法とその対策

  もう仮想化のお試しフェイズは終わりだ!
Hyper-V 2.0が基幹システムも仮想化

  美人!? まあまあ? 気になる いやし系!!
PV急増で「美人時計」がとった手段とは?

  クライアント企業から求められる人材
⇒IT技術と経営戦略を併せ持つ「戦略家」

  .NET編集長が実践する「技術情報検索術」
サンプル・コードを簡単に探す“技”は?

  業務効率と情報セキュリティ対策を両立!
手間なく確実に機密情報を守る方法とは?

  進化を続ける富士通ストレージETERNUS DX
製品開発者の自信を裏付けるものとは何か

  運用管理の課題を“2つの観点”から分析
ユーザー満足度の高い「仮想環境」とは?

  【CTC事例】約30の基幹システムを統合!
膨大なバッジジョブを制御した方法は?

  仮想化すればコストは削減できるか?
仮想化に必要な「3つの視点」を解説する

  その数、なんと400台以上! グループ内
サーバの「統合管理」によるメリットは?