web-dev-qa-db-ja.com

サーバーはどのようにしてクライアントへのルートを追跡できますか?

クライアントがサーバーへのルートをトレースする方法を理解しています(tracerouteまたはtracertを使用)。しかし、サーバーがクライアントへのルートを追跡する方法はありますか?

問題は、私には遠隔地に住むインターネットユーザーのグループがいて、彼らがインターネットアクセスが遅いと不平を言っていることです。ダウンロードテストを簡単に実行して結果を保存できるソフトウェアを構築することを計画しています。妥当な量のデータを収集したら、パターンを見つけることができれば幸いです。

ダウンロードデータと併せて、tracerouteデータがあると便利です。クライアントソフトウェアを作成せずにクライアントからこれを開始する方法がわかりません。これは私がやりたくないことです。したがって、私はルート情報を収集するがサーバーによって開始されるメカニズムを見つけようとしています。

私の好みは、Linuxサーバーで作業することです。

3
Kim

これは実行したくありません。サーバーからクライアントへのtracerouteの実行は、クライアントからサーバーへの1回の実行と同じ結果を返すことが保証されていません。

パケットがNode AからNode Bに向かうルートは、反対方向に移動するルートとは簡単に異なる可能性があります。* 特定のIPパケットがたどる正確なルートは、パケットのパスに沿って介在するルーターによって決定されます。ルーターには、宛先ネットワークへの複数のルートがあり(冗長性など)、ネットワークの輻輳、リンクの障害などに基づいて、使用するルートを自由に決定できます。

したがって、報告されたルートが保証されていないため、AからBへのルートの意味のあるトレースを開始することはできませんNode B(つまり「サーバー」)から) Node AからBに送信されるパケットに実際に使用されるもの。

サーバーが実際にクライアントからサーバーへのtracerouteを「開始」する場合、サーバーは単にクライアントにサーバーへのtracerouteを実行するように命令する必要があります。もちろん、これは、まったく同じことを実行するようにクライアントで構成されたスケジュールされたコマンドまたはトリガーされたコマンドがあることと同じです。

*Node AからBに送信された一部のパケットが、対応するものとは異なるルートを取ることも可能ですが、実際には、これは通常、他の点では安定していませんネットワーク。