Fazer ping em um computador é muito parecido com o envio de um email. Digamos que eu queira enviar um ping para google.com
. A primeira coisa que tenho que fazer é descobrir onde google.com
é. Para o correio, você usaria uma agenda telefônica - Isso irá traduzir um nome em um endereço que o sistema de correio pode entender. Os computadores usam o que é conhecido como servidores DNS (Domain Name System) - a mesma coisa que nslookup
exibe quando você consulta um nome específico. Se ping
não conseguir encontrar um determinado nome no DNS, ele retornará Could not find host
.
Tudo bem, então temos um endereço IP, e agora? Agora temos que rotear isso. Um endereço IP é muito parecido com o nome da rua - Ele lhe dá um lugar específico, mas não diz onde essa rua é (Bem, você poderia manter essa informação em uma tabela massiva, mas seria ENORME , e também principalmente inútil.Por que acompanhar as coordenadas de cada estrada em todos os países quando você só enviar e-mail para sua avó?). Há informações adicionais para corrigir este problema - um código postal. Você pode não saber onde a rua está, mas você sabe que o sistema de e-mail nesse código postal vai, e porque os códigos postais são um pouco ordenados (tenha paciência comigo), você sabe como chegar a esse código postal. Com computadores, isso é chamado de endereço MAC. Um computador sempre sabe a que endereços MAC está conectado diretamente e quais IPs eles sabem como rotear. Quando um computador ou roteador precisa enviar um pacote, ele procura o endereço MAC responsável por manipular esse IP e, em seguida, envia o pacote para esse sistema. Se não houver um sistema responsável por esse IP, ele retornará No route to destination
. (Imagine tentar enviar e-mails para a LUA. O carteiro só olharia engraçado para você e o devolveria.)
Agora, se o e-mail chegar até o destino, ele ainda terá que enviar uma resposta. Normalmente, isso é rápido e fácil, e você pode apenas medir o tempo entre o envio da mensagem e a resposta. Mas às vezes, a resposta se perde no e-mail. Ou talvez a vovó esteja dormindo e tenha esquecido de checar seu e-mail. De qualquer forma, você não recebe uma resposta, mesmo depois de esperar uma semana inteira! Eventualmente você simplesmente desiste. Com computadores, isso é Request timed out.
Quanto à pergunta dos computadores sem entradas de DNS, a maioria dos roteadores usa a si mesma como cache DNS e adiciona entradas de DNS falsas aos computadores que solicitam concessões de DHCP se o computador enviar um nome de host ao solicitar uma concessão de DHCP. É por isso que às vezes é possível fazer ping no nome do host de um computador. Os sistemas Windows também rastreiam os nomes NetBIOS (geralmente, os nomes de host dos computadores Windows que estão conectados na mesma sub-rede e têm o compartilhamento ativado) e tentarão resolvê-los para endereços IP, se solicitado. Não me lembro se isso funciona com ping
, mas não funciona para nslookup
, pois nslookup
é específico para verificar entradas de DNS e não entradas de NetBIOS.