본문 바로가기

OSI 7계층/[LAYER 3] 네트워크 계층

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



선선한 바람이 불기 시작한 9월입니다. 

환절기에 감기 조심하시구요~ 

오늘의 주제인 ICMP에 대한 이야기를 시작해 보겠습니다. 


1. ICMP란? 


 ICMP[Internet Control Message Protocol]

 : 인터넷 제어 메시지 프로토콜 

오류 메세지를 전송받는 데 주로 쓰입니다.


위키 정의를 좀 더 들여다 볼까요?  

ICMP 메세지들은 일반적으로 IP 동작에서 진단이나 제어로 사용되거나 오류에 대한 응답으로 만들어진다.
ICMP 오류들은 원래 패킷의 소스 IP 주소로 보내지게 된다. 

- wikipedia



ICMP의 용도는 뭘까요? 

- 인터넷/통신 상에서 발생한 일반적인 상황에 대한 보고(report)

- 인터넷/통신 상에서 발생한 오류에 대한 보고

- 위험한 상황에 대한 경보


ICMP의 기능을 정리해볼까요?

- IP 프로토콜을 이용하여 ICMP 메세지 전달 

- 네트워크 계층에 속하여 네트워크 관리 프로토콜의 역할 수행 

   (여기서 포인트는 종단간 데이터 수송 역할 X)


아래의 그림을 한 번 볼까요? 



TCP/IP 계층에서의 ICMP가 어디에 속하는 지를 나타내는 그림입니다. 


우리가 기억하고 있어야 할 것은!? 

-> ICMP 프로토콜은 Network 계층에 속하며 IP 프로토콜과 같이 사용한다! 

 


ICMP 사용(활용) 명령어 

1. Ping 명령어 : 상대방 호스트의 작동 여부 및 응답시간 측정하는데 사용

 - Echo Request (ICMP 질의메세지 요청)

 - Echo Reply (ICMP 응답메세지 요청)

   

2. Tracert명령어 : 목적지까지의 라우팅 경로 추적을 하기 위해 사용 

 - Time Exceeded 확인 가능  (이 내용은 추후에 다루도록 할게요 ~)



2. ICMP 패킷 헤더 구조


ICMP 는 헤더는 그림에선 5개로 보이지만 기본적으로 4개로 구성되어있어요.


ICMP Type : ICMP 의 메세지를 구별

ICMP Code : 메세지 내용에 대한 추가 정보 (즉, ICMP TYPE에 대한 상세 정보죠)

ICMP Cehcksum : ICMP의 값이 변조 여부를 확인 

ICMP 메세지1, 메세지2 : ICMP TYPE에 따라 내용이 가변적으로 들어가는 내용


- 메세지 1  

ICMP TYPE 3 (DESTINATION UNREACHABLE)

ICMP TYPE 11 (TIME EXCEEDED) 등에서는 사용되지 않으므로 0이 채워짐


- 메세지 2  

ICMP TYPE 8 (ECHO REQUEST)

ICMP TYPE 0 (ECHO REPLY) 같은 메시지에서는 특정 값이 주어짐


내용을 읽어본다면 결국 ICMP는 TYPE에 따라 종류가 다양합니다. 

그 중 많이 볼 수 있는 메세지 들을 아래 표에 정리해 봤어요.




상세 설명은 나중에 발행될 자료를 통해 확인해주세요 !



3. Wireshark를 통해 본 ICMP

이번엔 실제 덤프를 통해서 패킷을 살펴볼게요.


ICMP TYPE - Request

ICMP구조에 따라 Type 8, Code 0, Checksum, Data를 확인 할 수 있네요

type이 Request 이기 때문에 메세지 1(data)에 특정값(abcdefg .. 이하 생략)이 채워져 있네요




ICMP TYPE - Reply  [응답이 정상적인 경우]

Type 0, Code 0, Checksum 도 정상적이네요

또 동일하게  Reply 이기 때문에 메세지 1(data)에 특정값으로 채워져 있는 것을 확인할 수 있습니다





ICMP TYPE - Destination Unreachable [응답이 비정상적인경우]


어떠한 이유로 인해 패킷이 정상적으로 도달하지 못하는 경우 이에 대한 응답메세지를 보내는데, Unreachable도 그 중 하나입니다.

Type 3, Code 13, Checksum 도 정상적인데, 차이점은 메세지 2(data)에 실패한 패킷의 정보(IPV4, ICMP)가 담겨있는 것을 볼 수 있죠



자,

-끗-