[Network] ICMP (Internet Control Message Protocol)
ICMP란?
ICMP[Internet Control Message Protocol]: 인터넷 제어 메시지 프로토콜
오류 메세지를 전송받는 데 주로 쓰인다.
ICMP 메세지들은 일반적으로 IP 동작에서 진단이나 제어로 사용되거나 오류에 대한 응답으로 만들어진다.
ICMP 오류들은 원래 패킷의 소스 IP 주소로 보내지게 된다.
ICMP의 용도
- 인터넷/통신 상에서 발생한 일반적인 상황에 대한 보고(report)
- 인터넷/통신 상에서 발생한 오류에 대한 보고
- 위험한 상황에 대한 경보
ICMP의 기능
- IP 프로토콜을 이용하여 ICMP 메세지 전달
- 네트워크 계층에 속하여 네트워크 관리 프로토콜의 역할 수행
(여기서 포인트는 종단간 데이터 수송 역할 X)
TCP/IP 계층에서의 ICMP가 어디에 속하는 지를 나타내는 그림이다.
우리가 기억하고 있어야 할 것은!?
- > ICMP 프로토콜은 Network 계층에 속하며 IP 프로토콜과 같이 사용한다!
ICMP 사용(활용) 명령어
- Ping 명령어 : 상대방 호스트의 작동 여부 및 응답시간 측정하는데 사용
-
Echo Request (ICMP 질의메세지 요청)
-
Echo Reply (ICMP 응답메세지 요청)
- Tracert명령어 : 목적지까지의 라우팅 경로 추적을 하기 위해 사용
- Time Exceeded 확인 가능
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에 따라 종류가 다양하다.
Leave a comment