7. ICMP(Internet Control Message Protocol)


  IP(Internel Protocol)에는 오로지 패킷(Packet)을 목적지에 도달시키기 위한 내용들로만 구성되어 있다. 따라서, 정상적으로 목적지 호스트(Host)에 도달하는 경우에는 IP로서 통신이 성공하고 종료되므로 아무런 문제가 없다.

  그러나, 만일 전달해야 할 호스트가 꺼져 있거나, 선이 단절된 경우 같은 비정상적인 경우에 이 패킷전달을 의뢰한 출발지호스트(Source Host)에 이러한 사실을 알려야 하지만, IP(Internet Protocol)에는 그러한 에러에 대한 처리 방법이 명시되어있지 않다.

  이러한 IP의 부족한 점을 메꾸기 위하여 사용되는 것이 바로 ICMP(Internet Control Message Protocol)이다.

  ICMP는 해당 호스트가 없거나, 해당 포트에 대기중에 서버프로그램이 없는등의 에러 상황이 발생할 경우 IP헤더에 기록되어 있는 출발지 호스트(Source Host)로 이러한 에러에 대한 상황을 보내주는 역할을 수행하게 된다. 물론, 이 외에도 메시지를 제어(Control)하는 추가적인 기능들이 있다.

  ICMP는 RFC792 Internet Control Message Protocol 에 기술되어 있다.

  다음은 ICMP 패킷의 기본 포맷이다.

    0                   1                   2                   3   
    0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 
   +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
   |     Type      |     Code      |          Checksum             |
   +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
   |                       ICMP Message       ....                 |
   +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
    
  각 부분의 의미는 다음과 같다.

TypeICMP메시지의 종류를 나타난다.
Code메시지 타입별로 추가적인 코드를 제공하는데 사용된다.
ChecksumICMP헤더의 손상여부 확인 용
ICMP Message메시지 타입별 추가 정보


  먼저, ICMP의 Type은 다음과 같다.(대부분이 RFC792에 기술되어 있고, 일부는 다른 문서에 포함되어 있다.)

0Echo Replyping에 대한 응답
3Destination Unreachable도달불가능. 원인을 Code에 기록
4Source Quench트래픽 증가로 지연 중
5Redirect다른 라우터를 경우하도록 요청
8Echoping요청
11Time Exceeded시간 초과(TTL이 0이됨)
12Parameter ProblemIP패킷 옵션에러
13Timestamp현재시각 요청
14Timestamp Reply현재시간 응답
15Information Request현재 네트웍정보요청
16Information Response현재 네트워정보응답
17Address Mask Request서브넷마스크 요청
18Address Mask Response서브넷마스크응답
30Traceroute경로추적

   * Address Mask는 RFC950 Internet Standard Subnetting Procedure에,
   * Traceroute 는 RFC1393 Traceroute Using an IP Option에 기술되어 있다.

- Last Update : 2003.04.25 by Deadfire(http://www.deadfire.net)

TCP/IP 강좌
Starting
NIC
허브
Cable
이더넷
LAN
라우터
IP
ICMP
TCP / UDP
TCP
UDP
DNS
Ending

Copyright ⓒ 1997 ~, Deadfire Program Master