
선선한 6월의 마지막 주말
평화롭게 끝날 줄 알았던 하루였지만 오늘도 어김없이 서버가 응답하지 않습니다... 이럴 때 습관처럼 터미널을 열고 이 명령어를 입력합니다.
[root@localhost ~]# ping google.com
PING google.com (142.250.206.14) : 56 data bytes
64 bytes from 142.250.206.14: icmp_seq=0 ttl=117 time=15.374 ms
64 bytes from 142.250.206.14: icmp_seq=1 ttl=117 time=16.492 ms
64 bytes from 142.250.206.14: icmp_seq=2 ttl=117 time=15.005 ms
64 bytes from 142.250.206.14: icmp_seq=3 ttl=117 time=10.206 ms
64 bytes from 142.250.206.14: icmp_seq=4 ttl=117 time=14.223 ms
64 bytes from 142.250.206.14: icmp_seq=5 ttl=117 time=10.620 ms
64 bytes from 142.250.206.14: icmp_seq=6 ttl=117 time=13.581 ms
^C
많게는 하루에도 수십 번씩 무심코 사용하는 이 명령어. 그런데 왜 하필 이름이 ping일까요? 하고 궁금해 본 적 없으신가요? 이 짧고 단순한 단어에는 생각보다 낭만적이고 직관적인 역사가 숨어있습니다.
깊은 바닷속 잠수함의 SONAR
Ping이라는 단어의 모태는 바로 잠수함의 소나(SONAR, 음파탐지기) 시스템입니다. 영화나 드라마에서 잠수함이 등장하는 장면을 떠올려 보시면 사방이 꽉 막힌 어두운 심해 속에서 주변을 탐지하기 위해 소리를 보냅니다.
핑------
그리고 시간이 조금 흐룬 뒤, 무언가에 반사되어 돌아오는 소리를 듣습니다.
잠수함 → 음파 발사 (핑---) → 물체/암초
잠수함 ← 반사되어 돌아옴 ← 물체/암초
SONAR(SOund Navigation And Ranging) 소리를 이용해 물체의 위치와 거리를 측정하는 기술입니다. 원리는 매우 단순합니다. 소리를 내 보내고, 반사되어 돌아오는 왕복 시간을 계산해 보이지 않는 물체의 존재와 거리를 파악하는 것입니다.
SONAR를 컴퓨터 PING으로
이 소나 시스템의 원리를 컴퓨터 네트워크에 그대로 가져온 사람이 있습니다. 1983년 미국 육군 탄도연구소의 컴퓨터 과학자였던 마이크 무스(Mike Muuss)입니다. 당시 그는 네트워크 장애가 발생했을 때 원인을 쉽게 찾지 못해 애를 먹고 있었습니다. 그는 아주 단순하게 "상대방 컴퓨터가 살아있는지, 나와 연결이 잘 되어 있는지"만이라도 먼저 확인하고 싶었습니다. 이때 그의 머릿속을 스친 것이 바로 잠수함의 소나였습니다.
그는 타깃 컴퓨터를 향해 작은 데이터를 던지고, 그것이 돌아오는 시간을 측정하는 간단한 프로그램을 만들었습니다. 그리고 잠수함의 음파 탐지 소리를 본따 이 프로그램의 이름을 ping이라고 지었습니다.
Ping이란?
컴퓨터는 소리를 보내지 못하는 대신 눈에 보이지 않는 아주 작은 데이터를 보냅니다. 바로 ICMP Echo Request 패킷입니다. 그리고 상대 서버가 정상적으로 살아 있다면, 소나가 반사되듯 ICMP Echo Reply를 돌려줍니다. 쉽게 말해 컴퓨터가 상대방에게 짧은 인사를 보내고 답장이 돌아오기까지 얼마나 걸렸는지를 확인하는 것입니다.
[내 컴퓨터] → ICMP Echo Request (거기 계신가요?) → [상대 서버] → ICMP Echo Reply (네, 여기 있습니다) → [내 PC]
이 과정을 통해 우리는 다음과 같은 네트워크 상태를 확인할 수 있습니다.
- 상대 서버가 살아 있는지 여부
- 응답 시간이 얼마나 걸리는지(지연 시간)
- 가는 도중 패킷이 손실(Loss)되지는 않는지
소나가 바다를 탐색했듯, Ping은 네트워크 너머의 세계를 탐색합니다.
Ping 속도측정
일부 사람들은 Ping은 "인터넷 속도를 측정하는 명령어"라고 생각합니다. 하지만 사실은 조금 다릅니다. Ping이 측정하는 것은 다운로드 속도가 아니라 패킷이 목적지까지 갔다 돌아오는 왕복시간(Round Trip Time, RTT) 즉 지연시간(Latency)입니다.
터미널 창에서 나오는 time=23ms라는 결과는 패킷이 상대 서버까지 갔다 돌아오는데 총 23밀리초 (1000분의 23초)가 걸렸다는 의미입니다. 속도가 아무리 빨라도 이 왕복 시간이 길어지면 우리는 흔히 "핑이 튄다", "렉이 걸린다"라고 느끼기 때문입니다.
Ping이 느리면 우리가 체감하는 인터넷 속도(반응 속도)가 느리니 속도 측정이랑 비슷한거 아냐?
- 인터넷 상품 속도(대역폭)
도로의 왕복 차선 수 (한 번에 얼마나 많은 차가 지나갈 수 있는가?) - Ping (지연 시간)
도로 위를 달리는 자동차의 최고 속도(출발지에서 목적지까지 얼마나 빨리 도착하는가?)
예를 들어 제가 1Gbps(기가 인터넷) 상품을 쓴다고 했을 때, 한 번에 엄청난 양의 데이터를 보낼 수 있는 8차선 고속도로를 뚫어 놓은 셈입니다. 그런데 해외(예 미국) 서버에 있는 웹사이트에 접속하거나 고사양 해외 게임을 하면 Ping이 150ms~200ms로 치솟습니다. 한국에서 미국까지의 물리적 거리 때문에 데이터(패킷)가 오가는 왕복시간 자체가 오래 걸리기 때문입니다.
- 웹 서핑이나 게임을 할 때 (Ping의 영향)
클릭을 해도 0.2초 뒤에 반응하니깐 "인터넷 왜 이렇게 느려?" 라고 체감하게 됨 (반응속도가 느림) - 대용량 영화를 다운로드할 때 (대역폭의 영향)
일단 다운로드가 시작되면 8차선 도로를 꽉 채워서 데이터가 쏟아져 들어오기 때문에 최고 속도(기가비트)로 아주 빠르게 다운로드됨
즉 데이터가 출발해서 도착할 때까지 걸리는 시간(Ping)은 느리지만 한 번에 실어 나르는 데이터의 양(속도)은 엄청나게 빠를 수 있다는 뜻입니다. 공학적으로 이 둘을 엄격하게 구분하지만, 실시간 반응이 중요한 현대의 웹 서핑과 게임 환경에서는 결국 ping이 우리의 체감 속도를 결정하는 핵심 요인인 것도 맞습니다.
역두문자어(Backronym)
재미있는 사실은 ping은 원래 개발자가 소나 소리(의성어)에서 따온 독창적인 이름이었습니다. 하지만 시간이 흐르면서 이 명령어의 본질을 너무나 잘 표현한 그럴듯한 풀이가 붙게 되었는데 이를 역두문자어라고 합니다.
- Packet Internet Groper(또는 Network Groper)
인터넷 패킷을 통해 (상대방을) 찾다/조사하다
원래 이름을 정하고 짜 맞춘 약자이지만 명령어의 역할과 너무 잘 맞아 떨어 저서 지금은 공식 명칭처럼 함께 쓰이기도 합니다.

매일 밤바다로 쏘아 올리는 현대의 음파
결국 터미널을 열고 ping 명령어를 입력하는 것은 칠흑 같이 어두운 심해 속에서 잠수함이 외롭게 음파를 쏘아 보내며 주변의 존재를 확인하던 행위와 맞닿아 있는 셈입니다. 보이지 않는 디지털 네트워크라는 거대한 바다 너머로 "거기 누구 있나요?"라는 존재 확인의 기록을 남기는 행위니까요.
오늘도 누군가는 서버를 향해, 또 누군가는 게임 서버를 향해 그리고 또 다른 누군가는 원격지의 장비를 향해 작은 패킷 하나를 보냅니다
"거기 계신가요?"
그리고 잠시 후 돌아오는 응답을 보며 안도의 한숨을 내쉽니다.
동료 개발자분들과 방문자분들 이 보낸 모든 ping이 유실 없이 무사히 되돌아오는 안전한 안부인사 되시길 바랍니다.
감사합니다 :)

'Log > IT TMI' 카테고리의 다른 글
| 버그(Bug) 그리고 디버깅(Debugging) (0) | 2026.06.20 |
|---|---|
| 우리가 매일 하는 로그인(Login) (0) | 2026.06.13 |