Por que o ping é executado para sempre por padrão no Linux? [fechadas]

5

Qual foi a razão para a decisão de design de fazer com que o comportamento padrão do ping pingasse para sempre?

Por exemplo, o seguinte uso básico fará ping no endereço 127.0.0.1 para sempre:

$ ping 127.0.0.1

De acordo com Wikipedia , o ping é usado para:

test the reachability of a host on an Internet Protocol (IP) network and to measure the round-trip time for messages sent from the originating host to a destination computer and back.

Em ambos os casos de uso (alcançabilidade e tempo de ida e volta / latência), ping para sempre provavelmente não é o comportamento desejado , e é por isso que parece estranho para mim que é o comportamento padrão .

Como uma observação, parece ainda mais estranho, considerando que não existe nenhum mecanismo de interface de usuário para sair, além de algo como ctrl + c , que parece um pouco não refinado.

É claro que o número de pings pode opcionalmente ser limitado se o parâmetro de contagem (-c) for usado, por exemplo:

$ ping -c 3 127.0.0.1

[EDITAR]:

Para esclarecer, espero que alguém possa fornecer uma referência de algum tipo que mencione a razão pela qual o (s) desenvolvedor (es) real (ais) decidiram o comportamento padrão, em vez de respostas baseadas em opinião. Talvez existam comentários de documentação ou código que documentam isso?

Eu vejo que esta questão está atualmente em espera como sendo basicamente baseada em opinião, então estou tentando diminuir isso.

    
por user5071535 14.01.2016 / 22:30

2 respostas

4

Imagine que você deseja estabelecer uma rota entre os hosts A e B.

No host A, você executa o ping B. Inicialmente, não funcionará.

No host B, ou em algum firewall, você faz uma alteração na configuração da rede e, no momento em que é aplicada, você vê quase que instantaneamente que sua alteração funcionou.

Então, é muito prático fazer isso. Caso contrário, você teria que escrever while ! ping B; do :; done , o que é mais trabalho.

No final, todos esses tipos de perguntas geralmente terminam com "Por causa das limitações de recursos do sistema no momento" ou "bom senso". Neste caso, é "bom senso".

    
por 14.01.2016 / 22:49
1

Implementações diferentes, escolhas diferentes.

Em iputils-ping (no Linux), o ping é contínuo por padrão, enquanto no Solaris você precisa usar a opção -s para obter esse comportamento. Isso é útil para monitorar continuamente o status da rede.

No comportamento padrão do Solaris ping de sair com êxito após o primeiro pacote retornado, é mais fácil usá-lo em scripts para testar a conectividade, enquanto que com o iputils-ping você precisa usar ping -c1 -w15 para obter (algo parecido) mesmo comportamento.

Ambos são úteis em diferentes circunstâncias.

Desenvolvedores diferentes, escolhas diferentes.

    
por 14.01.2016 / 23:02