tracerouteがpingよりもはるかに時間がかかるのはなぜですか?


16

これを説明する方法は?

C:\Documents and Settings\Administrator>tracert google.com

Tracing route to google.com [64.233.189.104]
over a maximum of 30 hops:

  1    <1 ms    <1 ms    <1 ms  192.168.0.1
  2     7 ms    <1 ms    <1 ms  reserve.cableplus.com.cn [218.242.223.209]
  3   108 ms   135 ms   163 ms  211.154.70.10
  4     *        *        *     Request timed out.
  5     2 ms     *        1 ms  211.154.64.114
  6     1 ms     1 ms     1 ms  211.154.72.185
  7     1 ms     1 ms     1 ms  202.96.222.77
  8     2 ms     1 ms     2 ms  61.152.81.145
  9     1 ms     2 ms     1 ms  61.152.86.54
 10     1 ms     1 ms     1 ms  202.97.33.238
 11     2 ms     2 ms     2 ms  202.97.33.54
 12     2 ms     1 ms     2 ms  202.97.33.5
 13    33 ms    33 ms    33 ms  202.97.61.50
 14    34 ms    34 ms    34 ms  202.97.62.214
 15    34 ms   186 ms    37 ms  209.85.241.56
 16    35 ms    35 ms    44 ms  66.249.94.34
 17    34 ms    34 ms    34 ms  hkg01s01-in-f104.1e100.net [64.233.189.104]

Trace complete.

したがって、平均時間は:1 + 7 + 108 + 2 + 1 + 1 + 2 + 1 + 1 + 2 + 2 + 33 + 34 + 34 + 35 + 34 + 34 + 35 + 34よりも大きいはずです。 ping

C:\Documents and Settings\Administrator>ping google.com

Pinging google.com [64.233.189.104] with 32 bytes of data:

Reply from 64.233.189.104: bytes=32 time=34ms TTL=241
Reply from 64.233.189.104: bytes=32 time=34ms TTL=241
Reply from 64.233.189.104: bytes=32 time=34ms TTL=241
Reply from 64.233.189.104: bytes=32 time=34ms TTL=241

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

3
この質問に対する多くの悪い答え。あなたはすべての、方法で、私を思い出させるyoutube.com/watch?v=SXmv8quf_xM
トム・オコナー

回答:


16

これらの数値をすべて加算することはできません。これは、googleへのパス上の各ホップへのping時間です。当然、パスの各レッグはますます遠くになり、ping時間はさまざまに変化します。tracertの最後のping時間(34ミリ秒)とpingの発行時に受け取った時間(34ミリ秒)を見ると、これらは同じです。tracertプログラムはpingより遅くありません。

tracerouteの仕組みについて読むことをお勧めします:http :
//en.wikipedia.org/wiki/Traceroute


そうではありませんfarther and farther away

意味がわかりません。tracerouteにリストされている各IPアドレスは、ユーザーとgoogleの間にある次のルーターのアドレスです。「論理」ネットワークトポロジでは、リストを下に進むにつれて、これらはさらに遠くなります。また、ほとんどの場合、彼らはあなたの地理的位置から物理的に遠くになります。ただし、ルートが「不必要に」マップを飛び回るように見えることがあるため、これは常に正しいとは限りません。しかし、私のポイントは、物理的な距離と複数のホップがping時間を増やすということです。
-einstiien

ルート内の各ノードをpingしてみてください。同じ合計を(大体)求める必要があります。
クリスナヴァ

1
たぶん、PHPは間違ったstackoverflowサイトにあり、それはより遠くが物理的な距離を指すのに対して、さらにはネットワーク距離に適していることを意味しますか?english.stackexchange.com
dunxd

12

ニューヨークからサンフランシスコへのドライブのようなpingを見ることができます。それには200時間かかります(スイスから来たIMで、アメリカの距離に詳しくない)

しかし、運転手はニューヨークに戻って、サンフランシスコにいたことを伝えなければなりません。あなたは時計を見て、今、彼は距離のために400時間かかったと計算します。これがPingの機能です。Tracerouteの機能:ドライバーにニューヨークからサンフランシスコまで運転するよう伝え、交差点に来るたびに戻って名前を伝えます。だから彼は途中で、最初のいくつかの交差点はニューヨークにあります。だから彼はあなたに戻って運転し、あなたに岐路の名前を伝えることでかなり速いです。しかし、彼がさらに遠くに行くと、彼はあなたに戻るのにより長い時間がかかります。等々...

そのため、運転時間をすべて数えると、彼はサンフランシスコまで車で行かなければならなかった場合よりも、すべての岐路を報告するのにかなり長い時間がかかりました。これでいくつかのことが解決されることを願っています...


2
より良い例えとしては、30人のドライバーを送り、各ドライバーにニューヨークに向かうよう指示しますが、それぞれのドライバーは、最初の交差点、2番目の交差点、3番目の交差点などですべて向きを変えて戻ってくる必要があります最大30の交差点(SFとNYの間に30未満があることを願って)。
ジェドダニエルズ

0

実際、それは基本的に、PINGがネットワークを介してDNSおよび他のネットワークのアプライアンスにICMP要求を送信したためです。

ただし、Tracerouteは、TTLが非常に短い大量のパケを送信します。

たとえば、席からwww.google.comに参加しようとすると、tracerouteはTTLを1に設定してwww.google.comにパケを送信し、最初に遭遇したネットワークのアプライアンスからの応答を待ちます。

次に、Tracerouteは最初のネットワークのアプライアンスのIPを画面に表示し、その後、同じことを行いますが、今回はTTLを2などに設定します。

最後に、Tracerouteは、送信ごとにネットワークのアプライアンスの応答を待機しているため、約半分の時間待機しました。


0

tracerouteは常に、あなたにある目的地までの平均ではなく、時間の蓄積を、教えてあなたのケースでは、それが持つ34msだpingtraceroute

もしtracerouteがあなたが提案することをするなら、その出力は全く読めないでしょう。

宛先の応答時間のみに関心がある場合は、宛先へのルートで何かをデバッグする必要がある場合にping十分tracerouteです。さらに、ユーザーと宛先の間のすべてのホップはルーターであり、ほとんどの場合、ルーターは何をするか、つまり最初のパケットをルーティングし、次にpingまたはtracerouteに応答します(最初のケース、答えicmp echo reply、第2の場合には、icmp time exceeded)、彼らはまったく答えるとき、多くの場合)(もっとゆっくりと答えるん


0

後世のために、正しい答えはどれも非常に明確ではないので...

-

tracerouteに表示される各時間は、マシン(またはtracerouteを実行するマシン)からその特定のノードまでの合計時間です。

言い換えると、2番目のノードに表示される時間は、ノード1と2の間でかかった時間ではなく、ソース、最初のノード、および2番目のノードすべての合計時間です。

したがって、平均して、各ノードに表示される時間は、その特定のノードを「直接」pingした場合に得られる時間とほぼ一致するはずです(実際にはトレースルートよりも直接ではありません...通常は同じパスに従います)インターネット上で)。

「ラグスパイク」などが存在することに注意してください。遅延の原因を見つける最も正確な方法は、バッチファイル(Windowsを使用している場合)を使用してtracerouteを繰り返し実行し、任意の時点で高い数値を持つ最も近い(最も小さい番号の)ノードを見つけることです。

-

バッチファイルの場合、メモ帳を開き、次の3行を入力します。

:start
tracert -d www.google.com
goto start

次に、「Trace.bat」として保存しますが、保存する前に保存ダイアログのファイルタイプを「すべてのファイル」に変更してください。そうしないと、テキストファイルとして保存されます。

開くと、これは絶えずtraceroute(Googleへ)を実行します。ウィンドウを選択した状態でctrl + cを押すと停止できます。

-

もちろん、「www.google.com」を任意のアドレスに変更することにより、tracerouteを実行する場所を変更できます。

解決されたホスト名を表示したい場合は「-d」オプションを削除することもできますが、各ノードのDNSサーバーからホスト名を取得するため、tracerouteに時間がかかります(ただし、実際の結果自体は変更されません) )。

最後に、時間の長いノードを見つけ、別のノードに問題が発生する前にその特定のノードにtracerouteを実行したい場合、「www.google.com」をそのノードのIPアドレスまたはホスト名に変更するか、または-hオプションを使用して、検索するノードの数を指定できます。つまり、...

:start
tracert -d -h 5 www.google.com
goto start

重要な注意点は、ノードがICMPで応答しますが、ルーターの主な目的はパケットをルーティングすることであり、ICMP応答を作成することはそれが行うことのリストのはるか下にあることです。ルーターはルーティングし、時間がたつとICMPメッセージを送信します。そのため、中間時間がフルパスよりも長くなる可能性があります。中間ルーターは、エンドノードよりもはるかに忙しい可能性があります。
ロンモーピン

はい、ICMPのQOS優先度は通常低いですが、多くの場合、tracerouteを実行しているのは、問題が既に存在するためです(ゲームでラグスパイクまたは悪いpingがあります)。忙しいのは)あなたが探しているボトルネックです。
レイケエンダリル

QoSの優先順位を意味するのではなく、デバイス自体がICMP応答を作成することを意味します。ノードは実際には、パケットのルーティングでビジー状態になりすぎて、元のノードがタイムアウトする前にICMPメッセージの送信に回ることができます。ルーターは、ICMPメッセージの送信を決定する前にパケットをルーティングします。これはQoSとは関係ありません。
ロンモーピン

QoSは非常に大まかに定義された用語であり、特別な注意が必要なアクティビティ(応答パケットの構築)を除外するのではなく、同じリソースのセットを使用するすべてのアクティビティを含めると考えます。いずれにせよ、それは上記のルーターの負荷が高すぎて問題を引き起こすという事実を変えないので、tracerouteからの高い時間がまだ問題のある場所の良い指標です... ICMPよりも優先度は高いが、通常のトラフィックよりも優先度が低い大量のトラフィックの例外の可能性。
レイケエンダリル

-1

tracertはUDPパケットを使用するため、pingのようにICMPパケットを使用します。Linuxでは、traceroute -IICMP tracerouteを実行するオプションがあります。

テストでは、Googleに接続する時間はtracerouteとpingで同じです:34ミリ秒。中央のすべてのルーターは応答するための独自の時間を持っていますが、最終転送時間には影響しません。

http://en.wikipedia.org/wiki/TracerouteはTracerouteのすべてを説明しています


3
実際、Windowsでは、tracertLinuxとは異なり、デフォルトでICMPを使用しますtraceroute
フィーバス

tracertはICMP期間を使用します。ICMPはIPプロトコル1、UDPは17です。
dbasnett10年

@dbasnettもともと、tracerouteはUDPとして発信パケットを送信しましたが、もちろん、返されるパケットはICMP TTL超過メッセージです。Windowsおよびその他のtracerouteプログラムは、発信にICMPエコー要求パケットを使用します。通常、両方のメカニズムがルートに沿ったホップから送信者に返されるICMP TTL超過メッセージに依存しているため、人々がUDPトレースルートまたはICMPトレースルートを参照するとき、それらは参照しているこれらの発信パケットです。
ジェドダニエルズ

-1

しばしば失敗するDNS逆引き参照を無効にすることにより、tracerouteを向上させることができます:tracert -d www.google.com


これにより、往復時間が短縮されることはありません。ただし、DNSルックアップを行わないため、画面に結果を返すのが速くなります。
ジェドダニエルズ
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.