Ping 개요
“Ping” 의 어원은 물체(잠수함,해저 깊이 등)의 위치를 감지하는 SONAR 기능에서 본 따옴.
Mike Muuss에 의해 개발
다른 host와의 접속여부 시험.
ICMP echo request message(8)를 host에 보내고
ICMP echo reply(0)로 응답.
Round-trip Time(RTT)을 측정.
IP record route와 timestamp option이 가능
대부분의 TCP/IP 체제에서는 kernel내에 user process용이 아닌 직접적으로 Ping Server를 제공.
동작원리
Server는 반드시 identifier 와 sequence number 영역을 echo해야 하며, client가 보낸 어떤 optional data 또한 echo 되어야 함.
Unix상에서 Ping 수행시 identifier 영역은 송신하는 process의 ID이며, 이는 동일한 호스트에 동시에 여러 ping이 동작하고 있을 시 되돌아 오는 응답이 자신이 보낸 것인 지를 확인..
Sequence Number 는 “0”부터 시작하며, 새로운 echo request를 보낼 때마다 증가한다. Ping은 각각의 echo된 패킷의 sequence number를 프린트하며, 이를 통해 패킷이 손실되었거나 동일한 번호를 가진 패킷이 있는지 등을 확인.
ping message
type(0/8)
1 byte |
code(0)
1 byte |
checksum
2 bytes |
identifier
2 bytes |
sequence number
2 bytes |
optional data
|
identifier field set함으로써 응답시 보낸 것에 대한 올바른 답인지 확인.
sequence number는 0부터 시작하여 증가. 응답되는 packet에 복사된다.
일반적으로 ping이 되지 않으면 telnet, ftp 불가능. 즉, telnet은 되지 않아도 ping은 가능하다.
PING 명령을 이용한 장애진단방법
PING 유틸리티를 이용하여 네트웍에 이는 다른 디바이스에게 문의하여 IP 디바이스가 작동중인지 패킷이 그 디바이스에 도달하는데 얼마나 걸리는지를 결정할 수 있다. 이 유틸리티는 IP 디바이스간에 연결이 제대로 이루어지지 않음으로써 문제가 발생할 경우 첫단계로 사용할 수 있는 유틸리티이다. PING 유틸리티는 네트웍 에서 테스트를 수행하기 위하여 Internet Control Message Protocol(ICMP) 에코 패킷을 사용한다.
PING 유틸리티 명령어 구문:
PING [-t] [-a] [-n count] [-l size] [-f] [-I TTL] [-v TOS] [-r count] [-s count] [[-j host-list] [-k host-list]] [-w timeout] destination-list
파라미터에 대한 설명: -t : 이 파라미터는 호스트를 연속적으로 핑할 경우 사용한다. (네트웍에 과부하가 걸지지 않도록 주의한다.) 이 테스트를 멈추려면 <Ctrl> C를 누른다.
-a : 이 파라미터를 이용하여 주소를 호스트 이름으로 풀어낸다.
-ncount : 이 파라미터는 에코 요구를 몇 개 보낼지 결정하기 위하여 사용한다.
-lsize : 이 파라미터는 핑 패킷의 크기를 결정하기 위하여 사용한다.
-f : 이 파라미터는 패킷에 Don’t Fragment flag를 설정하기 위하여 사용한다. 이 플래그는 패킷이 목적 디바이스에 완전히 전달되도록 보장한다. 만일 이 플래그가 설정되어 있다면 라우터는 더 작은 패킷을 지연 하는 매체를 통과하기 위하여 조각으로 나뉠 수 없다. 만일 라우터에 그러한 매체가 포함되어 있다면 라우터는 그 패킷을 버리고 송신자에게 ICMP 목적지에 도달할 수 없음을 통보한다.
-iTTL : 이 파라미터는 Time To Live(TTL) 플래그를 설정하기 위하여 사용하며, 이는 패킷이 통과할 수 있는 라우터 (홉)의 개수를 나타낸다. 돌아다니는 ICMP 에코 패팃의 거리를 제한하려면 TTL에 작은 값을 주어야 한다.
-vTOS : 이 파라미터는 Type Of Service(TOS) 플래그를 설정하기 위하여 사용한다. 만일 네트웍이 TOS를 지원 하도록 구성되어 있다면 그러한 연결을 테스트하기 위하여 PING 유틸리티가 특정 유형의 서비스를 사용 하도록 할 수 있다.
-rcount : 이 파라미터는 목적 IP 디바이스에 이르는 홉 개수를 기록하기 위하여 사용한다.
-scount : 이 파라미터는 홉에 시간도장을 찍기 위하여 사용한다.
-jhost-list : 이 파라미터는 호스트 목록을 따라 소스 경로를 테스트하기 위하여 사용한다. 이 테스트는 패밋이 목적지에 도달하기 위하여 반드시 거쳐야 하는 특정 디바이스를 지정한다. 이 테스트는 정확한 경로를 지정하지는 않으며 다른 디바이스가 포함될 수도 있다.
-khost-list : 이 파라미터는 호스트-목록에 따라 정확한 소스 경로를 테스트하기 위하여 사용한다. 이 테스트는 패킷이 목적지에 도달하기 위하여 반드시 거쳐야 하는 모든 디바이스를 지정한다. 패킷은 다른 디바이스를 통과할 수 없다.
-wtimeout : 이 파라미터는 타임아웃을 밀리초(milliseconds)로 설정하기 위하여 사용한다. 타임아웃은 IP 디바 이스가 응답을 얼마나 오래 기다릴 것인지 결정한다.
만일 디바이스가 네트웍 통신에 문제가 있다면 DOS 프롬프트에서 다음의 명령을 입력한다: PING 127.0.0.1 127.0.0.1이란 주소는 loopback 주소이다. 이 명령이 입력되면 디바이스는 자신의 TCP/IP 스택을 핑한다. 만일 디바이스가 자신의 TCP/IP 스택을 볼 수 없다면, 그 디바이스는 네트웍에서 통신할 수 없다.
|