ioerror

Ping 사용법(옵션), 윈도우에서 포트(port)별로 핑 테스트 하기 본문

OS

Ping 사용법(옵션), 윈도우에서 포트(port)별로 핑 테스트 하기...

반응형

PING - 존재의 확인을 위해 날려 보낸 탁구공

 

"여러 개의 호스트에 Ping을 날리고 평균값 저장하기"를 작성하다가 Ping에 대해서 정리해보자 싶어서 이 글을 작성한다.

 

1. 핑? 핑퐁!

"ping 한번 때려봐라". "ping 날려봐라" 등 무슨 네트워크 하는 사람들이 하루에 꼭 한 번은 하지 않을까 하는 말이다.

ping은 양쪽의 선수가 주고 받는 탁구공처럼 데이터 신호를 주고받음으로써 존재 여부 혹은 데이터 수신 여부를 확인하는 명령어다.

 

2. 핑을 통해 알 수 있는 것들

google.com 에 핑을 날려 보면 아래처럼 결과가 나온다.

첫 번째는 리눅스 또는 맥에서의 결과이고 다음은 윈도우에서의 결과다.

> ping google.com
PING google.com (172.217.26.46): 56 data bytes
64 bytes from 172.217.26.46: icmp_seq=0 ttl=52 time=54.918 ms
--- google.com ping statistics ---
1 packets transmitted, 1 packets received, 0.0% packet loss
round-trip min/avg/max/stddev = 38.818/45.544/77.864/9.530 ms

# 윈도우에서는
>ping google.com
Ping google.com [172.217.26.46] 64바이트 데이터 사용:
172.217.26.46의 응답: 바이트=64 시간 50ms TTL=52

172.217.26.46에 대한 Ping 통계:
	패킷: 보냄 = 1, 받음 = 1, 손실 = 0 (0% 손실),
왕보 시간(밀리초)
	최소 = 50ms, 최대 = 50ms, 평균 = 50ms

첫 번째 줄은 google.com 도메인의 서버 ip는 172.217.26.46이고 56(맥) 또는 64(윈도우) 바이트 데이터를 google.com 서버에 보낸다 라는 뜻이고 두 번째 결과에서는 서버에서 데이터를 수신했는지, 수신했으면 소요시간과 도착까지의 라우터 개수(TTL)를 표시한다.

다음은 통계부분인데 주고받은 횟수를 패킷이라 하여 표기하며, 통상 받음 데이터에 손실이 있으며 보낸 횟수 대비 받음으로 순실률을 나타내고 주고받은 최소, 최대, 평균 시간을 마지막에 확인 가능하다.

예전부터 TTL(Time To Live) 이 뭔가하고 궁금해하고 찾아봐도 이해가 안 되었는데 tracert와 비슷하다는 얘기를 듣고 이해가 좀 된다.

세상 모든 인터넷 망은 라우터들의 묶음으로 이루어졌는데 기본 값은 OS별로 정해져 있고 핑 데이터가 목적지로 가는 동안 라우터 개수만큼 감소하게 된다. 만약 기본값이 100이고 목적지까지 가는 동안의 라우터 개수가 30이면 TTL은 70이 된다. 만약 라우터 개수가 기본값을 초과한다면 데이터는 소실되는 것이다.

시간은 밀리세컨드 단위로 데이터가 갔다 오는 시간을 말하며 통상 속도를 얘기한다.

 

3. Ping 명령어 사용법(옵션)

ping 옵션은 윈도우와 유닉스(리눅스, 맥) 계열과 다른 부분이 있다. 예를 들어서 윈도우의 -n 옵션은 리눅스에서는 -c와 동일하다.

여기서는 윈도우 기준으로 살펴본다.

C:\Users\Administrator>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] [-R] [-S srcaddr] [-c compartment] [-p]
            [-4] [-6] target_name

옵션:
    -t             중지될 때까지 지정한 호스트를 ping합니다.
                   통계를 보고 계속하려면 <Ctrl+Break>를 입력합니다.
                   중지하려면 <Ctrl+C>를 입력합니다.
    -a             주소를 호스트 이름으로 확인합니다.
    -n count       보낼 에코 요청의 수입니다.
    -l size        송신 버퍼 크기입니다.
    -f             패킷에 조각화 안 함 플래그를 설정(IPv4에만 해당)합니다.
    -i TTL          Time To Live
    -v TOS         서비스 종류(IPv4에만 해당. 이 설정은 더
                   이상 사용되지 않으며 IP 헤더의 서비스 종류 필드에 영향을
                   주지 않음)입니다.
    -r count       count 홉의 경로를 기록합니다(IPv4에만 해당).
    -s count       count 홉의 타임스탬프(IPv4에만 해당)입니다.
    -j host-list   host-list에 따라 원본 라우팅을 완화합니다(IPv4에만 해당).
    -k host-list   host-list에 따라 원본 라우팅을 강화합니다(IPv4에만 해당).
    -w timeout     각 응답의 대기 시간 제한(밀리초)입니다.
    -R             라우팅 헤더를 사용하여 역방향 라우팅도
                   테스트합니다(IPv6에만 해당).
                   RFC 5095에 따라 이 라우팅 헤더는 사용되지
                   않습니다. 이 헤더를 사용할 경우 일부 시스템에서 에코
                   요청이 삭제될 수 있습니다.
    -S srcaddr     사용할 원본 주소입니다.
    -c compartment 라우팅 컴파트먼트 ID입니다.
    -p             Hyper-V 네트워크 가상화 공급자 주소에 대해 ping을 수행합니다.
    -4             IPv4를 사용합니다.
    -6             IPv6을 사용합니다.

여기서 많이 사용하는 것은 -t (중지될 때까지 핑) 또는 -n(지정된 숫자만큼 핑)이다.

그런데 -n의 지정 가능한 범위는 범위는 1에서 4294967295이라고 하는데 아마 -t 옵션도 저 영역에 있지 않을까 한다.

 

 

4. 윈도우에서 포트(port) 별로 핑 테스트 하기

원격 서버의 특정 포트가 열려 있는지 확인하려면 텔넷 명령어(telnet [host] [port])로 확인 가능지만 핑으로 간단히 확인이 가능하다.

아래에 첨부된 tcping.exe를 다운로드, 커맨드 창에서 다운로드한 위치로 이동해서 tcping [host] [port] 명령을 실행한다. (tcping.exe google.com 80)

매번 커맨드 창에서 다운로드 받은 폴더로 이동해서 명령어 실행하기 귀찮다면 별도의 폴더로 이동시키고 환경변수에  경로를 등록하거나 C:\Windows\System32에 파일을 이동하면 어디서든지 명령어 실행이 가능하다.

tcping.exe
0.18MB

제작자 홈페이지 https://elifulkerson.com/projects/ 에 가보면 유용한 프로그램이 많다. 물론 영어다.

C:\Users\Administrator>tcping google.com 80

Probing 172.217.175.14:80/tcp - Port is open - time=35.656ms
Probing 172.217.175.14:80/tcp - Port is open - time=35.669ms
Probing 172.217.175.14:80/tcp - Port is open - time=35.858ms
Probing 172.217.175.14:80/tcp - Port is open - time=36.270ms

Ping statistics for 172.217.175.14:80
     4 probes sent.
     4 successful, 0 failed.
Approximate trip times in milli-seconds:
     Minimum = 35.656ms, Maximum = 36.270ms, Average = 35.863ms

사용 옵션은 tcping 만 입력하고 엔터를 치면 도움말 내용이 표시된다.

 

C:\Users\Administrator>tcping
--------------------------------------------------------------
tcping.exe by Eli Fulkerson
Please see http://www.elifulkerson.com/projects/ for updates.
--------------------------------------------------------------

Usage: tcping [-flags] server-address [server-port]

Usage (full): tcping [-t] [-d] [-i interval] [-n times] [-w ms] [-b n] [-r times] [-s] [-v] [-j] [--tee filename] [-h] [-u] [--post] [--head] [-f] server-address [server-port]

 -t     : ping continuously until stopped via control-c
 -n 5   : for instance, send 5 pings
 -i 5   : for instance, ping every 5 seconds
 -w 0.5 : for instance, wait 0.5 seconds for a response
 -d     : include date and time on each line
 -b 1   : enable beeps (1 for on-down, 2 for on-up,
                        3 for on-change, 4 for always)
 -r 5   : for instance, relookup the hostname every 5 pings
 -s     : automatically exit on a successful ping
 -v     : print version and exit
 -j [5] : include jitter.  Optional argument controls rolling average size.
 --tee  : mirror output to a filename specified after '--tee'
 -4     : prefer ipv4
 -6     : prefer ipv6
 -c     : only show an output line on changed state

HTTP Options:
 -h     : HTTP mode (use url without http:// for server-address)
 -u     : include target URL on each line
 --post : use POST rather than GET (may avoid caching)
 --head : use HEAD rather than GET
 --proxy-server : specify a proxy server
 --proxy-port   : specify a proxy port

Debug Options:
 -f     : force tcping to send at least one byte

        If you don't pass server-port, it defaults to 80.
반응형
Comments