Study/네트워크

ICMP, Internet Control Message Protocol

구루마3단 2025. 3. 30. 16:24

✅ 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 등 네트워크 진단 도구에서 핵심 사용

🧪 검증된 출처