Chromeでwww.cnn.comをロードできますが、コマンドライン(OSX)からtracerouteを実行すると、level3.netでタイムアウトします
このChrome拡張機能を使用して、Chromeがwww.cnn.comに使用しているIPを確認しました(Chrome IPアドレスを表示するためのデバッガー): https://chrome.google.com/webstore/detail/ipvfoo/ecanpcehffngcegjmadlcijfolapggal
そして、CLIを使用して同じIPアドレスへのtracerouteを行うと、タイムアウトしますか?
この場合にtracerouteがタイムアウトになる理由を理解または理解するための診断はありますか? tracerouteとブラウザの両方が同じOSネットワークレイヤーを使用してTCP/IPトラフィックをルーティングしていると思いましたか?
途中のルーターが、ICMP時間を超えないように(つまりTTL到達途中で到達))または宛先到達不能メッセージ(つまりUDPパケットが最終ホストに到達したがポートが閉じている)を送信しないことを決定した場合、適切な動作)、tracerouteのその時点でタイムアウトが発生します。
つまり、traceroute xyz
UDPベースのtracerouteと呼ばれる処理を行っています。これは、1から始まり、ステップごとに1ずつ増加する、低いTTLでUDPパケットを送信しています。 TTLが0になる場合、パケットがルーターで死ぬ場合、RFC 792や他のいくつかによれば、そのルーターは、ICMPの「時間超過」メッセージを送信する必要があります。期限内のパッケージですが、少なくとも私たちはあなたのパッケージが死んだとあなたに伝えます。
Tracerouteを実行する方法は他にも2つあります。違いをより深く理解したい場合は、 this one などのマンページをお勧めします。しかし、簡単に言えば、ICMPエコーパケットまたはTCP SYNパケットを送信することもできます。要約すると、すべてのTTLルート沿いの「ホスト」:
traceroute
やtracert
などのすべてのコマンドラインツールのデフォルトルーターは通常のトラフィックを通過させ、TCPベースのhttpリクエストを完了させますが、UDPを奇妙なポートに静かにドロップし、ハーフオープンTCP奇妙なポートまたは低TTLのICMP pingに、ローカルtracerouteプロセスを待機したままにし、そのストップでタイムアウトします。
Tracerouteは、データがパスを解決するときにWebサーバーに依存して応答を返します。これらのサーバーは、応答を提供したり、tracerouteに応答したりする義務はありません。したがって、データが目的の場所に到達しても、tracerouteは、応答が来ないのを待っています。
ユーザーとcnn.comの間のサーバーがtracerouteの応答を送信しないことを決定した場合、残りの応答が切り捨てられる可能性があります。