none
Pingコマンドのオプションについて RRS feed

  • 質問

  • はじめて参加しますNorikazeと申します。

    WindowsXPではping **.**.**.** -w 500のように、オプション(timeout)を設定することができましたが、Windows7では、設定はできますが、Pingの応答が安定しません(timeoutがたまに発生)

    -wの値を1000にすると安定し、-wの値を999以下にすると不安定になります。

    windows7での-wオプションの範囲が変わったんでしょうか?

    また、設定できる範囲はいくつなんでしょうか?

    ご教授をお願いします。

    2013年11月18日 6:47

すべての返信

  • こんにちは、norikazeさん
    フォーラムオペレータの佐伯 玲 です。

    pingコマンドの-wオプションはタイムアウトの時間の指定するだけですので応答時間には基本的に影響を与え辛いかと思います。
    こちらでも少し調べてみたのですがWindows XPとWindows 7でpingコマンドの仕様が異なるという情報も特に見当たりませんでした。

    ちなみにWindows XP環境の端末とWindows 7環境の端末それぞれ-wオプションを指定しない場合(或いは閾値を超えないような値に設定した場合)に双方の環境で応答時間の差異は見受けられないでしょうか?


    また、-wオプションの指定桁数についてもちょっと情報が見当たりませんでした。
    Windows Server 2008についての記事ですが指定桁数についは記載されてはいないもののpingコマンドの情報がLibraryにあったのでご紹介させていただきます。

    Using the Ping Command
    http://technet.microsoft.com/en-us/library/cc732509(v=ws.10).aspx

    ※こちらの日本語版の記事では-wオプションのデフォルト値が4000と1000が混在しているのですが英語版記事では4000で統一されております。


    宜しくお願い致します。


    TechNet Community Support 佐伯 玲

    • 回答の候補に設定 佐伯玲 2013年11月20日 0:25
    • 回答の候補の設定解除 佐伯玲 2013年11月28日 6:33
    2013年11月19日 2:50
  • 佐伯様

    お世話になります。

    ネットワーク環境とコマンド詳細を書きます。

    ●ネットワーク環境

    Pingの応答時間は、20msです。

    ●コマンド詳細

    ①WindowsXP:ping **.**.**.** -w 1000

    ②WindowsXP:ping **.**.**.** -w 500

    ③Windows7:ping **.**.**.** -w 1000

    ④Windows7:ping **.**.**.** -w 500

    結果

    ①②③はPing応答の欠けはありません

    ④は時々TimeOutが発生

    ※パケットをチャプチャーしたところ、Pingの応答が正常になっていました。

    Windows7でTimeOut時間のしきい値(-w)を1000以下にした時に、TimeOut表示に

    なります。パケットは送受信できているのに、表示がおかしい気がします。

    2013年11月25日 1:12
  • "パケットをチャプチャーしたところ、Pingの応答が正常になっていました" という事なので、( 物理的なネットワークと ping.exe の間の処理を担当する ) NIC , NIC Driver , Ndis Filter Driver などがパケットの Drop や処理をブロックしてないかどうか、が疑われます。
    2013年11月25日 4:01
  • 中年やっちゅねん様

    ご意見ありがとうございます。

    NIC , NIC Driver , Ndis Filter Driver などがパケットをDropしているか確認する

    方法がわかりません。教えていただけますでしょうか。(素人ですいません)

    一点、確認したのですが、コマンドプロンプトでPing **.**.**.** -w 500 -n 100を実行しました。

    結果 2/100Loss(表示)でした。

    netstat -s で確認すると、エコー:100 エコー応答:100 でした。

    パケットロスは無いように思えますが、コマンドプロンプトの表示では、Lossしている表示になってしまいます。

    誤表示なのか、Lossっているの判断がつきません。

     

    2013年11月25日 4:14
  • ping 送信時、以下のようなスタックで NIC Driver に I/O をディスパッチしている様です。
    ( Hyper-V Host で ping を実行し、確認したスタックです。vmswitch.sys や ax88772.sys のところは環境によって変わります。)

    tcpip.sys!UdpSendMessages
    tcpip.sys!UdpSendMessagesOnPathCreation
    tcpip.sys!IppSendDatagramsCommon
    tcpip.sys!IppPacketizeDatagrams
    tcpip.sys!IppDispatchSendPacketHelper
    tcpip.sys!IppFragmentPackets
    NDIS.SYS!NdisSendNetBufferLists
    NDIS.SYS!ndisInvokeNextSendHandler
    vmswitch.sys!VmsMpNicSendNetBufferLists
    vmswitch.sys!VmsExtPtRouteNetBufferListsWithBwCap
    vmswitch.sys!VmsExtPtRouteNetBufferLists
    vmswitch.sys!VmsExtMpRoutePackets
    vmswitch.sys!VmsExtMppIndicatePackets
    vmswitch.sys!VmsRouterDeliverNetBufferLists
    vmswitch.sys!VmsPtNicPvtPacketForward
    NDIS.SYS!NdisSendNetBufferLists
    NDIS.SYS!ndisMSendNBLToMiniport
    ax88772.sys!?


    カーネルデバッガで NDIS.sys の Completion Routine にブレークポイントを設定し、NIC Driver ( 上記の場合は ax88772.sys ですが、環境によって変わります ) から Completion Routine が call されていなければ NIC または NIC Dirver が原因、NDIS Filter Driver (  上記の場合は wmswith.sys ですが、環境によって変わります ) から Completion Routine が call されていなければ NDIS Filter Driver が原因と言えるでしょう。


    2013年11月25日 4:47
  • 中年やっちゅうねん様

    ありがとうございます。

    ちょっと難しい作業をおこなわないといけないようですね!

    少し、勉強して質問します。

    2013年11月25日 8:14
  • はじめまして。
    私も同様の問題で困っており、調べてみて幾つか分かった事があるので情報共有させて頂きます。

    この事象はコマンドプロンプトのpingだけでなく、IcmpSendEchoやIcmpSendEcho2を使用してPingを実現しているどのソフトでも発生するようです。
    Wiresharkで見ているとECHO REPLYは確かに返ってきているのに、何故かIP_REQ_TIMED_OUTのエラーになってしまう時があります。
    宛先を物理NIC経由ではなく127.0.0.1宛にしても発生しました(ただし、発生頻度は物理NIC経由に比べると大幅に少なくなります)。
    幾つかのWindows7 PCで試してみたところ何れのPCでも発生し、Windows8及び8.1の環境でも発生するようです。

    今のところ、調べられた事は以上です。
    何かの参考になれば幸いです。

    2014年2月2日 14:26
  • 本事象についての情報が公開されていました。
    http://support.microsoft.com/kb/2931152/

    2014年4月5日 5:01