[통신]

ICMP(Internet Control Message Protocol)란 무엇인가?

Neo Park 2012. 10. 5. 15:10
  • 개요
    • 라우터는 과도한 패킷의 유입 시 패킷을 폐기하게 되므로, 사전에 송신 단말에게 송신율을 감소시키거나 송신을 중지하도록 하는 흐름제어, 상대방 시스템의 IP 계층까지는 동작하더라도 TCP 연결이 가능하지 않거나 해당 응용 계층 프로세스가 설치되어 있지 않아 연결되지 않는 경우에 대한 원인을 찾는 기능 등은 IP에서 구현되지 않음
    • ICMP(Internet Control Message Protocol)은 접속 불가에 대한 이유나 여러 가지 진단 기능을 수행할 제어 프로토콜
    • ICMP는 IP 계층의 일부이며,이 메시지는 IP 데이터그램의 데이터 부분에 포함되어 전송

         

  • ICMP 메시지 형식

    ICMP는 IP 패킷의 데이터 영역에 실려 있으며, IP 헤더의 프로토콜 영역의 값은 1이고, 헤더의 총 크기는 20Byte

    • Type 및 Code : ICMP의 종류를 표시
    • Checksum 영역 : ICMP 패킷 전체에 대한 Checksum
    • Option Data 영역
      • ICMP의 Type과 Code값에 따라 다름
      • IP 패킷 데이터 영역의 첫 8 Byte(TCP 또는 UDP 헤더의 일부)를 Optional Data 영역에 포함시킴으로써, 이 오류 메시지의 수신측이 Optional Data 영역에 포함된 자신의 IP헤더와 데이터 영역으로부터 어떤 프로토콜(IP의 프로토콜 영역으로부터) 및 어떤 프로세스(TCP/UDP 헤더의 포트 영역으로부터)가 오류를 발생한 것인지를 판단할 수 있도록 함

         

  • PING/ICMP Echo
    • PING은 ICMP Echo Request 메시지를 특정 호스트나 라우터에 보내어 이에 대한 ICMP Echo Replay를 수신함으로써 도달가능성(Reachability)을 검사해 보고 요청과 응답에 대한 경과 시간인 Round-Trip-Time(RTT)을 알아볼 수 있음
    • 요청과 응답 모두 IP 데이터그램에 수납되어 전송되기 때문에 응답의 성공적 수신은 경로상의 라우터와 목적지 시스템의 망 계층 부분이 동작한다는 것을 증명하는 것
    • PING은 도달 가능성을 검사해서 망의 상태를 알아보는 프로토콜로, PING 자체는 응용 계층에 해당되고, PING이 사용하는 ICMP는 인터넷 계층 프로토콜 임

         

  • ICMP/TRACERT
    • TRACERT(Trace Route) 명령은 경로상에 있는 라우터마다 ICMP Echo 메시지를 보내어 이에 대한 응답을 확인함으로써 경로상의 라우터 존재 및 지연 시간을 검사해 보는 것
    • 모든 IP 라우터들은 수신된 IP 패킷을 다음 라우터(또는 단말)로 전달하기 전에 먼저 IP헤더의 TTL(Time To Live)값을 1 감소시키고, 만약 감소된 TTL 값이 0인 경우에는 이 패킷을 다른 라우터로 전달하지 않고 버린 후 , 이 IP 패킷의 송신측에게 time exceeded error ICMP 패킷으로 이 사실을 알려줌
    • TRACERT를 실행하는 단말은 TTL 값을 1로 설정한 첫번째 ICMP Echo 패킷을 목적지로 송신할 경우, 이것을 수신한 경로상의 첫 번째 라우터로부터 time exceeded error ICMP 패킷을 수신할 수 있음
    • 이후 다시 TTL=2로 설정한 ICMP Echo 메시지를 목적지로 송신하면 경로상의 두 번째 라우터로 부터 time exceeded error ICMP 패킷을 수신할 수 있게 됨
    • 이러한 절차를 반복하면 목적지까지의 경로상에 있는 모든 라우터에 대한 정보 및 지연 시간을 알수 있으나, 어떤 라우터들은 TTL 값이 0이 될 때, 단순히 버리는 것도 있으므로 이 라우터에 대한 정보를 TRACERT 기능으로 확인하지 못할 수도 있음
    • TTL(Time To Live)
      • IP 패킷 내에 있는 값으로서 그 패킷이 네트워크 내에 너무 오래 있어서 버려져야 하는지의 여부를 라우터에게 알려줌
      • 일정한 시간이 지나면 그 패킷을 버리고, 재전송하도록 발신인에게 알려주는 수단으로 사용됨

 

 

참조  : http://middleware.tistory.com/entry/ICMP-%ED%94%84%EB%A1%9C%ED%86%A0%EC%BD%9C

'[통신]' 카테고리의 다른 글

UDP(User Datagram Protocol) ppt 자료  (0) 2012.10.12
ICMP Protocol 분석   (0) 2012.10.05
ICMP(Internet Control Message Protocol) type과 Code 필드  (0) 2012.10.05
Ethernet Frame  (0) 2012.10.04
ARP(Address Resolution Protocol) 동작 방식  (0) 2012.10.04