私は最近、ネットワーク輻輳の問題点を取得するためにmtr
を試しています。以下はサンプルのmtr
リクエストです
例1
$ mtr --report -c 10 my.example.com
Host: ansh0l-Lenovo Loss% Snt Last Avg Best Wrst StDev
1.|-- 192.168.0.1 0.0% 10 1.3 5.2 1.3 22.4 8.0
2.|-- 10.10.20.1 0.0% 10 3.9 2.5 1.6 4.6 1.2
3.|-- NSG-Static-*.*.*.* 10.0% 10 7.7 6.7 5.1 10.1 1.5
4.|-- AES-Static-*.*.*.* 10.0% 10 46.3 48.5 46.2 53.8 2.6
5.|-- s38895.sgw.equinix.com 0.0% 10 50.3 47.9 46.1 50.3 1.5
6.|-- 203.83.223.2 0.0% 10 49.0 48.7 47.0 51.1 1.2
7.|-- 203.83.223.23 0.0% 10 47.8 48.1 46.9 50.0 1.0
8.|-- ec2-175-*-*-*.ap-sou 0.0% 10 47.7 49.0 47.6 55.8 2.5
9.|-- ??? 100.0 10 0.0 0.0 0.0 0.0 0.0
例2
$ mtr --report -c 100 my.example.com
Host: ansh0l-Lenovo Loss% Snt Last Avg Best Wrst StDev
1.|-- 192.168.0.1 2.0% 100 5.5 3.2 1.2 94.6 9.8
2.|-- 10.10.20.1 3.0% 100 4.3 3.9 1.5 160.5 16.3
3.|-- NSG-Static-*.*.*.* 3.0% 100 9.9 8.1 4.3 99.0 9.8
4.|-- AES-Static-*.*.*.* 3.0% 100 48.6 48.9 45.9 137.0 9.4
5.|-- s38895.sgw.equinix.com 5.0% 100 46.7 49.6 45.5 155.6 11.5
6.|-- 203.83.223.2 2.0% 100 52.4 53.0 46.5 213.3 20.8
7.|-- 203.83.223.23 4.0% 100 49.1 50.0 46.2 145.6 11.5
8.|-- ec2-175-*-*-*.ap-sou 5.0% 100 49.3 50.8 46.4 169.6 12.8
9.|-- ??? 100.0 100 0.0 0.0 0.0 0.0 0.0
質問:
ホストnでのパケットドロップは=ホストn専用に送信されたパケットのパケットドロップの合計ですか?ホスト7に送信されたパケットが、以前と同じホップを持っていたと仮定するのは、どれほど安全ですか?
例1では、ホスト3と4で、パケット損失は同じです(10%)。したがって、すべてのパケット損失がノード3で発生したと想定しても安全ですか?
例1では、ホスト4で10%のパケット損失が発生した場合、パフォーマンスの観点から次のホップも影響を受けるべきではありませんか?中間ノードの1つで10%のパケット損失が発生した場合、その後のノードでもパケット損失が発生するはずです。
例2では、一部のノードの標準偏差が高くなっていますStDev。これらは信頼性の低いポイントとして解釈されるべきですか?
1)ホストnでのパケットドロップ=ホストn専用に送信されたパケットのパケットドロップの合計?
はい、それらはそのホスト専用です。 MTRは、固定TTLのパケットの送信に依存しており、TTL超過したルーターから送信される、最初に送信したICMPエコーに対する「timeexceeded」ICMP応答を受信することを期待しています。
ホスト7に送信されたパケットが、以前と同じホップを持っていたと仮定するのは、どれほど安全ですか?
かなり安全です。すべてのネットワークについて話すことはできませんが、トラフィックが複数のパスにルーティングされることを期待するホップ間ルートでは非常に珍しいことです。発生する可能性はありますが、通常よりも例外です。
2)例1では、ホスト3と4で、パケット損失は同じです(10%)。したがって、すべてのパケット損失がノード3で発生したと想定しても安全ですか?
いいえ、おそらくそうではありません。ノード3が実際に転送されたパケットをドロップしていた場合、その後、他のすべてのホップで微分損失が発生することが予想されます(したがって、ホップ5、6、7、8、および9で約10%の損失)。
3)例1。ホスト4で10%のパケット損失が発生した場合、パフォーマンスの観点から次のホップも影響を受けるべきではありませんか?中間ノードの1つで10%のパケット損失が発生した場合、その後のノードでもパケット損失が発生するはずです。
はい、本物のパケット損失を受け取っている場合は可能です。残念ながら、物事はそれよりもはるかに複雑です。
4)例2では、一部のノードのStDevが高くなっています。これらは信頼できない点として解釈されるべきですか?
mtrは本当にあなたに球場の数字を与えることができるだけです。多くのルーターは、サービス品質体制の一部としてICMPパケットをドロップします(icmpはtcp/udpトラフィックよりも重要ではありません)。他の人はトラフィックを遅らせるか、またはその両方を行うかもしれません。
本当に言えることは、そのルーターが応答する必要のあるICMPトラフィックを送信すると、パフォーマンスの信頼性が低下する可能性があるということですが、TCPなどの他のタイプのトラフィックにも同じことが当てはまるとは言えません。
要約すると、ルーターのミッドホップが原因で特定の宛先へのパケットが完全に失われた場合、将来のホップ全体で<=損失%が表示されます。
宛先ホップが0%の損失で応答する場合、パケットをドロップしていません。
一部のルーターは、応答を担当するICMPトラフィックを意図的にドロップするため、そのホップだけに限定された「追加の損失」が発生する可能性があります。そのホップが何らかの形のトラフィックシェーピングを実行し、実際にトラフィックを失うことの両方である場合、実際にどれだけの損失があるかわからないため、物事はひどく混乱します。代わりに、あなたができる最善のことは、将来のホップから最小の損失%を取り、おそらくあなたが見ている損失のその%年齢前後であると述べることです。
つまり、ルーターは、0ttlのパケットへの応答よりもトラフィックの処理を優先します。 mtrやtracerouteなどのツールは、使用しているパスを判別するのに役立ちます。それらは、そのパスのパフォーマンスを決定するのに役立ちません。これについては、 米国東海岸の「典型的な」ネットワーク遅延はどれくらいですか? への回答で詳しく説明しました。