IP 프로토콜의
보조 역할
을 하는 제어 메시지용 프로토콜이다.
ICMP는 IP 네트워크에서 문제가 생겼을 때 진단하거나 알리기 위한 용도이다.
데이터를 전송하지 않고 오류/상태 메시지를 주고받는 데 사용된다.
ICMP는 IP 패킷의 한 종류로 작동한다 (즉, IP 위에서 동작함)
타입(Type) | 메시지 이름 | 설명 |
---|---|---|
0 | Echo Reply | 응답 메시지 (핑 응답) |
3 | Destination Unreachable | 목적지에 도달할 수 없음 |
5 | Redirect | 라우터 경로 변경 안내 |
8 | Echo Request | 요청 메시지 (핑 요청) |
11 | Time Exceeded | TTL 초과로 폐기됨 (Traceroute 사용 시 활용) |
가장 널리 사용되는 ICMP 기반 진단 도구이다.
ex) ICMP Echo Request(8)를 보내고, Echo Reply(0)를 받는지 확인한다.
이후, 응답 시간(ms)이나 손실 여부로 통신 가능성을 판단할 수 있다.
실패할 경우 네트워크 끊김, 방화벽 차단, DNS 등 문제 가능성이 존재한다는 뜻이다.
사용 예시
ping google.com
목적지까지 가는 경로를 추적하는 도구이다. (ICMP 기반 사용)
ex) 패킷의 TTL 값을 1부터 증가시키며 전송한다.
TTL이 0이 되면 ICMP Time Exceeded(11) 메시지를 수신
이 메시지를 통해 중간 라우터의 IP를 하나씩 확인할 수 있다.
사용 예시
traceroute google.com # Linux/macOS
tracert google.com # Windows
보안상의 이유로 일부 네트워크에서는 ICMP 패킷을 차단한다. (Ping 막힘)
ICMP는 암호화되지 않으며, DoS 공격 등에 악용될 수 있다.
하지만 문제 발생 시 네트워크 문제 원인을 빠르게 확인하는 데 매우 유용하다.