네트워크

ICMP(Internet Control Message Protocol)

Mostlove 2025. 4. 9. 17:37
728x90
반응형

📌 ICMP(Internet Control Message Protocol) 정리

네트워크에서 오류 메시지 전송과 흐름 제어 역할을 수행하는 제어 메시지 프로토콜!


🔹 1. ICMP란?

✅ 네트워크층에서 동작하는 제어 메시지 프로토콜
네트워크 상태 및 오류 메시지 전송, 경로 추적, 흐름 제어 역할 수행
라우터와 호스트 간의 통신을 보조하며, 네트워크 문제를 진단하는 데 사용


🔸 2. ICMP의 주요 기능

기능 설명
🔍 연결 확인 (Ping) 대상 노드가 정상적으로 작동 중인지 점검
📍 경로 추적 (Traceroute/Tracert) 패킷이 목적지까지 가는 경로 및 중간 라우터 정보 확인
🚫 오류 메시지 전송 목적지 도달 불가, 패킷 손실 등 알림
흐름 제어 (Source Quench) 네트워크 과부하 시 송신 속도 조절 요청
🔄 라우팅 정보 업데이트 (Redirect) 더 나은 경로가 있을 경우 송신자에게 알려줌

🔹 3. ICMP 주요 메시지 종류

1) 목적지 도달 불가 (Destination Unreachable)

코드 메시지 설명
0 Network Unreachable 네트워크 경로가 존재하지 않음
1 Host Unreachable 대상 호스트에 도달할 수 없음
2 Protocol Unreachable 지원되지 않는 프로토콜 사용
3 Port Unreachable 대상 호스트의 특정 포트가 닫혀 있음
4 Can't Fragment 패킷 분할이 불가능하여 전송 실패

2) 흐름 제어 (Source Quench)

  • 📉 네트워크 혼잡 발생 시 송신 속도를 줄이도록 요청
  • 라우터가 과부하 상태일 때 송신자에게 메시지를 전송하여 패킷 전송 속도를 줄이도록 함

3) 라우팅 경로 변경 (Redirect)

  • 🚦 더 나은 경로가 있을 경우 송신자에게 새로운 경로를 알림
  • 라우터가 더 효율적인 경로를 알고 있다면 ICMP Redirect 메시지를 보내 라우팅 경로 변경을 유도

4) TTL 초과 (Time Exceeded)

  • 패킷이 너무 많은 라우터를 거쳐 TTL(Time To Live)이 0이 되었을 때 전송됨
  • TTL=0이면 패킷 폐기 후 송신자에게 ICMP 메시지 전송

🔸 4. Ping과 Traceroute의 역할

Ping (연결 확인)

  • ICMP Echo Request & Echo Reply 메시지를 사용
  • 네트워크 연결 상태 점검 및 응답 속도 확인
  • 예시 명령어:
  • ping 8.8.8.8

Traceroute (경로 추적)

  • 패킷이 목적지까지 가는 경로를 표시 (라우터 정보 포함)
  • ICMP 메시지 및 TTL을 활용하여 경로 탐색
  • 예시 명령어 (Windows에서는 tracert 사용):
  • traceroute 8.8.8.8 # Linux tracert 8.8.8.8 # Windows

🔹 5. ICMP 응답 코드 정리

응답 코드 설명
! ICMP Echo 응답 수신 (정상 작동)
. 응답 대기 중 타임아웃 발생
U 목적지 호스트 도달 불가 (ICMP Type3 Code1)
Q 네트워크 과부하 발생 (Source Quench)
P 목적지 포트 도달 불가 (ICMP Type3 Code3)
A ACL(Access Control List)에 의해 패킷 차단됨
& TTL(Time To Live) 초과
? 알 수 없는 패킷 수신

 

반응형