Study/네트워크
ICMP, Internet Control Message Protocol
by 구루마3단
2025. 3. 30.
✅ ICMP 패킷 구조 (IPv4 기준)
ICMP는 IP 패킷의 Payload(데이터 부분)에 포함되어 전송됩니다.
가장 기본적인 구조는 아래와 같습니다.
📦 ICMP 헤더 기본 구조 (8바이트)
필드 이름 |
크기 (바이트) |
설명 |
Type |
1 byte |
ICMP 메시지 유형 (예: Echo Request=8, Echo Reply=0 등) |
Code |
1 byte |
Type에 따른 세부 코드 |
Checksum |
2 bytes |
오류 검출용 체크섬 |
Rest of Header |
4 bytes |
메시지 유형에 따라 다름 (예: ID, 시퀀스 번호 등) |
📘 예: Echo Request / Echo Reply (ping) 구조
필드 이름 |
크기 |
설명 |
Type |
1 byte |
8 (Request), 0 (Reply) |
Code |
1 byte |
0 |
Checksum |
2 bytes |
오류 검출용 |
Identifier |
2 bytes |
요청자 구분용 ID |
Sequence Num |
2 bytes |
요청 순서 번호 |
Data (Payload) |
가변 |
Ping 메시지 본문 (예: 타임스탬프, 임의의 데이터 등) |
📌 ICMP Echo Request 패킷 예시 (Wireshark 기준)
ICMP Header:
Type: 8 (Echo (ping) request)
Code: 0
Checksum: 0xf7fb
Identifier: 0x1234
Sequence Number: 0x0001
Data: 61626364656667 (임의의 데이터)
📚 주요 ICMP Type 목록 (일부)
Type |
Code |
설명 |
0 |
0 |
Echo Reply (Ping 응답) |
3 |
0~15 |
Destination Unreachable (도달 불가) |
5 |
0~3 |
Redirect (경로 변경 제안) |
8 |
0 |
Echo Request (Ping 요청) |
11 |
0~1 |
Time Exceeded (TTL 초과 등) |
12 |
|
Parameter Problem |
13/14 |
|
Timestamp Request/Reply |
예: Type=11, Code=0
은 TTL 초과 (traceroute에서 사용)
🧠 요약
- ICMP는 IP 내부의 제어 메시지용 프로토콜
- 기본 헤더는 Type, Code, Checksum, 추가 필드로 구성
- 각 Type에 따라 구조가 약간씩 다름 (Echo는 ID, Seq 포함)
ping
, traceroute
등 네트워크 진단 도구에서 핵심 사용
🧪 검증된 출처