Linux에서 기본적으로 ping이 영원히 실행되는 이유는 무엇입니까? [폐쇄]

Linux에서 기본적으로 ping이 영원히 실행되는 이유는 무엇입니까? [폐쇄]

ping의 기본 동작을 영원히 ping으로 설정하기로 한 설계 결정의 근거는 무엇입니까?

예를 들어, 다음 기본 사용법은 주소 127.0.0.1을 영원히 ping합니다.

$ ping 127.0.0.1

~에 따르면위키피디아, 핑은 다음 용도로 사용됩니다.

IP(인터넷 프로토콜) 네트워크에서 호스트의 연결 가능성을 테스트하고 원래 호스트에서 대상 컴퓨터로 전송된 메시지의 왕복 시간을 측정합니다.

두 가지 사용 사례(접근성 및 왕복 시간/지연 시간) 모두에서 영원히 핑을 보내는 것이 최선의 선택이 아닐 수 있습니다.예상하다행동이 그래서 이상한 것 같아기본행동.

ctrl덧붙여서, + 와 같은 c약간 정제되지 않은 것 외에 종료를 위한 사용자 인터페이스 메커니즘이 없다는 점을 고려하면 이는 훨씬 더 이상해 보입니다 .

물론 핑 횟수는선택적으로count 매개변수(-c)를 사용하는 경우 제한사항이 있습니다. 예를 들면 다음과 같습니다.

$ ping -c 3 127.0.0.1

[편집하다]:

이를 명확히 하기 위해 누군가가 의견 기반 답변이 아닌 실제 개발자가 기본 동작을 결정한 이유를 언급하는 일종의 참조를 제공할 수 있기를 바랍니다. 어떤 문서에 문서나 코드 주석이 있을 수 있나요?

이 질문은 대부분 의견에 기반한 질문이기 때문에 현재 보류 중인 것으로 확인되어 덜 그렇게 하려고 노력하고 있습니다.

답변1

호스트 A와 B 사이에 경로를 설정한다고 가정합니다.

호스트 A에서 ping B를 실행합니다. 처음에는 작동하지 않았습니다.

호스트 B 또는 일부 방화벽에서 네트워크 구성을 변경하고 일단 적용하면 변경 사항이 거의 즉시 적용되는 것을 볼 수 있습니다.

그래서 이것은 매우 실용적입니다. 그렇지 않으면 을 작성해야 하는데 while ! ping B; do :; done이는 더 많은 작업입니다.

결국 이런 문제들은 모두 '당시 시스템 자원의 한계 때문'이나 '상식'으로 끝나는 경우가 많다. 이 경우에는 "상식"입니다.

답변2

다양한 구현, 다양한 선택.

-siputils-ping(Linux)에서 ping은 기본적으로 연속적인 반면, Solaris에서는 이 동작을 얻으려면 이 옵션을 사용해야 합니다 . 이는 네트워크 상태를 지속적으로 모니터링하는 데 유용합니다.

Solaris에서는 ping첫 번째 반환된 패킷 이후에 성공적으로 종료하는 기본 동작을 사용하면 스크립트에서 연결을 테스트하는 데 더 쉽게 사용할 수 있는 반면, iputils-ping을 사용하면 ping -c1 -w15(유사한) 동일한 동작을 얻으려면 사용해야 합니다.

둘 다 다른 상황에서 유용합니다.

다양한 개발자, 다양한 선택.

관련 정보