Como um computador sabe quando está online e quando não?

Como um computador sabe quando está online e quando não?

Eu estava trabalhando no firmware do meu roteador hoje e precisei reiniciá-lo para concluir a atualização. Então percebi que minha internet foi desconectada por um minuto e o computador voltou a ficar online quando a inicialização foi concluída. Como ele sabia que está online de forma tão precisa?
Ele executa testes contínuos de ping nos seus gateways e depois na Internet em algum lugar? Se sim, isso pode de alguma forma causar um ping mortal em algum servidor no mundo?

Responder1

Você pode estar “desconectado” de diversas maneiras diferentes, entãocomodetecta que você está desconectado pode variar:

  • Cabo fisicamente desconectado

    Se a sua conexão com fio for fisicamente desconectada, obviamente a NIC saberá que o circuito foi cortado. É como se uma luz se apagasse porque foi desconectada.

  • Cabo desconectado logicamente

    Se a sua conexão com fio for desconectada logicamente (o cabo ainda está conectado, mas o modem ou roteador está desligado), a NIC ainda sabe porque o circuito ainda foi tecnicamente cortado. É como se a luz ainda estivesse ligada, mas a energia acabasse. Você também notará que o LED de status do link na NIC (figura 1) e no roteador (figura 2) está desligado.

  • Sem fio desconectado logicamente

    É um pouco mais complexo com uma conexão sem fio. Se o modem ou roteador sem fio falhar, o adaptador sem fio poderá detectar a conexão perdida porque, mesmo que não haja conexão física, as ondas de rádio aindaAge comouma conexão física direta, e o circuito no módulo de rádio da NIC é projetado para ser capaz de detectar um sinal sem fio ou a falta dele. (É claro que os detalhes vão além do escopo deste site e são mais adequados paraEngenharia elétrica.)

  • Desconectado da Internet

    Outra maneira de se desconectar é da Internet em geral. Isto é semelhante à desconexão lógica porque o adaptador de rede ainda está conectado. A diferença é que neste caso, até o modem ou roteador ainda está ligado e ativo, e você pode até acessar a rede local, se existir. Na verdade, isso é determinado pelo ping, mas não pelo gateway, mas sim por um servidorforaa rede; isto é, algo na Internet.

    No Windows, a partir do Vista, se você está conectado à Internet ou não, é feito ping regularmente em um servidor Microsoft. Isso é feito pelo NCSI, não devendo ser confundido com o programa de televisão com sigla semelhante. OIndicador de status de conectividade de redeé uma função do Windows que busca um arquivo fictício de uma das duas URLs da Microsoft (dependendo se você está usando IPv4 ou IPv6). Se conseguir obter o arquivo, não faz nada, mas se falhar, indica falta de conexão com a Internet (figura 3).

    É apenassupostofazer isso de vez em quando, não continuamente (veja oGatilhosseção da página NCSI), no entanto, algumas pessoas descobriram que isso acontece mais de uma vez em quando (embora isso seja provavelmente devido a uma conexão instável que mantém o registro ativado para que o Windows continue verificando novamente). No entanto, você pode alterá-lo para seu próprio servidor ou desativá-lo completamente.


figura 1: LED de link em uma porta Ethernet

Foto do LED de conexão em uma porta Ethernet

Figura 2: LEDs de conexão em um roteador

Foto do LED de conexão do roteador

Figura 3: Serviço NCSI da Microsoft relatando falta de conexão com a Internet

Captura de tela do Windows conectado, mas não à Internet

Responder2

Ele executa testes contínuos de ping nos seus gateways e depois na Internet em algum lugar?

Não.

Não é como se você precisasse de uma conexão com a Internet para que o computador detecte se está ou não conectado a uma rede. Tente desconectar o cabo entre o seu roteador (ou modem de banda larga) e o resto do mundo; você notará que o computador não percebe nenhuma desconexão, porque no que diz respeito, você ainda está conectado a uma rede. Que a rede não deixa você acessaruma rede específica(a Internet) é uma questão muito diferente. (Você pode usar exatamente as mesmas tecnologias e exatamente o mesmo equipamento usado na Internet para construir uma rede completamente separada. Não seria a Internet, mas para um computador, a menos que você procure um host conhecido específico com informações específicas. propriedades conhecidas, seria completamente indistinguível da Internet.)

Ou pegue qualquer switch de rede com alimentação aleatória e conecte um cabo de rede entre ele e seu computador, mas nada mais; há um link, de acordo com o computador, mas ele não levará você a lugar nenhum.

O que o computadorfazdetectar éa perda doligação elétricana porta de rede.Tecnicamente, detecta a perda dofísicoou possivelmente olink de dadosligação da camada. Esse fato é (explicação simplificada aqui) relatado pelo hardware ao sistema operacional, que pode então reportá-lo ao usuário da maneira que achar adequada, inclusive de forma alguma.

Por exemplo,O Linux simples apenas emite algo parecido com kernel: networkdriver 0000:02:00.0: eth0: link down(onde 0000:02:00.0está um identificador de hardware do sistema para a placa de rede e eth0é um identificador lógico) no log do sistema. Aplicativos de espaço de usuário como, por exemplo, o NetworkManager podem pegar as mesmas informações e relatá-las de uma forma mais amigável. O Windows irá, se um usuário estiver logado, obter basicamente as mesmas informações, mas exibi-las em uma mensagem pop-up dizendo algo como "desconexão de rede detectada".

Responder3

Não é necessário ping constante

Seu computador detectou pela primeira vez a perda de conectividade da camada Ethernet - o que significa que a corrente elétrica não estava mais presente em sua porta Ethernet (tomada física onde o cabo está conectado). Você também notará que a luz verde da porta Ethernet se apagou - isso acontece quando o cabo Ethernet é puxado de qualquer uma das duas extremidades. Mais tarde, quando o roteador voltou a ficar online, a eletricidade foi detectada primeiro e a luz ficou verde. Muito em brevedepoisque também o ícone na bandeja do sistema do seu PC mostrou que a conexão de rede está funcionando. Nesse ponto, pode-se dizer que a camada IP está operacional e o computador sabe que pode enviar e receber pacotes IP, pois sabe que pode se conectar ao roteador.

Dê uma olhada no modelo de camada de rede OSI.http://en.wikipedia.org/wiki/OSI_model

A resposta é que o programa ping opera emnível da camada de rede, mas o seu computador (como um sistema que utiliza suas diferentes partes integradas pelo software) está "consciente" de todas as camadas. Portanto, se a camada mais básica for interrompida ao desconectar o fio - isso acontece no nível da camada física (no fio - geralmente Ethernet). O adaptador de rede está constantemente recebendo sinais de envio na camada física. Você pode compará-lo com a operadora da rede telefônica analógica. Se você atender um telefone fixo, poderá ouvir o tom da operadora. Se você não ouvir, sabe que a linha telefônica não está funcionando. Da mesma forma, o computador "sabe" que o fio Ethernet está desconectado em ambas as extremidades, porque não há "portadora" (se usarmos esta comparação). Portanto, não há necessidade de usar ping constantemente para que o computador saiba que está conectado a uma rede física.

Lembre-se também quando falamos depingarestamos apenas falando sobrePilha de protocolos TCP/IP(particularmente seu protocolo ICMP). Para ilustrar como as conexões de Internet funcionam para navegadores da Web, considere o seguinte. Normalmente, quando o navegador Firefox deseja buscar uma página de um URL (por exemplohttp://tinyurl.com) primeiro ele pergunta ao computador qual é o endereço IP de tinyurl.com. O sistema, usando sua biblioteca de resolução, consulta um servidor DNS que fornece a resposta como 195.66.135.249. O Firefox então pede ao seu computador para obter a página padrão de tinyurl.com. Seu computador estabelece uma conexão TCP com o computador com IP 195.666.135.249 e entrega a mensagem do protocolo http solicitando a página padrão. tinyurl.com então envia de volta a página padrão pelo protocolo http que percorre o "pipeline" virtual criado pelo protocolo TCP. Isto talvez lhe dê uma ideia de como diferentes partes dos protocolos TCP/IP interoperam e ilustra que existem inúmeras maneiras pelas quais um computador pode "saber" se está conectado à rede física, à rede local e à Internet.

Para um melhor conceito de camadas, talvez você deva olhar alguns diagramas e mais teoria emhttp://www.hardwaresecrets.com/article/The-OSI-Reference-Model-for-Network-Protocols/431/1. A ideia principal seria que os protocolos em cada nível podem "fingir" que falam com o protocolo do mesmo nível no computador remoto e não precisam realmente saber muito sobre outros protocolos, apenas como receber/passar mensagens para o nível superior/inferior protocolos. Tenho certeza de que você achará a analogia com letras enfiadas umas nas outras, bastante útil.

Você verá no modelo OSI - o conjunto TCP/IP não é o único protocolo de rede disponível. Há alguns anos, os protocolos Netware IPX/SPX estavam melhor estabelecidos nas configurações de rede de escritórios e o TCP/IP era uma espécie de novato. O cabo então geralmente era coaxial e não de par trançado Ethernet.

informação relacionada