ICMP(Internet Control Message Protocol) 란 IP 에 의한 통신이
정상적으로 이루어졌는지 확인하는 프로토콜이다.
ICMP 는 목적지 IP 로의 데이터 전송 여부를 확인할 수 있게 해주는 역할을 수행한다.
ICMP의 주요기능은 에러 리포팅과 진단(질의) 기능이다.
ICMP는 보내는 측에게 네트워크 내에서 일어나는 에러 상황을 통보하거나
네트워크 상태를 진단하는 기능을 제공한다.
ICMP는 네트워크 계층 프로토콜이지만 IP 헤더로 캡슐화 되는것이 특징이다.
ICMP 헤더에는 다음과 같은 필드들이 존재한다.
필드들은 각각 타입,코드,체크섬, ICMP 데이터 등이 존재한다.
타입은 ICMP 메시지 유형이고, 코드는 타입값의 내용이다.
체크섬은 에러 검사의 역할을 수행한다.
ICMP 데이터는 타입과 코드에 따라 데이터가 달라지는 부분이다.
해당 정보들이 캡슐화되어 전달하고자 하는 에러 혹은 질의의 내용이 전달된다.
예를들어 PC1 에서 PC2에게 데이터를 전송하는 도중
패킷이 유실되었거나 폐기되었다고 가정해보자.
이때 라우터B는 ICMP 도달불능 메시지를 통해
IP 패킷이 도중 유실된 이유를 원래 출발지인 PC1으로 통지한다.
이를 통해 ICMP는 목적지 IP 로의 데이터 전송 과정중의
에러 상황을 출발지로 통보하는 기능을 수행하는 것이다.
ping 명령어를 입력하게 되면 ICMP Echo request/respose 메시지를 보내서
특정 IP 주소와 통신할 수 있는지 확인할 수 있다.
그리고 원격지 호스트 및 라우터의 동작 여부, 원격 호스트까지 왕복시간,
중간의 손실되는 메시지의 크기도 알 수 있다.
예를들어 한 PC 가 192.168.10.1 의 주소로 ping 명령어를 입력했다고 가정해보자.
이때 ICMP Echo request 메시지를 보내게 된다.
해당 ICMP Echo request 를 받은 수신지에서는 응답으로 ICMP respose 메시지를 전송하게 된다.
아래와 같이 Google 에 ping 을 입력해보면 icmp echo request 가 보내지고
해당 서버에서 icmp echo response 가 넘어오는 것을 볼 수 있다.
ICMP 헤더에서 타입이라는 필드가 있는데 타입과 코드에 따라서 ICMP 데이터가 변한다.
자주 이용되며 중요도가 높은 타입은 아래와 같다.
'네트워크' 카테고리의 다른 글
[네트워크] TCP header (0) | 2022.10.03 |
---|---|
[네트워크] 전송계층의 정의 (0) | 2022.10.02 |
[네트워크] ARP 프로토콜 (0) | 2022.09.30 |
[네트워크] NAT (0) | 2022.09.29 |
[네트워크] OSPF (0) | 2022.09.28 |