ping(네트워크 유틸리티)
ping (networking utility)![]() Linux 버전의 ping | |
원저작자 | 마이크 뮤스 |
---|---|
개발자 | 다양한 오픈 소스 및 상용 개발자 |
초기 릴리즈 | 전 |
플랫폼 | 크로스 플랫폼 |
유형 | 명령어 |
면허증. | 퍼블릭 도메인, BSD, GPL, MIT |
ping
는 Internet Protocol(IP) 네트워크에서 호스트의 도달 가능성을 테스트하기 위해 사용되는 컴퓨터 네트워크 관리 소프트웨어 유틸리티입니다.대부분의 임베디드 네트워크 관리 소프트웨어를 포함하여 네트워킹 기능을 갖춘 거의 모든 운영 체제에서 사용할 수 있습니다.
ping 은, 발신기지 호스트에서 송신지 컴퓨터로 송신되어 송신원에 에코백 되는 메시지의 라운드 트립 시간을 측정합니다.이 이름은 소리의 펄스를 전송하고 메아리를 듣고 [1]수중 물체를 탐지하는 능동 음파 탐지 용어에서 유래했습니다.
ping은 Internet Control Message Protocol(ICMP) 패킷에 의해 동작합니다.ping 에서는, 타겟호스트에 ICMP 에코 요구를 송신해, ICMP 에코 응답을 대기합니다.프로그램은 오류, 패킷 손실 및 결과의 통계 요약을 보고합니다. 여기에는 일반적으로 최소, 최대, 평균 왕복 시간 및 평균의 표준 편차가 포함됩니다.
ping 유틸리티의 명령줄 옵션과 출력은 구현에 따라 달라집니다.옵션에는 payload 크기, 테스트 수, 프로브가 통과하는 Network Hop(TTL; 네트워크홉 수) 제한, 요구 간격 및 응답 대기 시간이 포함됩니다.많은 시스템에서는 ICMPv6를 구현하는 Internet Protocol version 6(IPv6) 네트워크에서 테스트하기 위한 지원 유틸리티 ping6을 제공하고 있습니다.
역사
이 ping 유틸리티는 1983년 12월 Mike Muuss가 Ballistic Research Laboratory(현재의 미군 연구소)에서 근무하던 중 작성한 것입니다.IP 네트워크 진단 및 측정에 ICMP 에코 패킷을 사용하는 것에 대한 David Mills의 발언은 Muuss가 네트워크 문제를 [1]트러블 슈팅하기 위한 유틸리티를 작성하도록 유도했습니다.음파탐지기가 내는 소리와 방법론이 음파의 반향 [1][2]위치와 비슷하기 때문에 저자가 붙인 이름이다.PING용 Backronym Packet InterNet Groper는 30년 이상 사용되어 왔으며, Muuss는 PING이 약자로 의도된 것이 아니라고 주장하지만 Mills의 이름 확장을 [1][3]인정했습니다.처음 출시된 버전은 퍼블릭도메인 소프트웨어입니다.이후 버전은 모두 BSD 라이선스로 라이선스되었습니다.ping은 4.3에 처음 포함되었습니다.BSD.[4] FreeDOS 버전은 Erick Engelke에 의해 개발되었으며 GPL에 [5]따라 라이센스가 부여됩니다.팀 크로포드는 리액트를 개발했고OS 버전이 라이선스는 MIT [6]라이선스로 취득됩니다.
RFC 1122에서는 호스트가 ICMP 에코 요구를 처리하고 그 대가로 [7]에코 응답을 발행해야 한다고 규정되어 있습니다.
호출 예시
다음으로 타겟호스트 www.example.com 에 5 개의 프로브(디폴트로는 1 초 간격, -i 옵션을 사용해 설정 가능)를 송신하기 위해서 Linux 로 ping 를 실행했을 경우의 출력을 나타냅니다.
$ ping - c 5 www.example.com PING www.example.com (93.184.216.34) : icmp_seq=0 ttl=56 time=11.632 ms 64 바이트 (93.184.216.34 ~93.184.216.34) : icmp_seq=1 ttl56=11.726 ms 64 바이트)16.34: icmp_seq=4 ttl=56 time=11.124 ms --- www.example.com ping 통계 --- 5 패킷 전송, 5 패킷 수신, 0.0% 패킷 손실 라운드 트립 min/avg/max/stdev = 9.674/10.968/11.726/0.748 ms
출력에는 각 프로브 메시지와 얻어진 결과가 나열됩니다.마지막으로 전체 테스트의 통계를 나열합니다.이 예에서 최단 라운드 트립 시간은 9.674 ms, 평균은 10.968 ms, 최대값은 11.726 ms였습니다.측정값의 표준 편차는 0.748ms였습니다.
에러 표시
타겟 호스트에서 응답이 없는 경우 대부분의 구현에서는 아무것도 표시되지 않거나 타임아웃에 대한 알림을 정기적으로 인쇄합니다.문제를 나타내는 ping 결과는 다음과 같습니다.
- H, !N 또는 !P – 호스트, 네트워크 또는 프로토콜에 도달할 수 없음
- S: 소스 루트 실패
- F – 플래그멘테이션 필요
- U 또는 !W – 수신처 네트워크/호스트를 알 수
- I – 소스 호스트가 분리됨
- A – 대상 네트워크와의 통신이 관리상 금지됨
- Z – 대상 호스트와의 통신이 관리상 금지됨
- Q – 이 ToS의 경우 수신인 네트워크에 도달할 수 없습니다.
- T – 이 ToS의 경우 수신처 호스트에 도달할 수 없습니다.
- X – 관리상 통신 금지
- V – 호스트 우선 순위 위반
- C – 우선 순위 컷오프 유효
에러가 발생했을 경우, 타겟호스트 또는 중간 라우터는 ICMP 에러 메시지(예를 들면, 「host unreachable」또는 「TTL exceededed in transit」)를 반환합니다.또한 이러한 메시지에는 원래 메시지의 첫 8바이트(이 경우 퀀치 값을 포함한 ICMP 에코 요구의 헤더)가 포함되어 있기 때문에 ping 유틸리티는 응답을 발신된 [8]쿼리에 일치시킬 수 있습니다.
메시지 형식
ICMP 패킷
비트 0 ~ 7 | 비트 8 ~ 15 | 비트 16~23 | 비트 24 ~ 31 | |
---|---|---|---|---|
헤더 (20 바이트) | 버전/IHL | 서비스 유형(ToS) | 길이 | |
신분증 | 깃발과 오프셋 | |||
존속가능시간(TTL) | 프로토콜 | 헤더 체크섬 | ||
송신원 IP 주소 | ||||
수신처 IP 주소 | ||||
ICMP 헤더 (8바이트) | 메시지 유형 | 코드 | 체크섬 | |
헤더 데이터 | ||||
ICMP 페이로드 (옵션) | 페이로드 데이터 |
비트 0 ~ 3 | 비트 4 ~7 | 비트 8 ~ 11 | 비트 12 ~ 15 | 비트 16~23 | 비트 24 ~ 31 | |
---|---|---|---|---|---|---|
헤더 (40바이트) | 버전 | 트래픽 클래스 | 흐름 라벨 | |||
페이로드 길이 | 다음 헤더 | 홉 제한 | ||||
송신원주소(128비트) | ||||||
수신처 주소(128비트) | ||||||
ICMP6 헤더 (8바이트) | 메시지 유형 | 코드 | 체크섬 | |||
헤더 데이터 | ||||||
ICMP6 페이로드 (옵션) | 페이로드 데이터 |
ICMP [9]패킷의 범용 구성:
- IPv4 헤더(파란색): 프로토콜을 1(ICMP)로 설정하고 Type of Service를 0으로 설정합니다.
- IPv6 헤더(파란색):다음 헤더는 58(ICMP6)로 설정
- ICMP 헤더(빨간색):
- ICMP 페이로드: 다양한 종류의 응답에 대한 페이로드. 구현의 상세 내용에 따라 임의의 길이를 지정할 수 있습니다.단, IP 헤더와 ICMP 헤더를 포함한 패킷은 네트워크의 최대 전송 유닛보다 작아야 합니다.그렇지 않으면 fragment화될 위험이 있습니다.
에코 요구
에코 요구("ping")는 ICMP/ICMP6 메시지입니다.
00 | 01 | 02 | 03 | 04 | 05 | 06 | 07 | 08 | 09 | 10 | 11 | 12 | 13 | 14 | 15 | 16 | 17 | 18 | 19 | 20 | 21 | 22 | 23 | 24 | 25 | 26 | 27 | 28 | 29 | 30 | 31 |
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
타입 = 8(IPv4, ICMP) 128(IPv6, ICMP6) | 코드 = 0 | 체크섬 | |||||||||||||||||||||||||||||
식별자 | 시퀀스 번호 | ||||||||||||||||||||||||||||||
페이로드 |
클라이언트는 Identifier 및 Sequence Number를 사용하여 응답을 발생시킨 요구와 일치시킬 수 있습니다.실제로 대부분의 Linux 시스템에서는 ping 프로세스별로 하나의 식별자를 사용하며 시퀀스 번호는 프로세스 내에서 증가하는 숫자입니다.Windows 에서는, Windows 버전에 따라서 다른 고정 ID 와 기동시에만 리셋 되는 시퀀스 번호를 사용합니다.
에코 응답
에코 응답은 에코 요구에 응답하여 생성되는 ICMP 메시지입니다.이 메시지는 모든 호스트에 필수이며 요구에 수신된 정확한 페이로드를 포함해야 합니다.
00 | 01 | 02 | 03 | 04 | 05 | 06 | 07 | 08 | 09 | 10 | 11 | 12 | 13 | 14 | 15 | 16 | 17 | 18 | 19 | 20 | 21 | 22 | 23 | 24 | 25 | 26 | 27 | 28 | 29 | 30 | 31 |
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
타입 = 0(IPv4, ICMP) 129(IPv6, ICMP6) | 코드 = 0 | 체크섬 | |||||||||||||||||||||||||||||
식별자 | 시퀀스 번호 | ||||||||||||||||||||||||||||||
페이로드 |
- 식별자와 시퀀스 번호는 클라이언트가 각 에코 요구를 응답에 관련짓기 위해 사용할 수 있습니다.
페이로드
패킷의 payload는 일반적으로 ASCII 문자로 채워집니다.다음 예의 마지막 32바이트에 tcpdump 유틸리티 출력이 나타나듯이 (0x0800으로 시작하는8 바이트의 ICMP 헤더 뒤에 있습니다).
16:24:47.966461 아이피 (TOS) 0x0, ttl 128, 아이디 15103, off세트 0, 움직이다ags [없음] 프로토타입: ICMP (1), 길이: 60) 192.168.146.22 > 192.168.144.5: ICMP ec호 부탁한다, 아이디 1, 인식하다 38, 길이 40 0x0000: 4500 003c 3aff 0000 8001 5c55 c0a8 9216 E..<:...\U... 0x0010: c0a8 9005 0800 4d35 0001 0026 6162 6364 ......M5...&abcd 0x0020: 6566 6768 696a 6b6c 6d6e 6f70 7172 7374 efghijklmnopqrst 0x0030: 7576 7761 6263 6465 6667 6869 uvwabcdefghi
payload에는, 송신 시각을 나타내는 타임스탬프와 시퀀스 번호가 포함되어 있는 경우가 있습니다.이러한 번호는 이 예에서는 찾을 수 없습니다.이를 통해 ping은 각 패킷의 전송 시간을 기록할 필요 없이 스테이트리스 방식으로 라운드 트립 시간을 계산할 수 있습니다.
payload에는 Wake-on-LAN 프로토콜용 매직 패킷도 포함될 수 있지만, 이 경우 최소 payload는 표시된 것보다 깁니다.호스트가 휴지 상태일 경우 에코 요청은 일반적으로 응답을 수신하지 않지만 인터페이스가 웨이크업 요청을 받아들이도록 구성되어 있으면 호스트는 여전히 sleep 상태에서 웨이크업됩니다.호스트가 이미 활성화 되어 있고 착신 ICMP 에코 요구 패킷에 대한 응답을 허용하도록 설정되어 있는 경우 반환되는 응답에는 동일한 페이로드가 포함되어 있어야 합니다.이 명령을 사용하여 호스트가 네트워크 서비스를 재개할 수 있도록 지연된 후 새 요청을 반복함으로써 원격 호스트가 효과적으로 웨이크업 상태임을 탐지할 수 있습니다.호스트가 저전력 액티브 상태에서 sleep 상태일 경우 해당 서비스가 활성화되어 있는 경우 에코 응답 서비스가 즉시 응답할 수 있을 정도로 요청 한 번으로 해당 호스트가 웨이크업됩니다.호스트가 모든 디바이스를 완전히 웨이크업할 필요는 없으며 잠시 후 저전력 모드로 돌아갈 수 있습니다.이러한 구성은 호스트가 저전력 액티브모드로 [citation needed]어느 정도 경과한 후 웨이크업 지연이 훨씬 길어지고 휴지 상태가 되지 않도록 하기 위해 사용할 수 있습니다.
보안상의 허점
서비스 거부 공격을 실시하기 위해 공격자는 가능한 한 신속하게 ping 요구를 송신하여 ICMP 에코 요구에 의해 공격 대상자를 압도할 수 있습니다.이 기술을 ping [12]flood라고 부릅니다.
복수의 주소에 대한 ping 요구(ping sweep)는, 네트워크상의 모든 호스트의 리스트를 취득하기 위해서 사용할 수 있습니다.
「 」를 참조해 주세요.
레퍼런스
- ^ a b c d Mike Muuss. "The Story of the PING Program". U.S. Army Research Laboratory. Archived from the original on 25 October 2019. Retrieved 8 September 2010.
My original impetus for writing PING for 4.2a BSD UNIX came from an offhand remark in July 1983 by Dr. Dave Mills ... I named it after the sound that a sonar makes, inspired by the whole principle of echo-location ... From my point of view PING is not an acronym standing for Packet InterNet Grouper, it's a sonar analogy. However, I've heard second-hand that Dave Mills offered this expansion of the name, so perhaps we're both right.
- ^ Salus, Peter (1994). A Quarter Century of UNIX. Addison-Wesley. ISBN 978-0-201-54777-1.
- ^ Mills, D.L. (December 1983). Internet Delay Experiments. IETF. doi:10.17487/RFC0889. RFC 889. Retrieved 26 November 2019.
- ^ "man page ping section 8". www.manpagez.com.
- ^ "ibiblio.org FreeDOS Package -- ping (Networking)". www.ibiblio.org.
- ^ "GitHub - reactos/reactos: A free Windows-compatible Operating System". 8 August 2019 – via GitHub.
- ^ Braden, Robert T. (October 1989). Requirements for Internet Hosts -- Communication Layers. p. 42. doi:10.17487/RFC1122. RFC 1122.
Every host MUST implement an ICMP Echo server function that receives Echo Requests and sends corresponding Echo Replies.
- ^ "ICMP: Internet Control Message Protocol". repo.hackerzvoice.net. 13 January 2000. Archived from the original on 4 August 2016. Retrieved 4 December 2014.
- ^ "RFC 792 - Internet Control Message Protocol". Tools.ietf.org. September 1981. Retrieved 2 February 2014.
{{cite journal}}
:Cite 저널 요구 사항journal=
(도움말) - ^ "RFC Sourcebook's page on ICMP". Retrieved 20 December 2010.
- ^ Gupta, Mukesh; Conta, Alex (March 2006). "RFC 4443 - Internet Control Message Protocol (ICMPv6) for the Internet Protocol Version 6 (IPv6) Specification". Retrieved 10 April 2020.
{{cite journal}}
:Cite 저널 요구 사항journal=
(도움말) - ^ "What is a Ping Flood ICMP Flood DDoS Attack Glossary Imperva". Learning Center. Retrieved 26 July 2021.
추가 정보
- Dyson, Peter (1995). Mastering OS/2 Warp. Sybex. ISBN 978-0782116632.
- John Paul Mueller (2007). Windows Administration at the Command Line for Windows Vista, Windows 2003, Windows XP, and Windows 2000. John Wiley & Sons. ISBN 978-0470165799.
- McElhearn, Kirk (2006). The Mac OS X Command Line: Unix Under the Hood. John Wiley & Sons. ISBN 978-0470113851.
외부 링크
