Por que 'ping' retorna 'a solicitação expirou' para alguns hosts?


12

Para alguns hosts, ping www.example.comele resolve seu IP, mas por que falha com o tempo limite da solicitação? Eu também tentei aumentar o tempo de resposta do ping, mas ainda assim o mesmo resultado.


Nenhum host é necessário para responder às solicitações de ping.
R. Martinho Fernandes

Respostas:


11

Um ping é um pacote ICMP. Para comparação, tráfego da Web ou HTTP, geralmente é um pacote TCP na porta 80. Um determinado servidor pode estar fornecendo respostas para fins de tráfego da Web, mas bloqueia o ICMP (ou fica atrás de um firewall que bloqueia o ICMP) e, portanto, você pode:

  • Resolva o URL para seu endereço IP
  • Conecte e visualize o conteúdo da web

Mas você não pode executar ping no endereço IP. A resposta "pedido expirou" é porque seu cliente envia o pacote inicial, aguarda uma resposta (que nunca será recebida) e desiste com um tempo limite predefinido.


6

Porque ele não consegue se conectar ao host. Só porque um servidor DNS sabe o IP que um host deve ter, não significa que o host em questão esteja executando e aceitando conexões.


Por que não falharia através do navegador?

2
@ CPX: uma solicitação de ping não é uma solicitação HTTP. O host pode estar respondendo ao último, mas ignorando o primeiro.
R. Martinho Fernandes

2
Está aceitando conexões TCP na porta 80, mas não conexões ICMP. Nada diz que um computador precisa aceitar ou responder a ambos.
Dan Grossman

2
O ICMP não estabelece conexões. Por que essa resposta é votada acima da de Pablo, por exemplo? O ICMP envia cegamente um quadro para o host de destino e aguarda alguns segundos se algo voltar.
Sinni800 16/05

4

Talvez o host esteja realmente inoperante ou talvez alguns sites bloqueiem o tráfego ICMP (o protocolo protocolo PING depende).


1

Bem, o ping também falha em www.microsoft.com, por exemplo. Isso ocorre porque esses computadores servidores usam um firewall restritivo que bloqueia os pacotes ICMP de hosts desconhecidos.

O ping também não "CONECTA" a um host, apenas envia um único pacote a eles. O TCP faz handshakes de conexão e tenta muito manter a conexão. O ping apenas envia um pacote ICMP que não é garantido para chegar ao seu destino. Assim como o UDP, para dados.

Se cada um não tiver seu destino ou o destino jogar o pacote fora (firewall?), Você não receberá uma resposta.

Isso é completamente independente do tráfego http que usa TCP.

Ao utilizar nosso site, você reconhece que leu e compreendeu nossa Política de Cookies e nossa Política de Privacidade.
Licensed under cc by-sa 3.0 with attribution required.