티스토리 뷰

Network - ICMP 




  ICMP ( Internet Control Message Protocol : 인터넷 제어 메시지 프로토콜 )


 ICMP는 네트워크 컴퓨터 위에서 돌아가는 운영체제 오류 메시지를 전송 받는데 주로 쓰이며 인터넷 프로토콜의

 주요 구성원 중 하나로 인터넷 프로토콜에 의존하여 작업을 수행한다. 


 

  ICMP - 주요특징


   - 프로토콜 번호는 1번이다.  ( TCP:6, UDP:16 )


   - TCP/IP에서 IP패킷을 처리할 때 발생되는 문제를 알리거나, 진단 등과 같이 IP 계층에서 필요한 기타

     기능들을 수행하기위해 사용되는 프로토콜 이다.


   - IP( Internet Protocol )와 하나의 쌍을 이루며 동작




 ↑ ICMP는 IP의 상위계층처럼 보이지만, 결국, ICMP는 IP계층의 일부이며, IP데이터그램의 데이터 부분에 포함되어 전달된다.




  ICMP - 형태





 

↑ ICMP 메시지의 구성





↑ ICMP 메시지의 일반적인 포멧, ICMPv4형태




1. 오류 보고 메세지 ( Error Reporting Message ) 


   -  IP 패킷 전달 오류의 보고

   -  IP 계층에서 IP데이터 그램의 전달상의 문제가 발생했을때 그 에러의 유형을 송신측 ( 데이터그램의 근원지 )에게

      보고하기 위한 일련의 메시지들이다.

   -  발신측에 오류 상황을 보다 많이 알리기위해 본문의 일부가 포함되어 전달된다.

   -  ICMP 헤더 및 원래 IP 데이터 그램의 일부가 채워진다. 

       #  IPv4 : 원본 IPv4 헤더 + 데이터부분의 첫 8바이트

           데이터 그램의 IP헤더 및 TCP,UDP헤더 내 포트주소, 순서번호가 덧 붙는다.




 - 생성 위치 및 규칙


   -  대부분의 경우에 ICMP 에러메시지는 라우터로부터 발생한다.

   -  ICMP 메시지 전달과정에 발생된 오류 메세지에 대해서는 또다시 생성하지 않는다.

   -  단편화된 IP 데이터 그램중 첫번째 것을 제외한 나머지 단편들에 대해 생성되지 않는다.

   -  수신 주소가 브로드 캐스트, 멀티 캐스트 주소인 경우에는 생성되지 않는다.   

   -  발신 주소가 무의미할 경우 ( 제로주소, 루프백 주소, 브로드캐스트주소, ..) 생성되지 않는다.




 - 타입 및 설명


   -  Destination Unreachable 에러 메세지 ( ICMPv4 : type 3 )

       # 도달할 수 없는 목적지에 계속하여 패킷을 보낼때 경고 해주는 역활


   -  Source Quench 에러 메세지 ( ICMPv4 : type 4 )

       # 수신 측 서버가 불안정하거나 폭주했을때 상황을 송신측에 알려서 송신측이 전송을 잠시 중단하거나 전송률을 줄이는 등의

           조치를 취하도록 알리는 역활


   -  Redirect 에러 메세지 ( ICMPv4 : type 5 )

       # 송신측으로부터 패킷을 수신 받은 라우터가 특정 목적지로 가는 더 짧은 경로가 있음을 알리고자할 때 사용하는 역활


   -  Time Exceeded 에러 메세지 ( ICMPv4 : type 11 )

       # 목적지 시스템에 도달하기 이전에 TTL값이 0에 이르렀음을 알리는 역활




 2. 질의/조회/정보성 메세지


   - 네트워크 상태조사를 위한 질의 요청 및 응답


   -  ICMP 에러메시지 처럼 송신측에 에러를 보고하는 역활과 다르다.

       #  송수신간에 양방향으로 질의-응답의 형태를 띤다.

       #  네트워크의 상태를 요청하고 응답 받는 메세지


   -  정의된 질의메세지 중 대부분이 다른 프로토콜에 의해 대체 된다.

  



 - 질의/정보 메세지의 주요 종류


   -  Echo Request  ( type : 8 ) 및 Echo Reply( type:0 )

      #  Ping 명령어가 이 두개를 조합하여 활용

      #  추가필드 구성 : Identifier ( 2Bytes ) , Sequence number ( 2Bytes ), Optional data( 가변적 ) 


   -  Timstamp Request( type :13 ) 및 Timestamp Reply ( type: 14 )

      #  ICMP 질의 메세지가 두 시스템간에 왕복하는데 소요된 시간 또는 시간차를 파악



   -  Address Mask Request ( type : 17 ) 및 Address Mask Reply ( type : 18 )

      #  서브넷 마스트를 얻는데 사용





  ICMP - 대표적인 응용



   -  Ping 명령어

      #  Echo Request, Echo Reply를 활용


   -  tracerouter 명령어 

      #  Time Exceeded를 활용




  참고 자료



 ↑ ICMP Control Messages 참고, 위키백과




'Network' 카테고리의 다른 글

FTP 통신 동작과정 및 기본 원리  (0) 2017.05.01
DHCP 프로토콜 통신과정 및 기본 원리  (0) 2017.04.24
TCP/IP 3 Way-Handshaking  (1) 2017.04.11
Network - OSI Layer 7  (0) 2017.04.07
Network - LAN 과 WAN  (0) 2017.04.07