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.

user10232
fonte
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.

JYelton
fonte
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.

ho1
fonte
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).

Pablo Santa Cruz
fonte
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.

sinni800
fonte