Formas de pagamento Abuse

Como funciona o comando ping

26.11.2021, 18:30

Certamente que já se deparou com uma situação em que a Internet no seu computador se interrompe subitamente. Este comportamento pode ser observado quando se utilizam modems ADSL, Wifi de longa distância, GSM e outras tecnologias semelhantes não fiáveis. Pode descobrir rapidamente se o seu computador tem Internet utilizando o utilitário ping.

No entanto, o âmbito da sua aplicação é muito mais vasto: é utilizado pelos administradores de rede para verificar a disponibilidade de um nó remoto na rede, é utilizado em vários guiões e em muitos outros locais. Neste artigo, vamos analisar o comando ping no Linux, falaremos sobre como usar o utilitário, como ele funciona, veremos suas opções e recursos.

Como o comando funciona

O utilitário ping é uma ferramenta simples de resolução de problemas de rede. Ele permite verificar se um host remoto está disponível ou não e é isso. Para isso, o utilitário verifica se o host pode responder a solicitações de rede usando o protocolo ICMP. Espero não precisar de vos dizer que todos os dados na rede são transmitidos sob a forma de pequenos pacotes. O programa transmite um pequeno pacote de dados ICMP e espera receber um pacote de resposta; se isso acontecer, considera-se que o anfitrião remoto está contactável. O ICMP ou Internet Control Message Protocol é um complemento do protocolo IP utilizado para transmitir mensagens de serviço e de erro.

O protocolo ICMP só pode transmitir dois tipos de pacotes - mensagens de comunicação de erros e mensagens de pedido. Por sua vez, as mensagens de pedido dividem-se em:

Mensagem de pedido de eco;

Mensagem de resposta de eco.

De seguida, vamos perceber o que faz o comando ping. Depois de enviar um pedido de ping para um host remoto, o utilitário define um identificador exclusivo para cada pacote, bem como o TTL e a hora em que o pacote foi enviado. Se o host estiver acessível, ele envia uma resposta; com base no tempo de envio, o utilitário pode calcular o tempo de ida e volta do pacote. Em seguida, o próximo pacote é enviado. No final, é calculado o número total de pacotes enviados e recebidos, a percentagem de perda e outros dados.

Comando ping

Agora resta-nos um pouco de prática. Mas antes de entrarmos na prática, vamos ver a sintaxe do comando e suas opções. A sintaxe é bastante simples:

$ ping [options] host_address

O formato do comando ping é muito simples. Pode passar um endereço ip ou um nome de domínio como endereço do anfitrião. As opções configuram o comportamento do utilitário. Vamos considerar as principais:

-4 - usa apenas ipv4 (padrão);

-6 - usa apenas ipv6;

-A - modo adaptativo, o tempo entre o envio de um pacote é adaptado ao tempo de transmissão e receção do pacote, mas não inferior a 200 milissegundos;

-b - permitir o ping do endereço de difusão;

-c - número de pacotes a enviar;

-D - tempo de saída como carimbo de data/hora UNIX;

-f - modo de inundação, neste modo os pacotes são transmitidos sem atraso, ele pode ser usado para ataques DoS em nós individuais. O número de pontos que o utilitário produz indica o número de pacotes perdidos;

-i - o intervalo em segundos entre o envio de pacotes;

-I - usa esta interface de rede para enviar pacotes;

-l - modo de sobrecarga, são enviados muitos pacotes e o sistema não monitoriza os pacotes de resposta;

-n - não obter domínios para endereços ip;

-r - ignora as tabelas de roteamento e envia o pacote para a interface especificada;

-s - tamanho de um pacote;

-t - define o TTL manualmente;

-v - saída mais detalhada.

Agora que já cobrimos os parâmetros básicos do comando ping e sua sintaxe, é hora de praticar, a seguir falaremos sobre como executar o ping em um host específico no Linux.

Como usar

Para verificar o desempenho da rede é muito utilizado o ping de algum site que esteja sempre disponível, como o google.com ou até mesmo o mais simples e curto ya.ru. Só precisa de passar este endereço ao utilitário nos parâmetros, ele próprio encontrará o ip e fará tudo o que for necessário:

$ ping ya.ru

Cada pacote recebeu um identificador único icmp_seq, o número de nós até ao nó alvo ttl e o tempo gasto para entregar o pacote time. Para parar o ping, prima o atalho de teclado Ctrl+C. No final, o utilitário apresenta estatísticas gerais:

packets transmitted (pacotes transmitidos) - pacotes enviados;

received - pacotes recebidos;

perda de pacotes - percentagem de pacotes perdidos;

tempo - tempo total de trabalho;

rtt min/avg/max/mdev - tempo mínimo/tempomédio/tempo máximo/desvio quadrático.

Se o comando ping não for interrompido, os pacotes podem ser enviados durante muito tempo, o que cria uma carga adicional no servidor e, por conseguinte, não é desejável. É possível limitar o número de pacotes enviados imediatamente na chamada do comando usando a opção -c:

$ ping -c 3 ya.ru

Tal como fazemos ping para um domínio, pode especificar diretamente o endereço IP. Isto permite-lhe verificar se existe uma rede quando os servidores DNS estão mal configurados. Por exemplo:

 $ ping -c 3 8.8.8.8

O próximo tipo de envio de mensagens ping é o ping flood. Com a ajuda destes pacotes, pode efetuar testes de carga do canal ou mesmo desligar a ligação à Internet de uma das máquinas. Mas estas funções só podem ser utilizadas com direitos de superutilizador. Para organizar uma inundação de ping, especifique a opção -f:

$ ping -f losst.ru

Por defeito, no modo normal, cada pacote seguinte é enviado quando é recebida uma resposta ao anterior. Mas pode definir o intervalo entre o envio de pacotes -i:

$ ping -i 0.2 losst.ru

Aqui o programa ping executa uma chamada inundação configurável, especificando a intensidade com que deseja enviar os pacotes. Com a opção -D pode ver o Unix Timestamp de cada mensagem:

$ ping -D losst.ru

Vimos o que é o comando ping no Linux, como usá-lo, parâmetros básicos e métodos de aplicação. Esta ferramenta muito simples pode ser usada para testar problemas de rede e corrigi-los. Neste aspeto, o utilitário pode tornar-se indispensável.