■ ICMP는 TCP/IP에서 IP 패킷을 처리할 때 발생되는 문제를 알려주는 프로토콜 이다.


(1) ICMP(Internet Control Message Protocol)
: ICMP는 호스트 서버와 인터넷 게이트웨이 사이에서 메시지를 제어하고 에러를 알려주는 프로토콜로서 RFC 792에 정의되어있다. ICMP는 IP 데이터그램을 사용하지만, 메시지는 TCP/IP 소프트웨어에 의해 처리되며, 응용프로그램 사용자에게 직접 분명하게 보이지는 않는다. 일례로서, ping 명령어는 인터넷 접속을 테스트하기 위해 ICMP를 사용한다.


○ ICMP의 위치

 


○ ICMP의 패킷 구조

 


  - TYPE : ICMP의 메시지 타입(1byte)
               0 (Echo Reply), 4 (Source Quench), 5 (Redirect), 8 (Echo Request), 11 (Time Exceeded)
  - CODE : 각 타입별로 세부적인 값(1byte)
  - CHECKSUM : ICMP헤더의 손상여부 확인(2byte)
  - DATA : ICMP를 통해 보내는 데이터지만, 보통 의미없는 값으로 채워진다.


(2) ICMP 메시지 종류

○ 오류보고 메시지
  - Destination unreachable : 라우터가 데이터를 라우팅 못할때, 호스트가 데이터를 전송 못할때.
  - Source quench : 혼잡으로 인한 데이터 폐기.
  - Time exceeded : TTL값이 다되서 죽었을때 라우터가 보내줌.
  - Parameter problems : checksum에 의한 오류검출 후에 오류가 있다면 자료의 재전송을 요청.
  - Redirection : 라우트가 최적의 경로를 사용하지않는 호스트를 발견하면 최적의 경로를 알려줌.

○ 질의 응답 메시지 (Ping)
  - Echo Request : 호스트 진단을 위한 요청.
  - Echo Reply : 호스트 진단을 위한 응답.


(3) ICMP 특징

  - IP에 문제가 생기면 Error msg가 발생하는데, Error msg 전송 중 또 문제가 생기면 Error msg는 발생시키지 않는다.
  - MTU값에 의해 분리된 message에 문제가 생기면 각 조각마다 error message를 심는 것이 아니라 가장 첫조각에만 명시한다.
  - 멀티캐스트 주소를 가진 데이터는 error message가 생성되지 않는다.
  - 루프백이나 0.0.0.0과 같이 특수 주소를 가진 데이터에 대해서는 error message가 생성되지않는다.

'T heory > Protocol' 카테고리의 다른 글

RTP & RTCP  (0) 2012.12.18
FTP의 Active Mode 와 Passive Mode  (22) 2012.06.27
IPC (InterProcess Comunication) - 프로세스간 통신  (0) 2012.03.28
TCP 와 UDP 프로토콜 (서술형)  (1) 2012.03.08
TCP 와 UDP 프로토콜  (2) 2012.03.08
by 민트앤라떼 2012. 4. 17. 12:41