一部のホストで「ping」が「request timed out」を返すのはなぜですか?


12

一部のホストping www.example.comでは、IPを解決しますが、リクエストタイムアウトで失敗するのはなぜですか?また、pingの応答時間を長くしようとしましたが、それでも同じ結果になります。


ホストはping要求に応答する必要はありません。
R.マルティーニョフェルナンデス

回答:


11

pingが ICMPパケットです。比較のために、WebトラフィックまたはHTTPは一般にポート80のTCPパケットです。特定のサーバーはWebトラフィックの目的で応答を提供している可能性がありますが、ICMPをブロックする(またはICMPをブロックするファイアウォールの背後にある)ため、次のことができます:

  • URLをIPアドレスに解決します
  • Webコンテンツを接続して表示する

ただし、IPアドレスをpingすることはできません。「リクエストがタイムアウトしました」という応答は、クライアントが最初のパケットを送信し、応答を待機し(これは送信されない)、事前に設定されたタイムアウトで断念するためです。


6

ホストへの接続に失敗するため。DNSサーバーがホストに必要なIPを知っているからといって、問題のホストが実行中で接続を受け入れているという意味ではありません。


ブラウザーで失敗しないのはなぜですか?

2
@cpx:pingリクエストはHTTPリクエストではありません。ホストは後者に応答している可能性がありますが、前者は無視しています。
R.マルティーニ・フェルナンデス

2
ポート80でTCP接続を受け入れますが、ICMP接続は受け入れません。コンピューターが両方を受け入れたり応答したりする必要があるとは何も言えません。
ダングロスマン

2
ICMPは接続を確立しません。たとえば、この答えがPabloよりも高く投票されるのはなぜですか?ICMPはフレームを宛先ホストに盲目的にディスパッチし、何かが戻ってくると数秒間待機します。
sinni800

4

ホストが実際にダウンしている場合もあれば、一部のサイトがICMPトラフィックをブロックしている場合もあります(プロトコルPINGコマンドが依存しています)。


1

たとえば、pingはwww.microsoft.comにも失敗します。これらのサーバーコンピューターは、不明なホストからのICMPパケットをブロックする制限的なファイアウォールを使用しているためです。

また、pingはホストに「接続」せず、単一のパケットをホストにディスパッチします。TCPは接続ハンドシェイクを行い、接続を維持しようと非常に懸命に試みます。Pingは、宛先に到達することが保証されていないICMPパケットをディスパッチするだけです。UDPと同様に、データについても同様です。

宛先が1つ1つではない場合、または宛先がパケットを破棄する場合(ファイアウォール?)、回答は得られません。

これは、TCPを使用するhttpトラフィックから完全に独立しています。

弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.