네트워크
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) 초과 |
? | 알 수 없는 패킷 수신 |
반응형